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