2013年我就干了两件事情。第一件是gaclib,第二件是tinymoe。
Gaclib终于做到安全的支持C++的反射、从XML加载窗口和控件了。现在在实现的东西则是一个给gaclib用的workflow小脚本,用来写一些简单的view的逻辑、定义viewmodel接口,还有跟WPF差不多的data binding。
Tinymoe是我大二的时候就设计出来的东西,无奈以前对计算机的理论基础了解的太少,以至于没法实现,直到现在才能做出来。总的来说tinymoe是一个模仿英语语法的严肃的编程语言——也就是说它是不基于NLP的,语法是严格的,写错一个单词也会编译不过。因此所有的函数都要写成短语,包括控制流语句也是。所以我就想了一想,能不能让分支、循环、异常处理和异步处理等等其他语言的内置的功能在我这里都变成库?这当然是可以的,只要做全文的cps变换,然后要求这些控制流函数也写成cps的风格就可以了。
目前的第一个想法是,等搞好了之后先生成javascript或者C#的代码,不太想写自己的VM了,然后就出一个系列文章叫做《看实例跟大牛学编译原理》,就以这个tinymoe作为例子,来把《如何设计一门语言》延续下去,啊哈哈哈哈哈。
写博客是一件很难的事情。我大三开始经营这个cppblog/cnblogs的博客的时候,一天都可以写一篇,基本上是在记录我学到的东西和我造的轮子。现在都比较懒了,觉得整天说自己在开发什么也没意思了,于是想写一些别的,竟然不知如何下手,于是就出了各种没填完的系列。
我觉得我学编程这13年来也是学到了不少东西的,除了纯粹的api和语言的知识以外,很多方法论都给我起到了十分重要的作用。一开始是面向对象,然后是数据结构算法,然后是面向方面编程,然后是函数式编程,后来还接触了各种跟函数式编程有关的概念,譬如说reactive programming啊,actor啊,异步啊,continuation等等。脑子里充满了各种各样的方法论和模型之后,现在无论写什么程序,几乎都可以拿这些东西往上套,然后做出一个维护也很容易(前提是有这些知识),代码也很简洁的程序了。
工作的这四年半里,让我学习到了文档和自动化测试的重要性,于是利用这几年我把文档和测试的能力也锻炼的差不多了。现在我觉得,技术的话工作应付起来是超级简单,但是自己对技术的热情还是促使我不断的研究下去。2014年应该研究的技能就是嘴炮了。
posted on 2014-01-04 05:52
陈梓瀚(vczh) 阅读(10128)
评论(9) 编辑 收藏 引用 所属分类:
启示