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