2013年我就干了兩件事情。第一件是gaclib,第二件是tinymoe。
Gaclib終于做到安全的支持C++的反射、從XML加載窗口和控件了。現(xiàn)在在實現(xiàn)的東西則是一個給gaclib用的workflow小腳本,用來寫一些簡單的view的邏輯、定義viewmodel接口,還有跟WPF差不多的data binding。
Tinymoe是我大二的時候就設計出來的東西,無奈以前對計算機的理論基礎了解的太少,以至于沒法實現(xiàn),直到現(xiàn)在才能做出來。總的來說tinymoe是一個模仿英語語法的嚴肅的編程語言——也就是說它是不基于NLP的,語法是嚴格的,寫錯一個單詞也會編譯不過。因此所有的函數(shù)都要寫成短語,包括控制流語句也是。所以我就想了一想,能不能讓分支、循環(huán)、異常處理和異步處理等等其他語言的內(nèi)置的功能在我這里都變成庫?這當然是可以的,只要做全文的cps變換,然后要求這些控制流函數(shù)也寫成cps的風格就可以了。
目前的第一個想法是,等搞好了之后先生成javascript或者C#的代碼,不太想寫自己的VM了,然后就出一個系列文章叫做《看實例跟大牛學編譯原理》,就以這個tinymoe作為例子,來把《如何設計一門語言》延續(xù)下去,啊哈哈哈哈哈。
寫博客是一件很難的事情。我大三開始經(jīng)營這個cppblog/cnblogs的博客的時候,一天都可以寫一篇,基本上是在記錄我學到的東西和我造的輪子。現(xiàn)在都比較懶了,覺得整天說自己在開發(fā)什么也沒意思了,于是想寫一些別的,竟然不知如何下手,于是就出了各種沒填完的系列。
我覺得我學編程這13年來也是學到了不少東西的,除了純粹的api和語言的知識以外,很多方法論都給我起到了十分重要的作用。一開始是面向?qū)ο螅缓笫菙?shù)據(jù)結(jié)構(gòu)算法,然后是面向方面編程,然后是函數(shù)式編程,后來還接觸了各種跟函數(shù)式編程有關的概念,譬如說reactive programming啊,actor啊,異步啊,continuation等等。腦子里充滿了各種各樣的方法論和模型之后,現(xiàn)在無論寫什么程序,幾乎都可以拿這些東西往上套,然后做出一個維護也很容易(前提是有這些知識),代碼也很簡潔的程序了。
工作的這四年半里,讓我學習到了文檔和自動化測試的重要性,于是利用這幾年我把文檔和測試的能力也鍛煉的差不多了。現(xiàn)在我覺得,技術(shù)的話工作應付起來是超級簡單,但是自己對技術(shù)的熱情還是促使我不斷的研究下去。2014年應該研究的技能就是嘴炮了。
posted on 2014-01-04 05:52
陳梓瀚(vczh) 閱讀(10165)
評論(9) 編輯 收藏 引用 所屬分類:
啟示