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

我开发软件。事实上,我的整个职业生涯都是从事软件开发。早在互联网时代之前,在那次泡沫之前,那次泡沫之前的泡沫之前,我就在波士顿的一家小公司里的一份软件开发的岗位上苦苦奋斗,我们做多协议路由器。在那份工作中,我从做测试干起,是一个“质管员”,感谢这个公司的技术创始人的榜样,他努力的工作,在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是一种思维方式。

[英文原文:Home at Last, or, The Last Programming Language I Will Ever Learn: LISP (Clojure) ]
分享这篇文章:

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

  1. tisyang says:

    其实,我被Scheme那些括号摧残了,SICP的确是本好书,乖乖的学好python去吧我还是

  2. helloqidi says:

    已经开始学习Ruby一段时间了,同样对Java、C没有激情。

  3. larryt says:

    LISP的层层括号搞得我头晕,看代码简直就是受虐!SICP看了一部分实在是看不下去了,搞这东西就是浪费生命。有这些精力还不如看些实用的呢!

  4. Larkdream says:

    楼上要学点实用的么?很好啊。。学完了再来学Lisp吧,别人都说是最后一门语言了:)

  5. rocky says:

    接触一下erlang和F#吧

  6. 叶飞 says:

    看了你写的这篇文章对你的观点有些震惊,确实语言可以影响人的思维,就好像学习数学让人的思维谨慎一样,我是一个电脑爱好者,但一直都没有去仔细的学过一门编程语言,因为怕被编程语言里的固定语法或者说编程方式让思维变得有局限,写代码只能是生活的一部分,或者说是事业的一部分,没有人会愿意为了一个西瓜的皮而放弃鲜美的瓤,现在我正在试着学习编程,因为喜欢电脑,也希望他能够作为我事业的起步,还望前辈们多多指点。

  7. test says:

    Lisp神话是个巨大的泡沫,炒作。就好像在没有打火机火柴的年代,人们只能钻木去火。

  8. feng says:

    用clojure 有一段时间了,并且我们公司把clojure当成主要的开发余元。感觉非常优秀。
    括号确实是个问题, 不过emacs 把它变成了feature.

  9. 朱兆龙 says:

    不知道为什么那么多人说自己被lisp的括号搞晕了,只要有正确、合理的缩进,读代码时完全可以忽略括号,括号是给编译器看的,不是给人看的。写lisp代码时,括号的匹配是编辑器的任务,也不是人的任务。这个意思graham在他的书中也表达过了,如果你说自己括号弄晕了,那我的理解是你连门都没有入,何谈lisp的其他。

  10. roy says:

    我不认为被括号搞晕是多么菜或者丢脸的事,无论这个语言有多好,如果让初学者看二眼就不喜欢的语言,都是失败的语言;
    再说,至于弄那么多括号么。甚至语句一开始就是括号,不觉得整个代码不美吗?
    LISP或者真的是好的,不过这种高高在上的风格,直接就被大多数人打入了冷宫,雅俗共赏才是真的强大。 我不明白也不相信lisp不能做到既强大,又优雅(那堆晃眼的括号扔了吧);

    • miracon says:

      我不明白也不相信lisp不能做到既强大,又优雅(那堆晃眼的括号扔了吧);

      我觉得正是这种括号语法,lisp才强大。给lisp安装语法糖的想法最后会损害lisp的灵活性。

  11. roy says:

    一句话:一个让人连门都不想入的语言,无法谈得上是多么好的语言

  12. Wei Qiu says:

    Some people just hate as haters. They never even tried to learn a technology deep enough.
    Then they start to criticize to show their intelligence.

  13. whj says:

    lisp的美你不懂

  14. uoou says:

    非常赞同楼主的观点,语言可以影响人的思维,就好像学习数学让人的思维谨慎一样。其实学习语言和我们人类语言一样,只是此刻你面对的对象有人变成机器。目前也在学习自然语言处理,DeepQA深度问答技术,是在图灵机器人人工智能平台采用的技术,设计的到自然语言解析及处理,有时想想让机器人学习模仿人的思维理解就能很好找到问题的答案,有兴趣的朋友可以研究研究http://www.tuling123.com/openapi/cloud/proexp.jsp

  15. 万能的神 对这篇文章的反应是俺的神呀

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据