动静兼济总相宜——Java与.NET之外的语言视界

去年的这个时候,我写了一篇文章来总结C++的2003年,题目是《波澜不惊》。其实当时我预料,C++的“波澜不惊”不仅会是2003的主题,恐怕也是之后很多年的主题。不过这个预料在仅仅一年之内就被打破,今年微软推出的C++/CLI着实翻起了一些波澜,给本已平静的C++世界涂抹了一缕亮色。按照Stan Lippman的说法,C++/CLI是一座桥梁,将原本属于静态世界的C++与动态的CLI联系起来。动静结合,自然不同凡响。C++/CLI大致将于2005年推出第一个正式版,而大约要到2007年才能够完全成熟。
目前的C++/CLI语言,从设计上来讲可为是毁誉参半。赞誉之词不必多说,至于社群里的反对意见,大致是来自两种情绪。其一是觉得C++/CLI对C++进行了专属的改造,使得自己熟悉的C++代码面目全非。其二是觉得C++/CLI将C++的复杂性与CLI的复杂性统统暴露出来,令人望而生畏。依我看来,第一种责难其实出于一种不必要的宗教虔诚,并不足以为据。倒是第二种看法,颇值得我们担忧,如果得不到很好的解决模型,我们也可以认定C++/CLI只是一小撮专家们手中的屠龙术,而很难产生更广泛的影响。
如果把C++/CLI的喧嚣拨开,看看传统的C++,那么2004年就不仅仅是“波澜不惊”了,甚至可以说是“水波不兴”。我甚至要颇费一番思索,才能够列出一两件事情,来代表C++社群这一年的所作所为,还要担心读者怪罪我小题大做。
Boost库在2004年改进了两版,加入了一些很棒的组件,比如序列化库等等。标准委员会也开会接纳了几个小玩意进入C++ 0X标准。C++社群自2000年以来,倾心于基础库的建设,这对于C++来说的确是必须,但是对于这个迅速变化的世界究竟能起到多大的影响,现在还很难说。其实一直以来,Boost库的精致程度就已经非常高,但是对外界的影响力还不够。我当然乐于看到“三年不鸣,一鸣惊人”的局面,但是对此并不乐观。总的来说,C++社群要加油。
与之相对应的,在实际工程中,C++的应用还是非常稳定地发展着。只不过,人们固执地使用着传统的、基于对象或者面向对象的风格,至多掺入少许的STL。从1998年以来,C++领袖们一直号召使用者转向新风格,现在看来这么多年过去了,效果并不很理想。其中主要的原因,固然是因为通往“新风格”之路的艰辛,也一定程度上是因为新兴动态语言的替代作用。“动静兼济”之美,未必要通过C++自身的涅磐来达成。事实上,类似Python和Ruby这样的动态语言,一方面提供了远远超越Java和C#的动态能力,另一方面又能够方便地与C/C++交互。用它们与C/C++混合开发,毫无疑问是开发应用系统的极佳组合方案。
2004年12月1日,Python升级到2.4。从语言本身来说,2.4与2.3的差别很小,对一般开发的影响几乎可忽略不计。但是,就在12月1日当天,ActivePython、PyWin32等主要Python实现包均同步升级到2.4版,此后数日,各主要Python软件包均升级兼容2.4版,动作之整齐划一,有如一家纪律严明的公司,充分体现了Python社群的成熟,令人震撼。
然而,对于Python来说,本年度最令人振奋的消息是IronPython的横空出世。IronPython不仅向Python社群证明了.NET平台,也向.NET证明了Python。其开发者Jim Hugunin已经被微软招入麾下,专职研究.NET平台上动态语言的实现技术。Python等动态语言有望将软件的开发效率在Java和C#的基础上进一步提升2-5倍,所以,毫无疑问的,我们当然希望Python能够进入.NET,成为一等公民。不过一般来说,2005年恐怕还不可能。微软还是非常热衷于推销自己发明的语言,而对于开源社群的贡献保持着一种官方的矜持。也许Java社群在这方面反而要更积极一些。
日本人Yukihiro Matsumoto发明的Ruby语言,以其更纯粹的面向对象支持、更一致的类型系统和为人津津乐道的block/iterator结构而迅速崛起,逐渐呈现与Python分庭抗礼之势。对于熟练的Python开发者来说,Ruby的吸引力并不是很大。但是对于刚刚踏入动态语言世界的C++/Java程序员来说,Ruby似乎比Python有更大的魅力。2003年8月,Ruby发布了1.8版,这是一个比较大的升级。而2004年,Ruby再接再厉,连续推出1.8.1和1.8.2,同时,Ruby社群成立了RubyForge网站,实现了力量的大整合,其发展势头更加迅猛。
脚本语言老将Perl今年把精力投入到了Perl 6上。虽然距离Perl 6的成形还很有一段路要走,但是Perl 6已经成为热门话题,O’Reilly甚至已经出版了一本书。而源于巴西的动态语言新丁Lua发布了5.1版,以其独特而小巧的设计、出奇的高效令世人惊讶。
总的来说,在动态语言领域里,老将的优势是支持库丰富,新丁的特长则是语言设计优美,新老各有优势,让人难以取舍。如果能新老结合,岂不是很美好?这就是Parrot项目的初衷——为动态语言提供最优化的基础运行平台。在2004年,其版本号升级到0.1.1。我们已经可以憧憬一个这样的未来,即Python、Perl和Ruby自由协同,互相无拘束地调用。因此可以说,Parrot VM是比任何单个动态语言发展都更为意义深远的事件,如果动态语言家族实现大统一,整个编程世界将被非常深刻地影响,今天任何一个执迷于Java或.NET世界而无暇四顾的人,在不久的未来都将为此而深感震撼。
事实上,动态语言本身的能力是有局限的,一般而言其效率也是较差,但是与C/C++的相互结合,使得程序员在开发时得以动静兼济,取长补短。很多人都相信,动态语言是编程技术发展的新方向。纵观2004,展望2005,这种预测是很有希望成为现实的。

2004年1月26日         Boost 1.31.0发布
2004年3月22-26日       C++标准委员会在悉尼召开第33次会议
2004年3月23日         Lua 5.1 work 0发布
2004年4月11日         微软发布Visual C++ Toolkit 2003
2004年4月20日         GCC 3.4.0发布
2004年5月27日         Python 2.3.4发布
2004年8月              Linux Standard Base 2.0加入一个C++ ABI标准
2004年8月              微软发布Visual C++ 2005 Express Beta,展示新的C++/CLI
2004年10月1日         Ruby语言的权威著作《Programming Ruby》第二版问世
2004年10月             C++标准委员会在微软总部雷蒙德召开第34次会议
2004年11月8日         Ruby 1.8.2 preview 3发布
2004年11月19日        Boost 1.32.0发布
2004年10月29日        Parrot 0.1.1发布
2004年12月1日         Python 2.4发布

评论 20
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值