“参照国外读者的评价,找到你需要的书。”在你决定购买本书之前,本栏目将努力向读者朋友们呈现公正客观的评价。如果你发现这是本好书,请不要忘记收藏。

5星评价,编程语言爱好者的第七天堂
by tony cappellini (Milpitas, 美国加州)

这本书首先吸引我的是它涵盖了几种我知之甚少或一无所知的语言。在我的职业生涯中,主要由于机会的原因,我只是接触到了少数几种知名的编程语言。最近,我十分好奇于Erlang的并发模型以及鲁棒性,即便在我每天的工作当中没有使用它的地方。能有机会了解Erang与其他语言的异同正是我所期望的。因此,我选择继续去深入了解真相,看看这个兔子洞究竟有多深。

《七周七语言》一书涵盖了Ruby、Io、Prolog、Scala、Erlang、Clojure以及Haskell。这些语言作为一次调查的结果而被选中。到数据统计时,仍然剩下8门候选语言。考虑到有这么多语言入围,我对最初的那份名单如此之小感到非常惊奇。这也就是说很多语言最终被写入书中。

首先,我十分喜欢这本书。对于每门语言,它总是以一段简洁的描述作为开始,并且提供了足够的信息让你知道在每一章节里会有哪些内容。整本书自始自终遵循了这种实用的一致性。

每个章节的结构都十分简洁,具有较强的逻辑性,这使得它非常便于读者对每一种语言进行对比。我也非常喜欢书中关于编程语言发展与历史以及那些对语言开发者进行访谈的章节。每章以"趁热打铁"作为结尾,总结了每门语言的关键点,诸如性能、易变性、不足、优势、可读性等等。事实上,最后一章是对整本书的"总结"。我不知道还有什么比这更好的方式来结束本书。

这本书虽然仅有317页,但对书中的每门语言都提供了丰富而简明的说明。对于引发读者兴趣、介绍语言基本特性与乐趣来说,这本书的"规模"可谓是恰到好处。

我不禁想知道是否还会有后续的标题用于比较和对比另一组语言。如果是这样,他们会是哪些语言呢?

本书简介以下面的这句话作为结尾:

"当你读完此书,你无法成为书中任何一门语言的专家,但你将知道每门语言所提供的独特的东西"

我十分赞同。

关于这本书,我已经说了足够多的好了。如果你在工作中使用了书中的语言,你可能不会像我这样对此书如此感兴趣。不过,如果你像我一样,在职业生涯中尚未接触过以上几种语言,这本书是将成为您必备的收藏。在我了解了Erlang以及函数式编程的概念后,它甚至可以激发我钻研另外一种语言。

5星评价,无论你是初学者还是有经验的开发者,这都是一本非常好的书。
By Gary F. Pollice (Shirley, 美国 麻萨诸塞州)

当我收到Bruce Tate写的这本《七周七语言》(Pragmatic Programmers, 2011)时,我没有期望它能给我留下什么深刻印象。首先,Tate的书,从Java到Ruby的我都读过,这些书都没有给我留下什么深刻印象。我不是经常读那些写给管理者的书,这也许可以解释我的失望。此外,像这样一本用不足350页却涵盖了七门语言的书到底能有多少实质的内容呢?为什么大多数讲解一门语言的书却经常能达到1000页 -- 为什么实际上那些头脑清醒的人很少会读完这样的巨著?

出乎我意料的是,这本书居然给我带来了愉悦。这本书没有为每门语言提供拥有多道主菜的大餐,而是提供了一些餐前小吃,让你通过试吃样品来确定你是否喜欢这门语言。如果你确实喜欢这门语言,它将提供足够的让你继续深入下去的内容,直到你预订了其他书籍或课程所提供的有关这门语言的大餐。更有趣的是Tate是如何选择这些味道可口的语言的,每门语言都可以从不同角度调足你的胃口。

这本书中没有大众"快餐"语言,诸如C,Basic,甚至Java。相反,Tate提供了一些广受青睐的或被重新探索的先锋语言,因为这些语言提供了我们在未来应用和计算机系统开发中所需要的新的编程范式以及更高的开发效率。Tate的选择是Ruby、Io、Prolog、Scala、Erlang、Closure以及Haskell。几乎没有人能充分地了解所有这些语言,即使你对所有这些语言都有一些了解,这也是一个让你获得一些额外的见解的机会。

Tate将大家在学习任何新语言时所常问的问题汇总,并通过这种方式帮助大家学习新语言,这些问题包括:

这门语言的类型模型是什么? 这门语言的编程模型是什么? 你如何与这门语言交互? 这门语言都有哪些决策构造与核心数据结构? 这门语言都有哪些独特的核心特性?

最近,我使用本书中Ruby章节将Ruby语言介绍给一些高中学生,效果非常好。一些学生在学完这一章后决定在他们的项目中使用Ruby并且在短短的五天时间里做了一些非常不错的工作。

你可以在周末舒服地阅读本书,这就像是品酒,将眼前的一切缓缓放下。花些时间学习这些语言吧。使用七个星期,或至少花几个星期。深入体味这些语言,并决定你要继续深入了解哪些语言。这将是一个有趣的旅程,当然值得你花时间。

5星评价 语言变化等同于思维变化
By Craig Riecke (East Syracuse, 美国纽约)

如果你认同Sapir-Whorf的理论,你会相信语言的选择会影响你对这个世界的看法。如果你是一个认同这一理论的计算机程序员,那么这门书绝对适合你。

我读了这门书的早期草稿,并且我想我肯定可以使用Scala实现并发或使用Prolog进行逻辑编程。不过,即使事实上我没有真正地使用这些语言,我发现他也影响了我使用Java的方式。因为事情是这样的。就像所有的语言都是图灵完备一样,理论上,所有语言都可以用来表达同样的想法。但是如果你发现对于某件事,某门外语中有一个更为优雅的表达方法,你会在你的母语中接受同样的表达方式。这样我每天所编写的Java代码开始变得不同- 更好,更整洁,更易理解,更接近于领域语言。

在某个时刻你可能会接纳Ruby或Scala,但首先你应该为这些新语言而感到兴奋,duck typing,充满活力等等。这本书会为你提供这些。它会以你无法预料的方式推动你前进,或大面积地简化你的母语。想象一下"百年孤独"地编程,这本书正是为了避免这一切的。

5星评价 一个软件的假期
By Harold Johnson (Los Angeles, 美国加州)

我不确定我的期望是什么,但结果却远比我期望的要多。积累了30多年的编码经验后,我发现现在的自己正盲目地徘徊在计算机世界中。当我开始编程时,只有两门语言:Cobol和Fortran。语言的参考手册只有区区数百页,Fortran也是如此。那时有门叫作Algol的语言试图统一计算机世界,但它没能做到。在过去的十年中,我一直为一个无知的组织工作,这个组织只对当前的事情感兴趣。不幸地是,他们永远也不会懂得缺乏远见常常会将你带到技术悬崖的边上。无论如何,我看到了这本书的标题,并且我很好奇。读完这本书后,我现在才知道我已经错过了许多。虽然我已经花了很多时间,试图在某个方向上加快速度,但世界已经走向了多个不同的方向。同时,一些非常聪明的人尝试教授计算机如何应对这个现代的世界。Bruce的书既描述了它们的成功,也描述了其中的挫折。

我猜想Bruce将会被证明是利润的代名词。早在这本书中,他就提出了猜测:他的书将掀起了图书销售狂潮。我猜这将成为现实。我已经预订了三门语言的参考手册,其中有两门语言我压根儿就不知道它们的存在。我为另外一门我在若干年前接触过的语言预订了一本手册,不过这门语言近几年得到了迅速地发展,面貌早已不同于以往了。

促使我写下这段书评的是Bruce书中的最后一段文字:"寻找你自己的声音"。最终,我明白了我为什么过去花了30年时间进行计算机编程。虽然那是一条漫长而曲折的道路,但最终我还是明白了为什么我不得不这样做。谢谢布鲁斯!!