Hello World
Spiga

关于Iron语言的近况及nBazaar交流会

2010-10-25 20:26 by 老赵, 2054 visits

最近Iron语言方面有了一些令人瞩目的动作。我们知道IronPython及IronRuby一直是由微软维护的,不过前段时间微软有消息说要“取消”这两个项目,并直接导致Jimmy SchementiJim 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 IcazaJimmy 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域名,希望籍此机会让这一活动步入正轨。

Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名赵劼(包含链接),具体操作方式可参考此处。如您有任何疑问或者授权方面的协商,请给我留言

Add your comment

15 条回复

  1. grapeot
    160.39.37.*
    链接

    grapeot 2010-10-25 20:48:09

    老赵的文章总是这样有理有据,厚积薄发,令人信服。果然是大家风范。

  2. Rwing
    183.38.149.*
    链接

    Rwing 2010-10-25 21:14:33

    十分期待第3期nBazaar啊~~

    另外,老赵啥时候把你这个blog开源啊,嘿嘿

  3. 老赵
    admin
    链接

    老赵 2010-10-25 21:29:49

    @Rwing

    我的博客完全是自己裸写的,要多烂有多烂,还是看些现成的项目比较好。

  4. stainboy
    122.84.23.*
    链接

    stainboy 2010-10-25 22:55:07

    支持开源,支持.NET技术交流会!

    好奇之下查了字典,发现Bazaar有市场的意思,但是Bazzar查无结果。是同音还是?

  5. 老赵
    admin
    链接

    老赵 2010-10-25 23:23:44

    @stainboy

    是我文章里拼错了,还好实际上域名没有注册错,否则钱就白丢了,呵呵。

  6. Ben
    180.171.167.*
    链接

    Ben 2010-10-25 23:46:58

    ms最近是不是内斗的厉害呢,Ray Ozzie也离职了,不过他又写个五年备忘录对ms还有抱有希望的

  7. 老赵
    admin
    链接

    老赵 2010-10-26 00:20:25

    @Ben

    内斗是一直有的,持续性的,不会是最近的事情,但我也不觉得Ray Ozzie离职就是因为内斗,他也到退休年纪了,很可惜。

  8. Zealot
    218.107.55.*
    链接

    Zealot 2010-10-26 00:29:10

    关于淘宝的开源项目, 因为OpenJDK是GPL的, 只在服务器端部署是不需要开源的, 估计淘宝也不会去开源的.

  9. 老赵
    admin
    链接

    老赵 2010-10-26 00:35:09

    @Zealot

    如果他们不发布,那就没有贡献了。不过要我说,他们为什么不发布呢?不发布的话,一旦OpenJDK有了后续更新,那么淘宝自己怎么办?还不如提交更新,保持最好的质量。

  10. 西水源头
    60.247.26.*
    链接

    西水源头 2010-10-26 09:31:41

    关注nBazaar,呵呵

  11. 链接

    rocklau83 2010-10-26 10:24:02

    只有开源才有进步!

  12. 链接

    装配脑袋 2010-10-26 20:41:02

    老赵今天从你的RSS访问Blog又出错了。。

  13. 老赵
    admin
    链接

    老赵 2010-10-26 22:50:23

    @装配脑袋

    唉,我好懒,我早就该更新博客程序的……

  14. 鳞
    220.178.24.*
    链接

    2010-10-27 08:53:06

    瞄了一眼IronPython,真是很赞的东东.还有一个叫CLR上的动态boo的语言,可惜好像是已经快死了. 请教一个问题,看Codeplex上的ironpython的介绍说,他完全兼容cpython2.7.我试了下 print "hello world" print ("hello world") //这很显然是python3.0+支持的语法

    都可以.我没明白他说的兼容cpython2.7的意思.是不是3.0+的语法和库也支持,只是还不充分,python2.7的语法库都完全支持?

  15. Duron800
    117.79.83.*
    链接

    Duron800 2010-10-31 23:36:21

    老赵的文章很给力。 向Jim Hugunin同学学习。

发表回复

登录 / 登录并记住我 ,登陆后便可删除或修改已发表的评论 (请注意保留评论内容)

昵称:(必填)

邮箱:(必填,仅用于Gavatar

主页:(可选)

评论内容(大于5个字符):

  1. Your Name yyyy-MM-dd HH:mm:ss

使用Live Messenger联系我