关于Iron语言的近况及nBazaar交流会
2010-10-25 20:26 by 老赵, 3338 visits最近Iron语言方面有了一些令人瞩目的动作。我们知道IronPython及IronRuby一直是由微软维护的,不过前段时间微软有消息说要“取消”这两个项目,并直接导致Jimmy Schementi和Jim Hugunin离开微软。于是有人觉得Iron语言要死了。我倒不这么觉得,因为这两个是开源项目,是用的是Apache 2.0协议,它们会死的唯一原因便是社区放弃了它们,这和微软是不是参与维护并没有太大关系。微软固然有其影响力,但社区才是开源软件的核心。
当然,有些事情还是比较可惜的,例如Jim Hugunin离开微软加入Google。Jim是个让我佩服的人,这不是因为他的技术,尽管作为Jython和IronPython之父他的技术水平有目共睹,更重要的是他能够努力维护自己作为纯粹的技术人员的理想。当时一个名为ActiveState的公司实现了一个.NET平台上的Python,但执行效率非常低下,于是他们得出的结论是“.NET不适合托管动态语言”。微软一直遭受FUD,很多技术人员提到微软技术就不屑一顾,我可以想象这样的结论会被无数人引用,欢欣鼓舞,而情况究竟如何,谁又会关心那么多呢?而Jim Hugunin却觉得很奇怪,因为他已经通过Jython证明了动态语言在Java平台上的可行性,于是便着手开发了IronPython的原型,想研究一下CLR的问题究竟出在哪里。他原本是想写一篇“为什么CLR对于动态语言来说是个糟糕的平台”,但结果发现CLR上的Python在许多情况下比CPython要快上不少。这方面更多情况,请参考IronPython 1.0的发布信息。
后来Jim加入了微软CLR小组,推动CLR成为一个对动态语言更加友好的执行环境,例如当年在.NET 1.0时,动态生成的代码无法被GC回收,这显然会造成内存泄漏,而在.NET 2.0里出现了DynamicMethod,.NET 3.5里出现了Expression Tree,.NET 4.0中甚至集成了DLR。可以说.NET已经成为越来越适合动态语言的执行平台。按照Jim的说法,DLR可谓是他的巅峰之作,包含了他开发IronPython总结出的大量精华,最重要的是它可以让.NET平台上的动态语言轻松地集成交互,例如在IronRuby中调用IronPython中的Python类库。
更重要的是,Jim在刚加入微软的时候,花了八个月的时间和公司与律师谈判,坚持将IronPython使用MS-PL协议开源,几年后MS-PL也成为了OSI认证的开源协议,可以说从那时候起IronPython、以及IronRuby和DLR成为了真正的开源项目。不过MS-PL一直没有摆脱个认知度的问题,因此后来这些项目都使用了Apache 2.0这个开源协议。
在加入微软六年之后,Jim选择加入Google。从他在博客和邮件列表中的说法来看,微软对于开源项目的态度,以及社区对微软的认知度也是令他颇为苦恼的事情,用他的说法是:“开源和微软有些格格不入”,而Google在和开源社区的关系等方面便领先微软许多。对此我很能理解,因为我虽然很喜欢.NET等技术,虽然也看得到微软的进步,但也的确对微软有些做法不满,同时也很羡慕一些开源社区的氛围。我很希望自己的本职工作是为某个受人广泛使用的开源项目作贡献,但这点在国内看来是个奢望,似乎也只听说淘宝有这方面的打算,而其他公司,即便是开源了自己的产品,如果从认知度上面考虑还只能算是小打小闹。当然,理想终归是理想,不能强求。像我现在这样能够有20%自己支配的时间,已经可以说是相当不错的条件了。同时,理想终归是理想,在这方面我还在探索,还在寻找方向。
如今微软已经放开对IronPython和IronRuby的控制了,这方面已经完全交给Miguel de Icaza及Jimmy Schementi等人进行管理。在我看来这是好事,Miguel是Gnome和mono的创建者,可以说是.NET开源界的领军人物,对于mono及开源的发展一直有强烈的决心和信心。而mono在.NET领域也可谓是创新十足,集中了.NET平台下开源爱好者的集体智慧,在平日里给了我很大帮助。而Jimmy Schementi原本就在微软领导IronRuby的开发,在他们的带领下,我觉得IronPython和IronRuby不会停下良性发展的脚步,例如IronPython 2.7和IronRuby 1.9的近况都不错。
十年前,ESR写下了著名《大教堂与集市》(双语版),阐述了两种不同的自由软件的开发模式。“大教堂(Cathedral)”模式是指由专属团队所掌管的开发模式(如GCC),而“集市(Bazaar)”模式则是交由社区群体共同完成。这恰好对应了IronPython和IronRuby早先与现在的开发方式——尽管它们是开源软件,而不是自由软件。我欣赏集市模式,因为它够热闹,够社区化,够集体智慧,这也是国内.NET社区甚至是技术社区所缺少的东西。
因此,我决定将我组织的.NET技术交流会取名为nBazaar,已经准备nBazaar.org域名,希望籍此机会让这一活动步入正轨。
老赵的文章总是这样有理有据,厚积薄发,令人信服。果然是大家风范。