程序员2009精华本
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

语言的观察者

█ 文/周爱民

当我开始回顾《程序员》这百期来的杂志时,我觉得像极了我小时候与哥哥一起看的万花筒:每一瓣的花色都闪烁着摄人的光芒。我几度沉浸在这些文字之中,直到我看到更早的《Internet 程序世界》,那第一期的创刊词就以“开卷有益”为题;多年之后,蒋涛兄在给我的《大道至简》一书作序时,也以“开卷有益”四字作结,这才略略醒过味来,所得颇多。

阅《程序员》百期,千象万境之中,我只得撷一叶而窥之。仅以“语言”为例,一份杂志已渐成观察者。记得在2002年第一期刊登一篇对PHP之父Rasmus Lerdorf的访谈。Lerdorf 谈到了PHP的开源之路,他说到以下几个至今为人称道的观点:

Lerdorf 开发代码的逻辑是:它必须对我有利。如果全世界都使用我写的代码,那么最终我将从中得到好处。

如果你没有出售它,你倒不如公开它。

“全世界都使用我写的代码”如今成了开源的理想与追求,而Lerdorf所预言的“最终好处”也已经渐露端倪:无论用户还是开发人员,都从中受益良多。在“不如公开它”的号召下,我们看到IBM、SUN、Netscape/Mozilla、Apple、Google 等这些商业公司相继拥抱开源,把一个个投入巨资的开发项目的代码分享出来。如今,在这些大公司以及大开源组织和“全世界的”程序员的努力之下,开源代码已经有了极佳的品质、极高的可用性,以及用户的接受度。

我相信闭源还将存在,但我也对开源抱以更强烈的信心和热情。在语言相关的开源项目中,《程序员》曾在2002年12月,发表了张欣、隗刚、裘宗燕老师等的《初识Ruby 语言》一文。在那个时候,Ruby 还只是一个相当小众的语言。然而《程序员》却未曾放弃过对这些小众语言的关注,在这篇《初识Ruby 语言》中,讲到了Ruby 的语言结构、应用特点等等,已经不是“初识”那么简单的了。随后《程序员》开始跟进“动态语言”这个系列,包括Lua、Python、Erlang 等语言相继被推介了出来。而今,这些语言已经不再那么小众,有些已经在国内形成了稳定的开发者社区。

其中对我而言,最深刻的印象莫过于Lua。事实上我最早是通过一个同事知道Lua 这门语言的,而他当时便正在读着《程序员》。他提到这门语言的时候,开着玩笑说:也许这个会流行呢?我则笑道:太流行的东西我一向不感兴趣。过了几年之后,这门语言确实未能“流行”,但是它在游戏领域中却有了许多实际的应用——而这一切,却是我少有了解的。在SD2C2007年大会之后,我与云风交流了Lua 与Javascript 的观点,云风极力向我推荐Lua,认为“值得一看”。后来在盛大的工作,在需要选择一个游戏脚本引擎时,我才深入地了解了这门语言,并作为内训的一个参考语言。回顾这一切的过程,《程序员》所搭建的杂志、社区以及业界交流的平台隐隐其中。

谈及平台,《程序员》对语言框架与平台的敏感也是令人惊叹的。我在《JavaScript 语言精髓与编程实践》一书中就介绍过富WEB客户端(RWC) 开发的一些历史。其中,“对于中国的一部分的 JavaScript 爱好者来说,RWC 时代就开始于《程序员》2004年第5期的一篇《王朝复辟还是浴火重生——The Return ofRich Client》”。这里介绍的RWC框架就是Bindows。尽管Bindows 最终未能像Atlas、JQuery、YUI等等一样流行开来,但这一篇文章的确反映了彼时之实,观瞻了一个新的语言/编程应用方向。

除了呐喊与评析,《程序员》也有对语言及其应用的深度探讨,最近例如左轻侯的系列“PHP 沉思录”。我不但读过左轻侯的这系列文章,还听过他对此的讲演,更为深刻地了解导致他对“沉思PHP”的根源。更特别的是,我在2005年前后,还用PHP来构架过大型系统,对这个讨论的背景也有充分了解。读这系列的文章,常常感叹:为什么这样的经验不能早些拿来分享。不过细细想来,再早些的话,大家都是行路之人,便也未见得能有这样的思想与沉淀了。所以,常常读些这样的文章,可以少走点弯路,少犯点错失,毕竟闻道有先后,得见他人的思想——哪怕是迟来之所得——也是好事。

翻读着手上的新新旧旧的杂志,仍然是那种感觉:《程序员》正渐而渐之地成为一种观察者的角色,峻然于业界之一侧,以冷静清醒和颇有洞见的眼光视看着这个行业,关注着它的成长、发展与动向,时见翻覆之势、得失之争,亦或直触实质的分析、应用与实践积累。此正所谓开卷得益,快哉乐矣。█