语言比算法更重要_七周七语言书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > > 七周七语言 > 语言比算法更重要
bear 七周七语言 的书评 发表时间:2013-08-09 11:08:36

语言比算法更重要

如果没有五线谱,作曲家只能用自然语言谱曲,那会是什么样子?翻一翻几何原本,看看欧几里德用自然语言写数学的公式和推导,那是多么蛋疼。五线谱和数学公式都是一种专门的语言。

维特根斯坦说:凡是语言能表达的,都能说清楚,凡是语言不能表达的,都应该保持沉默。

国内编程界长期被理聪主导,几乎每个程序员都听过这句话--语言不重要,算法才是关键。大学时我也深信这句话,半路出家,一心扑在ACM/ICPC上,以至于连恋爱都没谈!对于红朝的穷苦屁民,除了大学谈恋爱,一生中还能有什么美好的事?尤其是拒绝过至少五六个女生的倒追……没做过这种SB,你永远无法体会到那种悔恨和自责……我扯太远了……

回到《七周七语言》这书,它展现了七种语言不同的表达能力。如果你还相信语言不重要,那这本书绝对能颠覆你的观念。然而,它并不完美。

我拿到这本书时,第一感觉是:“好薄!”这么几页书就能把七种语言的精髓讲清楚么?--果然是讲不清楚的。除非是接触过相似的语言或概念,书中很多地方的跳跃感很强。作者解释得也不细致,单靠这本书掌握某种新语言的核心是完全不可能的。之前有好几篇书评都是在吐槽这点。

此外,我对作者选的这七种语言也不甚满意。似乎作者的目的主要是卖书,而不是理清各种编程范式。函数式编程的概念正当红,于是作者选的七种语言中,只有prolog完全没有函数式编程的影子。

Ruby作为面向对象的唯一代表,作者大谈花藜胡哨的语法和奇技淫巧的元编程,和面向对象有个毛关系!就算C++,Java这种不能用,好歹smalltalk吧!再不济,object-C也好得多。

Lisp的方言居然选的是Clojure!相较于其它方言,Clojure的特点是当红和复杂,或许Clojure是语法最复杂的Lisp方言,短短几页书根本讲不清楚,还不如用Scheme把函数式编程的概念说得更透彻些。况且Clojure和Scala多少有点重叠的感觉。

介绍了那么多函数式语言,居然没有一种ML系的语言,我觉得这也是一大失败。再怎么说,人家在函数式领域的江湖地位至少相当于武当派,你连提都不提……

最后,作者对语言的评价太单细胞了。每一种特性不是优势就是劣势,哪有这么简单的事!大多特性都有好用的时候,也有变成麻烦的时候,这难道不是常识么?比如Haskell的类型推断系统,在我熟悉的F#中有几乎一样的特性,它推断得好是很省事,但万一它认为类型不匹配,那补类型声明就要补到死!

吐槽到此为止。不管怎么说,这本书是值得一读的,尤其是受理聪毒害颇深的国内程序员。

我很想听听三总( @远古邪恶巨坑)对这本书的评价。

展开全文
有用 12 无用 1

您对该书评有什么想说的?

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“语言比算法更重要”的回应

yakii 2015-09-25 09:56:56

不同的语言只是裹上了不同的语法糖衣的数学模型而已,如果你只想做一个普通的程序员,思考一下不同语言的不同,然后说某某语言针对某些问题更顺手,那么这是可以的,如果你再往前进一步,这种看法就太小儿科了!

Treenewwbee 2013-10-10 18:33:36

选Clojure是为了讲STM吧。

发条辉 2013-08-22 21:55:57

理聪?

tertio 2013-08-09 12:27:08

额,误入歧途,让我一棒子打醒他!!!
你妹的一个有时态的编程语言自然就会有代码版本功能,而且还是根据语法划分的,细粒度的,整合与协调根本不是问题!!!

[已注销] 2013-08-09 12:23:21

速速发

bear 2013-08-09 12:22:53

他的意思好像和elephant有点区别。原文如下:
要是推倒重来,我可能会更多地把心思花在各项编程事务的协调上,比如说,如何运作有大量代码的大型编程项目--如何管理代码版本、如何搜索想要的东西、各种事物如何演化。当程序员编写了大量代码之后,他的任务就不再是编写新代码,而是准确找到现有代码,并把现有代码整合起来。因此,搜索和协调就变得日渐重要。如果把GIT和Mercurial这类系统的思想吸收到Erlang之中,再给它加上类型系统,使它能在可控的条件下理解代码是如何演化的,那我想应该会带来不错的效果。

tertio 2013-08-09 12:16:11

你说的Armstrong希望加入代码版本管理和搜索事物演化的功能,倒是让我吃了一惊,或许我给他发个邮件说我懂你的意思elephant就是这么搞的以及我知道这些东西关系何在他会不会有找到知音的感觉蛤蛤蛤。

bear 2013-08-09 11:52:00

访谈录全加起来就10来页,问题也比较固定。

tertio 2013-08-09 11:46:22

那是抄elephant,Armstrong是这群人里面思路最好,对OO的弊病看得比较透的。不是有点像了,直接就是一样的。既然有这些创始人的访谈,我都想看看了。

bear 2013-08-09 11:37:38

恩。这本书里每段都有该语言之父或主要贡献者的访谈录,或许这是最有价值的部分。Joe Armstrong说,希望在Erlang中加入管理代码版本和搜索各种事物如何演化的功能,好像和rationese的特性有点像哦!

tertio 2013-08-09 11:20:43

我现在对这类书完全失去兴趣了,还不如去看那些XX语言之父对彼此毫无底线的吐槽