2020年/01月/29日
The Nature of Lisp
14年前的文章
作者从ant的xml结构开始一步步挖掘出lisp的表达形式
我和Lisp社区的那伙人交谈, 诉说我的沮丧心情。结果, 立马就有一大套
理论砸过来, 这套理论在Lisp社区处处可见, 几成惯例
顿悟的那一刻, 我成了Lisp的崇拜者。我体验到了宗教大师的感受: 一定要把我的知识传
布开来, 至少要让10个迷失的灵魂得到拯救
Ant可以通
过写Java类来扩展。Ant解析器会根据名字来匹配XML元素和Java类, 一旦找到匹配, 就执
行相应任务。为什么不用Ant自己来扩展Ant呢?
这些工具的本质是什么呢? 它们实际上就是制造程序的程序。它们有一
个神秘的名字, 叫做元编程。所谓元编程的本义, 就是如此。
用DSL解决问题, 做出的程序精简, 易于维护, 富有弹性。在Java里面, 我们可以用类来
处理问题。这两种方法的差别在于, Lisp使我们达到了一个更高层次的抽象, 我们不再受
语言解析器本身的限制, 比较一下用Java库直接写的构造脚本和用Ant写的构造脚本其间
的差别。同样的, 比较一下你以前所做的工作, 你就会明白Lisp带来的好处。