Gary Pollice, 实践教授, Worcester Polytechnic Institute
2008 年 2 月 15
阅读 Joe Armstrong 的关于用 Erlang 语言进行程序设计的新书如何成为寻求解决并行问题的程序员的无价资源。
来自 The Rational Edge.
原文:http://www.ibm.com/developerworks/cn/rational/dec07/reader/pollice.html
==========================
Programming Erlang Software for a Concurrent World
作者 Joe Armstrong
The Pragmatic Programmers,2007
ISBN 19343560X
Erlang 是爱立信计算机科学实验室设计的函数式程序设计语言和运行时系统。它是特别为构建跨网络部署的容错、实时系统而设计的。Erlang 被设计为自然地且容易地支持并行。现在 Erlang 是运行在大部分计算平台上的开源系统。
Joe Armstrong 写了一本关于用 Erlang 进行程序设计的好书。该书适合从函数式语言的初学者到那些有一定 Erlang 经验,并想要提高技能的人中的每一个人。这不是一本参考手册,而是教您学习如何使用 Erlang 编程的书。
Armstrong 将该书组织成二十个中型章节和六个附录。该书似乎比它的 515 页要短。这是对 Armstrong 的简单易读的书写风格的颂词。我发现自己愉快地花了几分钟并且读了一个章节。学习该书的最好方法是在您读的过程中写一些 Erlang 代码。
该书的第一个部分,章节 1-6,介绍了用 Erlang 进行顺序程序设计的基本概念。该部分的内容位于章节 2-6。第一章是序言。第二章告诉您如何获得并安装 Erlang 的开源版本,并且确保它在您的平台上能工作。如果您从未用函数式语言编过程序,那么您应该仔细阅读前六个章节。如果您熟悉函数式语言,那么您可以轻松扫过这些章节,并且开始第 7 章。
依据 Armstrong,第 7 章是“非技术性章节”。他提供了一个简短五页的并行介绍。之后两个技术章节介绍了如何用 Erlang 进行并行程序设计。第 8 章介绍了如何创建进程、在它们之间发送消息,等等。在继续之前,您需要掌握一些基本操作。第 9 章包含了一个关于如何在并行程序中处理错误的详细讨论。
一旦您熟悉了并行,您就准备进行下一步 —— 分布式程序设计。这些是运行在网络上,并且需要消息传递的程序。第 10 章是向您介绍在用 Erlang 书写分布式程序时所需的工具的简短章节。Erlang 有一些特别的需求,例如允许两个 Erlang 程序进行通信的“魔饼”。当您读完该章节时,您就准备成为分布式程序设计大师了。
许多接下来的章节都独立成章。举例来说,第 11 章介绍了 IRC 程序。其他章节着重于具体的主题,例如,处理文件、socket,等等。第 17 章介绍了 Mnesia,它是支持复制型数据库且内嵌入 Erlang 的数据库管理系统。虽然 Armstrong 说 Mnesia 查询很像 SQL,但是他省略掉了这样的事实,只有当您非常熟悉 Erlang 之后,它们的相似性才明显。
最后的两个章节着重于多核计算机的程序设计。这是首先吸引我的地方。这些章节为您提供了帮助您书写用于多核计算机的高性能程序的一些指导和实例。
六个附录覆盖一组主题。如果您打算书写 Erlang 程序,那么在开始前阅读 Appendix A。该附录的题目是 Documenting Our Program,而它真正是关于如何书写易读的代码及遵照已建立的指南的章节。其他的附录提供参考资料和扩展的实例。
如果您已经尝试过函数式程序设计,并且因为任意的原因而对其厌烦,那么您可能想试试 Erlang。如果您正疑惑如何掌握并行及分布式应用程序,那么您会找到非常易读的一些很好的资料。我向所有程序设计人员强烈推荐该书。您将从它中学到东西。
转书评:Programming Erlang Software for a Concurrent W
《Erlang 程序设计》热门书评
-
一本不错的入门书
19有用 2无用 Arbow 2007-07-17
《Programming Erlang》Joe的新书,买了个电子版,在花了一些时间读了一下之后,发发牢骚,写写读后感。书不太厚,也不薄,500多页,但是单纯附录就占了100+,Appendix F Module and Function Reference,有凑页面的嫌疑。有仁兄打印了整本书,叠起来...
-
很实在的书
9有用 0无用 维修各类UFO 2009-07-15
老头在书里明白的表示了对现在的erlang实现并不非常熟悉,尤其是一些偏门的细节,毕竟erlang的开发已经交由一个专门的小组做,老头可能专心研究容错和并行的理论去了,或者又有啥新的东西要设计。这样带来的好处是老头不像很多语言的创始人那样揪着自己得意却实际没人用的特性大段吹牛,这本书很是实在,讲的点...
-
Erlang程序设计中文版(书评和笔记)
5有用 0无用 Steven 2013-09-14
在最近的一个多月时间里,我利用业余时间学习了Erlang,这是一门面向并发模式编程的语言,她采用函数式的一些思想,加上强有力的库,在20多年的锤炼中,已经算是世界顶级的并发编程语言之一,当然有些不足的是多少年都不变的语法特性使得这门语言的特性比较死板。先吐槽一下: ...
-
最全面实在的erlang学习书
5有用 0无用 eric.33.yu 2010-04-06
Joe老头作为erlang之父写了这个书, 从erlang的设计理念, 到Erlang的语法,开发环境,OTP,到系统的诊断, profile,娓娓道来,顺着他的节奏, 读者会很容易进入这一神奇语言的大门!强烈推荐!http://blog.yufeng.info...
-
更有趣的不是这本
3有用 1无用 wangii 2008-02-02
而是Joe Amstrong的PhD thesis.Declarative和Procedure已经争论了几十年了,现在看来,在multi-core时代Declarative programming有重新崛起的迹象。比较吸引我的地方是这种思路下很多让Procedure Programming很难解决的...
书名: Erlang 程序设计
作者: ARMSTRONG
出版社: 人民邮电出版社
原作名: Programming Erlang: Software for a Concurrent World
译者: 赵东炜 | 金尹
出版年: 2008
页数: 427
定价: 79.00元
装帧: 16开
ISBN: 9787115188694