Erlang/OTP并发编程实战译 者 序_Erlang/OTP并发编程实战译 者 序试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > Erlang/OTP并发编程实战 > 译 者 序

Erlang/OTP并发编程实战——译 者 序

译 者 序 本科毕业后,我的第一份工作是即时通信服务研发。大约在2007年年底的时候,出于工作原因,我对XMPP产生了兴趣。在调研过程中,我找来了各种 XMPP服务器进行比较。令我惊讶的是,业内公认最为优秀的分布式XMPP服务器ejabberd,竟然是用一种样貌诡异的冷僻语言写成的——这便是我与 Erlang的第一次碰面。相较于日常惯用的C++和Java,Erlang对我来说既陌生又怪异。囫囵吞枣地过了一遍相关资料之后,我惊讶地发现这门语言竟然已有近三十年的历史,而且功能完备、羽翼丰满。然而,晦涩的语法和文档却令我晕头转向,加上初识函数式语言,思维方式一时难以转变,这第一次亲密接触没过多久便宣告结束。 一年多之后,Facebook发布了基于XMPP的即时通信服务Facebook Chat,所用的服务器正是经过定制的ejabberd 。刚好那段时间正在琢磨分布式一致性相关的问题,迫切需要一门便于实现分布式算法的语言。于是我开始在官方文档和Concurrent Programming in Erlang的指引下学习Erlang。很快我便发现,只要适应了尾递归和单次赋值等函数式编程的特点,Erlang语言本身非常地简单明了。经过初步的摸索,对Erlang的认识也逐渐完整起来。最初以为这是一门阳春白雪的学院派语言,后来却发现大错特错。自打诞生之日起,Erlang就是一门目的性和工程性极强的语言。它的特性集合历经电信行业的千锤百炼,几乎不带一丝一毫的水分。尤为有趣的是,正如本书简介中所述,Erlang的历史与工程型语言的另一典范C惊人地相似。但是,由于思想过于前卫,这门优秀的语言却一直未能受到足够的关注。在服务器端的开发者们都在兴致勃勃地探讨如何通过避免内存复制来提高单机性能时,复制式消息传递简直就是异端邪说!过去十年间,并发处理的复杂性已经随着硬件瓶颈的到来而凸显出来。然而,对于一线应用的开发者而言,近年来大规模互联网应用的爆炸式增长才切实将并发处理变成了一个亟待解决的现实问题。 没想到很快冷水便劈头盖脸地浇了下来——Erlang的并发、容错机制只是整个体系的基石,要想真正发挥出它们的威力,还要仰仗一套叫做OTP的东西。这玩意儿可真是折腾死人了!OTP行为模式迷宫般的回调逻辑把我绕得晕头转向;在解决具体问题时,我总是搞不清楚到底该用gen_server、gen_fsm还是gen_event;好不容易在Erlang shell里跑通一段代码,想打包部署到其他机器上做多机实验时又撞了一头包:应用、发布镜像、变幻莫测的配置项、漫天飞舞的版本号、语焉不详的官方文档……所有这些魔鬼般的细节无不蚕食着我所剩不多的耐心。 译完本书之后再回过头来看,其实OTP的核心概念并不复杂,当年最让我搓火儿的还是实战过程中各种剪不断理还乱的繁琐细节。Erlang/OTP的官方文档并不缺细节,但这些细节却水银泻地般地散落在各个角落里,缺乏一条将它们有机地贯穿起来的主线。梳理这一主线,正是本书的任务。全书以交付产品级代码为目标,以一个现实而鲜活的虚拟项目为舞台,深入浅出地讲解了OTP中最为重要的机制和概念,并清晰地呈现了它们之间的内在联系。如果说 Erlang/OTP的官方文档是个繁华的大都市,那么这本书就是一本地图。明白了关键机制和概念之间的内在联系之后,按图索骥深入学习Erlang /OTP就不再是什么难事了。 既然是译者序,那么再说说译书的那些事儿吧。2009年至2010年间,我在Erlang China社区内发起了CPiE-CN项目,召集了一批志愿译者共同完成了Concurrent Programming in Erlang (Part I)中文版《Erlang并发编程(第一部分)》的翻译。后来,正是这一项目促使我成为了本书的译者。在此我要对CPiE-CN的几位志愿译者表示感谢,他们是王飞、赵宇坤、张驰原、丁豪、赵卫国和吴峻。在本书近一年的翻译过程中,我要感谢图灵教育的傅志红老师、李松峰老师和刘美英老师的帮助,感谢他们容忍了我非常规的交稿方式(以及蜗牛般的进度)。我还要感谢几位协助校对部分中间译稿的早期读者,他们是赵卫国、田中博和倪华杰。最后,特别感谢我的妻子雅莉:这一年中,本职工作的繁重程度远远超出了我的想象,所剩不多的业余时间完全被这本书消耗殆尽,如果没有她的支持和监督,身为重度拖延症患者的我也许根本就坚持不下来。 好啦,闲话少说,预祝各位读者在享用本书的过程中玩儿得开心!

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《Erlang/OTP并发编程实战》其他试读目录

• 序
• 译 者 序 [当前]
• 前  言
• 引  言
• 第一章:Erlang/OTP平台