KEEP K.I.S.S.

tk's blog

我要学的最后一门编程语言:LISP (Clojure)

转载

来源:外刊IT评论

我开发软件。事实上,我的整个职业生涯都是从事软件开发。早在互联网时代之前,在那次泡沫之前,那次泡沫之前的泡沫之前,我就在波士顿的一家小公司里的一份软件开发的岗位上苦苦奋斗,我们做多协议路由器。在那份工作中,我从做测试干起,是一个“质管员”,感谢这个公司的技术创始人的榜样,他努力的工作,在Cayman Systems中作为一个特殊的开发人员给予我们指导,使我找到了驱动我之后二十年的人生招唤:软件开发。

 

这第一份工作不仅仅塑造了我的职业内容,同时,在Cayman,我遭遇了可怕的创业诱惑的冲击。第一次,我感觉到了一个公司创业的成功带来的直接、美好、让人紧张颤栗的强烈感觉。我感觉到了那种自己掌舵的愉悦,尽管只是部分的。这次跟自由与责任的第一次的亲密接触让我胃口大开,我从此走上了创业之路。

我在Cayman Systems的导师给了我两条谏言,它们一直陪伴我至今:

  • 当你想开办一个公司时,先从顾问做起。(看,他已经知道我入魔了。)从你的客户那里学习业务和开发,获得报酬的同时,利用他们的专家和资金,最终将其全部转化到你的产品里。
  • 学习LISP。

我很不擅长听取建议,所以这两样我一个都没做。

十年后(几乎也是这段时间),我开始研究Ruby。当我发现Ruby时,一种高兴的,一种长出一口气,一种兴奋的感觉充满着我。它俘获了我,不仅仅从技术上,在之后的一年的学习这种语言中,我编写软件的方式、我解决问题的模式改变了。我可以用一种最简单的,但毫无疑问的语句描述这种奇异的感觉:“编程太有意思了!”。

经过了多年对这种体验的深刻的反思,我对Paul Graham的话更深信不疑了:

“编程语言不仅仅是一种技术,它更是一种思维习惯。” – http://www.paulgraham.com/avg.html

通过对其它语言的学习,我无意中学会了新的、更高效的思维习惯。Ruby使我成为一个更优秀的程序员。

回顾往事,我发现有些地方做的很英明,并不是有意识的,就像是我早就知道了那句名言——早在它清晰的指导我行为处事之前。因为,你看,我第一眼看到Java,我就知道我讨厌它。我从来没有用Java写过一行代码,不会拿它来挣钱,更不会把它当作兴趣。我想我清楚的知道,深深的知道,它会改变我,使我成为一个“编码器”。甚至更糟。

纽约时报推荐了一篇Guy Deutscher写的标题为“语言如何改变你的思维”的文章,文章先从回顾开始,然后谈到了在这个问题上的最新研究发现。

“50多年前,著名的语言学家Roman Jakobson用一句简单的名言指明了语言之间最关键的不同之处:‘语言之间的不同本质在于它们能够传达的信息,而不是它们不能传达的信息。’这句名言告诉了我们解放我们母语潜能的关键所在:不同的语言用不同的方式影响我们的大脑思维,这并不是因为这种语言可以让我们这样思考问题,而是它在强迫你这样思考。”

“当你的语言日常的强迫你去使用某些类型的信息进行说明,这会迫使你去留意那些使用其它种语言的人平时不会注意的某些细节和体验。因为这种说法的习惯是从小养成的,这种习惯已经成为大脑思维的习惯,超越了语言本身,直接影响了你的言行,感知,联想,感觉,记忆,以及世界观。”

基本上我不是一个办事果断的人,但年初我决定要给自己充充电,我誓言要再学一门新的语言。我知道,我现在是CTO,这样做会使我“失身份”,但我认为,我的能力就体现在能在技术界和商务界的贯通,我必须坚定的深度的同时浸润着这两个领域。我听说越来越多的语言开始利用JVM,所以我想Scala也许会是一个不错的选择。我不想用无聊的细节打搅你,但这种语言确实没有符合我的预期。

六个星期之前,我发现了Cloure。现在,二十年来的今天,我懊悔不已,我发现导师的建议不该被当作耳边风,那是个极其重要的建议。

我们知道,Clojure是LISP语言的一种方言。而事实证明,LISP并不是一种语言。LISP是一种思维方式。