译者序
依靠其简洁、优雅的语言特色,以及Rails等开发框架的成功,Ruby在Web开发领域早已成为一种人气颇高的动态脚本语言。然而,当今世界上流行的编程语言中,只有Ruby来自亚洲,作为Ruby语言的发明者,松本行弘(Matz)表示自己常因此而感到孤独。
作为这本书的译者,2012年11月借中国Ruby大会的机会,我有幸以图灵特派记者的身份对Matz进行了一次专访。穿着UNIQLO的格子衬衫,充满技术宅范儿的Matz,平时看起来不苟言笑,谈起技术话题来就好像打开了话匣子一般滔滔不绝,在Twitter上的发言也相当活跃。在访谈中,Matz谈到了Ruby的发展方向,他希望Ruby能够在Web开发之外的领域(科学计算、高性能计算和嵌入式系统)有更多的发展,同时他也希望中国的程序员们能够积极为开源社区做出贡献,努力成为能够影响世界的工程师。
Matz一直称自己是一个普通的程序员,创造Ruby只不过是他编程生涯中的一小部分。无论是以“资深UNIX程序员”的身份,还是“Ruby之父”的身份,Matz都有足够的资格对现今的编程语言和技术品头论足;另一方面,计算机技术的发展可谓日新月异,Matz认为有必要从过去到未来,以发展的眼光来看待这些技术的演进。用资深程序员的视角和发展的眼光来剖析技术,这就是Matz笔下的《代码的未来》。
在这本书中,Matz将和大家一起探讨丰富多彩的技术话题,并对编程语言的未来发展趋势做出自己的预测。像Lisp这样拥有最简核心的函数型语言真的会是未来的发展趋势吗?垃圾回收、闭包、高阶函数、元编程等编程语言中的要素是如何发展出来的?Google为什么要开发Go和Dart,它们能取代C语言和JavaScript吗?大数据时代经常提到的Hadoop、MapReduce、NoSQL等名词到底是什么意思?关系型数据库真的已经走到穷途末路了吗?要充分运用多核心和分布式环境,在软件层面需要做出怎样的应对,又有哪些技术可以使用?如果你对上面这些话题感兴趣,无论心中是否已经有了自己的答案,都可以看一看来自Matz的解读。
和《松本行弘的程序世界》一样,这本书也是Matz在《日经Linux》杂志连载的专栏文章的一个合集,书中选取的文章之间有近四年的时间跨度,且章节的安排也和原稿写作的时间顺序有所不同。不了解这个背景的读者,可能会被书中一些貌似前后重复或者“穿越”的地方搞得一头雾水——少安毋躁,这不是bug。相比《松本行弘的程序世界》的14个主题来说,这本书的主题更加集中和深入,而不变的是,话题依然丰富,观点依然犀利,内容依然扎实,读起来畅快淋漓。
最后,感谢Matz在本书翻译过程中所给予的帮助和指导,感谢图灵公司各位编辑的辛苦工作,希望每位读者都能够从中有所收获。
周自恒
2013年3月于上海