.NET的一点历史故事:招兵买马和聚义山林
曾幾何時(shí),Java 的興起得益于眾多大公司的涌入,Sun、IBM、SGI、網(wǎng)景、甲骨文、Borland 都在第一時(shí)間關(guān)注并投入大量資源來推動(dòng)它的發(fā)展。比較典型的例子就是 IBM 做了自己的 Java SDK,并且做出了 SWT 界面框架,后面又開源了自己的 Visual Age for Java 開發(fā)工具,建立了 Eclipse 這個(gè)影響深遠(yuǎn)的平臺(tái)。微軟通過 Visual J++ 在 Java 這個(gè)領(lǐng)域插了一腳之后,很快就被 Sun 領(lǐng)頭的大集團(tuán)掃地出門。
從1998年10月6號(hào)到2000年6月22號(hào),微軟在開發(fā)工具領(lǐng)域就進(jìn)入了一個(gè)緘默期,缺乏新鮮東西。而這個(gè)階段,Java 正借著 J2EE 平臺(tái)的不斷升級(jí)在企業(yè)計(jì)算領(lǐng)域攻城略地。所以當(dāng)微軟終于在 Fortune 2000會(huì)議上由 Bill Gates 公布全新 .NET 平臺(tái)戰(zhàn)略時(shí),對(duì)于熟知 Java 的程序員來說,明顯綁死在微軟 Windows 平臺(tái)上的這些新技術(shù)即使看起來很美好,卻并沒有什么廣大的前景。只有從 Windows 這只碗里取食的開發(fā)者,才會(huì)真正嚴(yán)肅的考慮它所帶來的改變。
全新設(shè)計(jì)的 C# 語言,兼有 Java 的嚴(yán)謹(jǐn),Visual Basic 的簡(jiǎn)練,和 C++ 的全面。
為 Visual Basic 社區(qū)開發(fā)了真正面向?qū)ο蟮?Visual Basic .NET 語言,和代碼遷移路徑。
為 J++ 和 Java 社區(qū)開發(fā)了具有一定兼容性的 J# 語言。
為 C++ 社區(qū)開發(fā)了 Managed C++ 擴(kuò)展。
CLR 和 MSIL 和單一編程語言解耦,潛在支持更多的編程語言。
語言和虛擬機(jī)的設(shè)計(jì)考慮了很多和既有技術(shù)(ActiveX、COM、COM+、DCOM、Win32 API)的集成問題,從而能夠快速用來開發(fā)桌面、服務(wù)器端應(yīng)用程序,完全取代老版本的 Visual C++ 和 Visual Basic。
在開發(fā)這個(gè)產(chǎn)品的漫長(zhǎng)過程中,微軟投入了不少明星研發(fā)人員,如 Anders Hejlsberg。Anders 在供職于 Borland 公司的十幾年內(nèi),成功領(lǐng)導(dǎo)了 Turbo Pascal 和 Delphi 兩個(gè)重量級(jí)產(chǎn)品的開發(fā)工作。而在加入微軟公司后,又在 Visual J++ 6.0 和 C# 語言開發(fā)過程中發(fā)揮了關(guān)鍵作用。C# 語言可以看過是 Java/Delphi/Visual Basic三種語言的融合,匯集了三者的精華,所以也很快流行起來。
同時(shí),也有新鮮血液在這個(gè)研發(fā)過程中脫穎而出,例如1997年5月才從 Duke 大學(xué)畢業(yè)的 Scott Guthrie 由于領(lǐng)導(dǎo)了 ASP.NET 框架的設(shè)計(jì)而受到關(guān)注。1999年11月他晉升為 ASP.NET 的 Lead Program Manager,而2001年1月就升為微軟 Web Platform and Tools 的 Product Unit Manager,開始掌舵 Web 相關(guān)開發(fā)技術(shù)的研發(fā)。當(dāng)然由于出色的領(lǐng)導(dǎo)才能,Scott 在后面的歲月里步步高升,如今已經(jīng)是微軟公司核心領(lǐng)導(dǎo)層不可或缺的支柱。
不過即使準(zhǔn)備如此充分,甚至從2000年起微軟就先后發(fā)布了多個(gè)測(cè)試版本以便開發(fā)者熟悉和了解這個(gè)新的技術(shù)平臺(tái),2002年2月13日正式發(fā)布的 .NET Framework 1.0 和 Visual Studio .NET 2002 也并沒有覆蓋到一個(gè)開發(fā)者日常開發(fā)所需要的所有工具層面。這個(gè)關(guān)鍵時(shí)候微軟技術(shù)社區(qū)及時(shí)的填補(bǔ)了空白。幾個(gè)很早就由社區(qū)領(lǐng)導(dǎo)的項(xiàng)目在這方面顯得尤為重要:
NUnit 單元測(cè)試框架早在2000年6月便出現(xiàn)了。早期是 JUnit 的簡(jiǎn)單模仿,而后期開始使用 attributes 等 .NET 獨(dú)有的特性來簡(jiǎn)化用戶體驗(yàn)。
SharpDevelop 開源 IDE 于2000年9月11號(hào)開始啟動(dòng),提供了一個(gè)免費(fèi)而且比 Visual Studio 更加輕量級(jí)的開發(fā)工具。
2000年11月,GNOME 項(xiàng)目的領(lǐng)導(dǎo)人 Miguel de Icaza 考慮將 .NET 和 C# 帶到 Linux 操作系統(tǒng),使得 CLR 和 MSIL 成為跨平臺(tái)的技術(shù)。Mono 項(xiàng)目應(yīng)運(yùn)而生,并與2001年6月30號(hào)正式啟動(dòng)。
2001年1月 Lutz Roeder 開始發(fā)布免費(fèi)的 .NET Reflector 反編譯工具,使得反向工程他人代碼成為一個(gè)十分簡(jiǎn)便的過程。
2001年6月,Neoworks Limited 公司開始模仿 log4j 項(xiàng)目來開發(fā) log4net,并與2004年2月將它捐贈(zèng)給 Apache 基金會(huì)。
2001年7月5日,Gerry Shaw 啟動(dòng)了 NAnt 項(xiàng)目,嘗試模仿 Ant 項(xiàng)目建立一個(gè)適合 .NET 項(xiàng)目的編譯引擎。
2001年9月29日,Kral Ferch、Jason Diamond等人啟動(dòng)了 NDoc 項(xiàng)目,靈感來自 JavaDoc。
微軟也建立了一個(gè)名為 GotDotNet 的站點(diǎn)來聚合這些社區(qū)項(xiàng)目,以及數(shù)以百計(jì)的范例代碼。
這個(gè)階段的 .NET 依然處于一個(gè)十分初級(jí)的階段,表現(xiàn)為
模仿 Java,尤其是社區(qū)項(xiàng)目基本都是 Java 領(lǐng)域?qū)?yīng)項(xiàng)目的克隆。
微軟設(shè)計(jì)的 Windows Forms 和 ASP.NET 框架雖然簡(jiǎn)便易用,和 Windows 平臺(tái)已有技術(shù)的集成也很完善,但完全綁定在 Windows 平臺(tái)上。
更為重要的是,微軟沒有能夠設(shè)計(jì)出可以比擬 J2EE 平臺(tái)的企業(yè)級(jí)開發(fā)框架。?
在后來的數(shù)年之中,Java 技術(shù)一直在廣度上壓過 .NET 一頭,很多新興技術(shù)例如 Hadoop 都使用 Java 開發(fā)。這既于 Java 跨平臺(tái)的天生優(yōu)勢(shì)有關(guān),也得益于 Sun 多年后開源 Java 平臺(tái)的努力。
微軟未來將會(huì)如何推動(dòng) .NET 平臺(tái)的發(fā)展呢?下節(jié)我們繼續(xù)回顧。
相關(guān)文章:
.NET 的一點(diǎn)歷史往事:和 Java 的恩怨
原文地址:http://weibo.com/ttarticle/p/show?id=2309404102044121223524
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的.NET的一点历史故事:招兵买马和聚义山林的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在 ASP.NET Core 中发送
- 下一篇: 世界上最大的搜索引擎公司 Google