Lisp吸引了计算机科学史上最聪明的一群头脑。但是,只有用其编写应用,才可以真正看到Lisp语言家族的真正价值。Lisp程序员田春走向了Lisp领域一条冷门的岔路:维护前人留下的古老商业Lisp软件。他认为为了不让有价值的东西失传,有些事情必须要做。同样具有极客精神的还有本期码农人物佛振,他是「Rime/中州韵」输入法引擎的开发者。Rime不仅仅是一个输入法,也是一个输入法算法框架,这一套算法还支持了许多种方言拼音的输入,如吴语、粤语,甚至中古汉语。
Lisp是“list processing language”(表处理语言)的缩写。确如其名,Lisp中所有的数据都用表来表示。Lisp黑客早就明白数据结构灵活性的价值。他们在写程序的第一版时,往往会把所有事情都用列表的形式处理,这些最初版本可能效率低下得惊人。但是硅谷创业之父Paul Graham认为一百年后的程序员最需要的编程语言,就是可以让你毫不费力地写出程序第一版的语言。
重新回到原点,最初的Lisp是John McCarthy在其1960年发表的论文中定义的,只用区区7个函数和两个特殊form便定义出整个语言:atom、car、cdr、cond、cons、eq、quote、lambda和label。本期,Ruby之父Matz会带领我们重新审视一下Lisp的元编程。使用元编程技术,可以实现通常情况下无法实现的操作。确实,Lisp的最大危险就是它可能会把你宠坏,当你回过头去使用另一种语言时,总会有这样的感觉:它无法提供你所需要的灵活性。
创造的过程,有苦有乐。对一个匠人来说,创作一件有情怀的作品,如果仅仅是为了现实目的,代码本身便缺乏灵气。对一位程序员来说,如果用Lisp编程仅仅是为了谋生,他就无法理解Lisp程序员对这种语言的热爱。看看岔路的风景,也是一种修行。