现在DLR和微软发布的Silverlight(以前叫做WPF/E)捆绑。其实俺对某个RIA平台兴趣不大。从个人的角度看,什么平台不重要。开发RIA的能力和平台无关。我就不信Dojo的Alex Russell转向开发Apollo或者Silverlight,能比那些只懂JavaScript或C#的老大们上手慢、成就小。不过既然这三架马车(DLR, Silverlight, 和IronRuby)是今天Mix07的重头戏,还是提一下。Silverlight捆绑了一坨迷你CLR,4M大,支持多语言开发。不同的程序员可选用自己的中意的语言开发RIA应用。有的公司用VB.NET,有的用IronPython,有的用Perl。这种自由度对提高公司的生产效率很有帮助。软件用户本来就不关心平台问题。程序员关心。一个平台的价值和用它开发的程序员数量成正比。支持多语言,自然能吸引更多的程序员。字节码级别的共享,又能让玩儿不同语言的老大们共享代码。其实多年前IE就支持多种脚本语言,只不过那时浏览器还没有成熟到运行普通脚本语言的程度,而且当时没有完善的沙盒环境,安全问题是需要考量。另外据说单用Flash那套环境还做不出Silverlight提供的演示效果。Expression+Silverlight提供了整合好了的全套开发工具,让RIA应用的设计人和程序员能在同一套代码上工作,并部署到多个平台上。对公司来说,应该是诱人的卖点。运行速度也许也是一个卖点:CLR是锤炼多年的一流虚拟机,在上面运行程序的速度比浏览器下的JavaScript解释器高了去了。至于让很多老大high得不行的流媒体支持,属于不知那天就消失的技术细节(对俺个人来说)。有兴趣地可以到微软网站去查看。
至于IronRuby。据说它还不能完全支持Rails。估计很多人就对它暂时没有兴趣了。Rails疯狂使用Ruby metaprogramming的技巧,正好可以用来检测各类Ruby衍生物对Ruby的支持程度。
老牌写手Jon Udell照例有篇高质量的总结--他采访了RubyCLR背后黑手John Lam后写的。里面提到了Avi Bryant用Squeak和Seaside搭建的RIA应用,DabbleDB。DabbleDB绝对让人惊叹。用户可以直接对Dabble的数据做各种复杂的操作,包括更新和关联schema。而这一切都不需要重启数据库。所有数据都是“活”的--直接体现了Smalltak推崇的Always Alive原则。Jon总结尤其安逸:动态语言能让程序员更有效率。但当我们正确地运用动态语言,我们可以搭建出让每个人都更有效率的软件,像程序员一样享受动态语言的好处。
P.S., 如果Sun感受到压力,对我们Java程序员也是好事。雇用一票Ruby程序员,最后只为改进NetBeans对Ruby的支持,还是小气了点。其实不在JVM里加入大家火爆争论的invokeDynamic指令也无所谓,至少在Java里加入Closure吧。Closure就是海洛因,一旦用上了,就忘不了那强烈的生理心理双重快感啊。