Jim在文章中表示,在他六年微軟職業(yè)生涯的起初,他花了8個月的時間,努力將微軟支持下的IronPython發(fā)布為一個開源項(xiàng)目。他寫到:
……最后通過的那個時候,正好是我在年度Python大會上發(fā)言的前一天晚上——一點(diǎn)準(zhǔn)備都沒有。我很高興地看到Python社區(qū)很樂意接受IronPython……
IronPython的第一個版本明顯有很多問題。它使用微軟單方面的“開源”協(xié)議(譯注:即MS-PL),但沒有得到社區(qū)的信任。在接下里的幾年里這個協(xié)議通過了OSI認(rèn)證,最后IronPython轉(zhuǎn)向了更著名的Apache開源協(xié)議。第一個版本同樣也有許多重大的技術(shù)漏洞,例如垃圾回收機(jī)制無法處理動態(tài)生成的代碼,這會引起嚴(yán)重的內(nèi)存泄漏。這個問題通過.NET 2.0中強(qiáng)大的DynamicMethod得以解決。幾年來,我們一直在穩(wěn)步地解決技術(shù)及社區(qū)接受程度方面的問題。
同時,Jim認(rèn)為他最為得意的作品是“動態(tài)語言運(yùn)行時(Dynamic Language Runtime,DLR)”:
對我來說,工作的巔峰則是創(chuàng)建出了動態(tài)語言運(yùn)行時,它包含了大量我們在.NET平臺上開發(fā)IronPython時所得到的深度思考。最酷的是,我們通過引入了一個兼容層,讓不同的語言能夠在.NET平臺上進(jìn)行互操作。我喜歡能夠在IronRuby里調(diào)用我鐘愛的Python類庫的感覺。而最令人高興的事情則是為C#語言添加了dynamic關(guān)鍵字。我對動態(tài)和靜態(tài)類型長期以來的爭論持中立態(tài)度,而在C#豐富的靜態(tài)系統(tǒng)中有機(jī)會使用動態(tài)類型的功能實(shí)在是太棒了。至少,我想我永遠(yuǎn)不會忘記在討論叫做“動態(tài)”的靜態(tài)類型時所獲得的震撼。
不過,微軟決定終止對IronPython的投資還是成為了Jim離開微軟的導(dǎo)火索:
……可能你們大都知道,我已經(jīng)有段時間沒有將主要精力放在IronPython上了,不過這一決定還是讓我對工作進(jìn)行了反思,我認(rèn)為是時候探索新的職業(yè)道路了……我對這里大量優(yōu)秀的人員及產(chǎn)品表示尊敬。我已經(jīng)愛上C#語言的優(yōu)雅,可能需要承受一些編寫Java代碼時的痛苦,從微軟Office精心雕琢的UI切換到Google Docs時可能也會遭受些挫折。不管怎么說,我會珍惜從優(yōu)秀的人們那里所學(xué)到的東西。
Jim表示他即將加入谷歌,并談了一些未來的工作:
能夠加入谷歌我感到很興奮。我喜歡與一些天才的小團(tuán)隊一起工作,并不斷地受到用戶的反饋與驅(qū)動。我喜歡和開源代碼及社區(qū)保持良好的關(guān)系,我也認(rèn)為未來是屬于云和Web的。雖然在微軟也能做到這些,IronPython便是個良好的證明,但對此我總是感覺格格不入,需要花費(fèi)更多代價。我很高興能夠加入一個與我的直覺合拍的地方,并展現(xiàn)出這些做法的力量。我相信在不斷地反饋與改進(jìn)之后Google Docs會有成長,我也會愛上它。
由于新雇主的關(guān)系,我會在Java方面的虛擬機(jī)世界里投入更多精力。我確信C#已經(jīng)成長為一門比Java更好的語言,.NET也有一些很酷的特性是JVM所不存在的,但我也在Java世界里發(fā)現(xiàn)了一些偉大的事物,如HotSpot的適應(yīng)性編譯技術(shù),以及強(qiáng)大的社區(qū)給這一平臺帶來的良好價值。我認(rèn)為雙方都有和明顯的優(yōu)勢。同時,我也喜歡Google設(shè)置的“主流語言”標(biāo)準(zhǔn):Python、JavaScript,Java和C++,我找不到反對它的理由——至少我可以考慮將Python當(dāng)作主要的語言!
最后,Jim表示他將退出IronPython項(xiàng)目。目前IronPython已經(jīng)有了新的組織者,他們是Miguel de Icaza、Michael Foord、Jeff Hardy與Jimmy Schementi,其中Miguel de Icaza和Jimmy Schement同時也會負(fù)責(zé)IronRuby項(xiàng)目的協(xié)調(diào)工作。