IronPython 之父 Jim Hugunin 离开微软加入谷歌

  • 赵劼

2010 年 10 月 22 日

话题:.NETRuby语言 & 开发

Jim Hugunin 于近日在博客及邮件列表中表示,他已经从微软离职,并加入谷歌。文章回顾了他在微软的工作经历及于 IronPython、DLR 的点点滴滴。Jim 最令人瞩目的成就在于开发了 JVM 上的 Python 语言 Jython,以及 CLR 上的 Python 语言 IronPython。之后他加入了微软,为动态语言在 CLR 上的表现做出了不懈努力。

Jim 在文章中表示,在他六年微软职业生涯的起初,他花了 8 个月的时间,努力将微软支持下的 IronPython 发布为一个开源项目。他写到:

……最后通过的那个时候,正好是我在年度 Python 大会上发言的前一天晚上——一点准备都没有。我很高兴地看到 Python 社区很乐意接受 IronPython……

IronPython 的第一个版本明显有很多问题。它使用微软单方面的“开源”协议(译注:即MS-PL),但没有得到社区的信任。在接下里的几年里这个协议通过了 OSI 认证,最后 IronPython 转向了更著名的 Apache 开源协议。第一个版本同样也有许多重大的技术漏洞,例如垃圾回收机制无法处理动态生成的代码,这会引起严重的内存泄漏。这个问题通过.NET 2.0 中强大的 DynamicMethod 得以解决。几年来,我们一直在稳步地解决技术及社区接受程度方面的问题。

同时,Jim 认为他最为得意的作品是“动态语言运行时(Dynamic Language Runtime,DLR)”:

对我来说,工作的巅峰则是创建出了动态语言运行时,它包含了大量我们在.NET 平台上开发 IronPython 时所得到的深度思考。最酷的是,我们通过引入了一个兼容层,让不同的语言能够在.NET 平台上进行互操作。我喜欢能够在 IronRuby 里调用我钟爱的 Python 类库的感觉。而最令人高兴的事情则是为 C# 语言添加了 dynamic 关键字。我对动态和静态类型长期以来的争论持中立态度,而在 C# 丰富的静态系统中有机会使用动态类型的功能实在是太棒了。至少,我想我永远不会忘记在讨论叫做“动态”的静态类型时所获得的震撼。

不过,微软决定终止对 IronPython 的投资还是成为了 Jim 离开微软的导火索:

……可能你们大都知道,我已经有段时间没有将主要精力放在 IronPython 上了,不过这一决定还是让我对工作进行了反思,我认为是时候探索新的职业道路了……我对这里大量优秀的人员及产品表示尊敬。我已经爱上 C# 语言的优雅,可能需要承受一些编写 Java 代码时的痛苦,从微软 Office 精心雕琢的 UI 切换到 Google Docs 时可能也会遭受些挫折。不管怎么说,我会珍惜从优秀的人们那里所学到的东西。

Jim 表示他即将加入谷歌,并谈了一些未来的工作:

能够加入谷歌我感到很兴奋。我喜欢与一些天才的小团队一起工作,并不断地受到用户的反馈与驱动。我喜欢和开源代码及社区保持良好的关系,我也认为未来是属于云和 Web 的。虽然在微软也能做到这些,IronPython 便是个良好的证明,但对此我总是感觉格格不入,需要花费更多代价。我很高兴能够加入一个与我的直觉合拍的地方,并展现出这些做法的力量。我相信在不断地反馈与改进之后 Google Docs 会有成长,我也会爱上它。

由于新雇主的关系,我会在 Java 方面的虚拟机世界里投入更多精力。我确信 C# 已经成长为一门比 Java 更好的语言,.NET 也有一些很酷的特性是 JVM 所不存在的,但我也在 Java 世界里发现了一些伟大的事物,如 HotSpot 的适应性编译技术,以及强大的社区给这一平台带来的良好价值。我认为双方都有和明显的优势。同时,我也喜欢 Google 设置的“主流语言”标准:Python、JavaScript,Java 和 C++,我找不到反对它的理由——至少我可以考虑将 Python 当作主要的语言!

最后,Jim 表示他将退出 IronPython 项目。目前 IronPython 已经有了新的组织者,他们是Miguel de IcazaMichael FoordJeff HardyJimmy Schementi,其中 Miguel de Icaza 和 Jimmy Schement 同时也会负责 IronRuby 项目的协调工作。

.NETRuby语言 & 开发