Erlang编程指南[试读]
Francesco: 为什么使用Erlang
促使我们写这本书的主要原因是出于对分享Erlang的热衷。希望我们的工作能对Erlang的学习者有所帮助,这也是我们对Erlang社区给予的一点儿回报。虽然我们两个是出于不同目的而开始学习Erlang的,但结果都是一样:通过付出比学习其他语言更多的努力而获得了更多的乐趣。最妙的是,它不仅仅是以娱乐为目的的工具,而是每天我们工作时都在使用它! Francesco: 为什么使用Erlang 那是在1994年,我正在Uppsala大学学习计算机科学,我参加的课程之一是并行程序设计。讲师举着“Erlang并行程序设计”(Prentice Hall)第1版,说道:“阅读它吧。”然后他举起讲义又... 查看全部[ Francesco: 为什么使用Erlang ]
Simon:为什么使用Erlang
我是在20世纪80年代早期开始进行函数式编程工作的,而在Erlang问世20年后才知道它的存在。Erlang最吸引我的地方是,它是为解决实际和复杂问题而设计的,并且通过一种优雅且极其有效的方式解决它们。这也正是近几年人们越来越多地把Erlang应用到的各种系统上的原因。 与Java、C++或Haskell语言相比,Erlang还是一种规模较小的语言,这也使得在Erlang上编写工具更具实用价值。这一点,还有我们在工作中所使用的库的质量,帮助在Kent工作的函数式程序设计组更加有效地为Erlang实现Wrangler重构工具。... 查看全部[ Simon:为什么使用Erlang ]
谁应该阅读本书,怎样阅读本书
谁应该阅读本书 我们写这本书的目的是向你介绍如何使用Erlang进行程序设计。我们并不要求你曾经使用过Erlang,或者熟悉其他函数式编程语言。 我们的确希望你已经拥有Java、C、Ruby或其他编程语言的经验,并且会特别指出Erlang与你所使用的其他语言的不同之处。 怎样阅读本书 我们把这本书分成两部分,第一部分需要顺序阅读,第二部分可以并行(或按照你喜欢的顺序)阅读,因为后一部分各章之间互相独立。 前11章包含了Erlang的核心部分: 第1章概括介绍了这门语言,其中包含Erlang 对于建立高效、健壮的并发系统的关键特性。我们还介绍了Erlang是如何发展到今天... 查看全部[ 谁应该阅读本书,怎样阅读本书 ]
致谢
我们感谢所有帮助本书出版的人。首先是Jan“Call Me Henry”Nyström,他帮助我们启动了这个项目。 整个O’Reilly Media团队给予了我们无尽的帮助,特别是编辑Mike Loukides,他耐心地指导并鼓励我们,以确保每一章持续进行。在此特别感谢Audrey Doyle的审稿,还有Rachel Monaghan、Marlowe Shaeffer、 Lucie Haskins、Sumita Mukherji和所有制作团队的工作人员。 然后是OTP团队,特别是Bjorn Gustavsson、Sverker Eriksson、Dan Gudmundsson、Kenn... 查看全部[ 致谢 ]
为什么我应该使用Erlang
我们为什么如此兴奋地向你介绍Erlang呢?这门语言真正让我们感到特别的地方是什么呢?Erlang的轻量级并发模型是最重要的亮点,该模型独立于底层操作系统,具有实现大规模进程的可扩展性。Erlang利用其避免数据共享的方式,很完美地适用于各种多核处理器。这在解决同步问题和各种性能瓶颈上得到了充分证实,而在其他很多的传统编程语言中,这些问题往往复杂而且很难解决。Erlang语言的声明性质决定了其程序简短紧凑,并且其许多的内置特性使它成为实现容错软实时系统的理想语言。Erlang还拥有非常强大的整合能力,它可以无缝地和其他各种大型系统融合。这意味着将Erlang引入现有系统并逐渐取代常规性能较差的... 查看全部[ 为什么我应该使用Erlang ]
Erlang语言的历史及发展
在20世纪80年代中期,爱立信的计算机科学实验室接到一个任务:调查适合下一代电信产品的编程语言。在Joe Armstrong、Robert Virding和Mike Williams在Bjarne Däcker的带领下,他们花了两年时间用原型法测试了所有可能的编程语言。最终的结论是,虽然现有语言也有一些有趣的和相关的功能,但是没有一门独立的语言能够包容电信行业所需要的所有的特性。因此,他们决定自己开发一种全新的语言。从此Erlang诞生了,它受到了函数语言(比如ML和Miranda),并发语言(比如ADA、Modula、Chill)以及逻辑编程语言Prolog语言的启发和影响。与爱立信专有语言... 查看全部[ Erlang语言的历史及发展 ]
Erlang的特性
虽然Erlang本身是一种很有吸引力的编程语言,但当你把它与虚拟机(VM)、OTP中间件和类库相结合的时候,其真正的实力才能完全体现出来。其中的每一点都使Erlang软件开发变得如此特别。那么,具体有哪些功能体现出Erlang与其他类似语言的不同呢? 高级构造 Erlang是一种声明性的语言。声明性语言工作的原则是去描述应该计算什么,而不是去解释这个值是如何计算而来的。一个函数定义就像一组等式,尤其是当使用模式匹配从不同的情况中去选择和从复杂的数据结构中抽取组件的时候。下面是一个简单的例子: area({square, Side}) -> Side * Side ; ar... 查看全部[ Erlang的特性 ]
Erlang和多核
向多核的转变是不可避免的。要让C和Java的遗留代码并行化是非常困难的,而调试并行化的C和Java则更难……那么有没有其他更好的选择呢? Erlang的并发模式——不同进程之间不通过共享内存而是通过消息传递来通信——可以很自然地转换到多核处理器,而且这对于程序员而言大部分都是透明的,这确保了你可以在更强大的硬件上运行Erlang进程,而无须重新设计它们。 Erlang首次关于对称多处理(Symmetric multiprocessing,SMP)实验性的支持的研发始于20世纪90年代末,它现在已经成为标准发布中的一个组成部分。爱立信的Erlang/OTP开发团队的想法是运行SMP,测试其... 查看全部[ Erlang和多核 ]
案例研究
让我们来看一下刚才所描述的Erlang成功的几个因素。爱立信第一个主要的Erlang产品是AXD301 ATM交换机。而最近,Erlang是实现“无模式”面向文档的数据库CouchDB的关键所在。最后,我们通过一个摩托罗拉主导的研究项目来比较Erlang和C++的效率。 AXD301 ATM交换机 AXD301是一个电话级10-160 Gbps的ATM交换机,从设计到实施总共用了不到三年的时间。AXD301的核心包括了超过150万行的Erlang代码,它们负责处理所有复杂的控制逻辑,并监控运行和维护。它还集成了约50万行的C/C++代码来实现低级别的协议和设备驱动器,其中的大部分来... 查看全部[ 案例研究 ]
应该如何使用Erlang
开发Erlang的哲学同样适合于开发以Erlang为基础的系统。引用Erlang的三个发明人之一的Mike Williams的话: 找到设计原型的正确方法。 只有想法还不够,还必须实现它们并且懂得它们如何运行。 允许小范围内犯错,但绝不能发生在产品级项目上。 按照上面所引用的话,所有成功的Erlang项目都应从一个原型开始,而且Erlang完全支持获得原型所需的特性,并运行快速。工作原型通常包括一个功能性的子集,并允许端到端的系统测试。例如,如果你正在建立一个即时通信服务器(在本书中反复出现的一个主题),有效的功能测试包括有能力进行提示和发送消息到远程服务器,而不必担心如冗余、持久... 查看全部[ 应该如何使用Erlang ]
书名: Erlang编程指南
作者:
出版社: 机械工业出版社
原作名: Erlang Programming
译者: 慕尼黑Isar工作组 | Simon Thompson
出版年: 2011-3
页数: 444
定价: 79.00元
装帧: 平装
ISBN: 9787111303251