.NET 的一点历史往事:和 Java 的恩怨
在編程語言的發(fā)展歷史上,1995年應該是個特殊的年頭,畢竟這個年頭誕生了兩個后來二十多年影響深遠的語言。1995年5月23日的 SunWorld 大會上面 Sun 公司高調(diào)發(fā)布了自己研發(fā)了近五年的 Java 語言和 JVM 平臺。當年的十二月,網(wǎng)景公司將自己剛剛預覽的 LiveScript 語言改名為 JavaScript。由于微軟正在和網(wǎng)景進行轟轟烈烈的瀏覽器大戰(zhàn),這兩個和萬維網(wǎng)有著緊密聯(lián)系的語言同時得到了微軟的關(guān)注和支持。
JavaScript 相對簡單,所以微軟直接反向工程,做出了自己的 JScript 引擎。但是在 Java 這個方面,它采用了完全不同的方式,1996年3月12日直接從 Sun 購買了 Java 授權(quán),并且在當年10月15號開始提供 Windows 平臺的 Java SDK。1997年1月到3月間,微軟就隆重發(fā)布了自己的 Java 開發(fā)工具,Visual J++ 1.0/1.1,這個過程快得令人驚詫。
微軟在 Visual J++ 方面的投入帶來了立竿見影的效果:
Java 是一個比較完善的面向?qū)ο笳Z言,這是微軟當時的 Visual Basic 和 Visual C++ 兩個開發(fā)工具都不能相提并論的。
微軟為 Visual J++ 做的擴展 WFC 和 J/Direct 使得這個語言和 Windows 平臺 API 之間有了更加緊密的聯(lián)系。
Visual J++ 在 Windows 原生程序和 Office 開發(fā)方面都很便利,能夠和快速開發(fā)工具 Visual Basic 平起平坐。
所以假如 Sun 公司這個時候睜只眼閉只眼,放任自流,那么 Visual J++ 很可能就是今天絕大部分 Windows 開發(fā)者的首選。這樣服務(wù)器端的 J2EE,桌面端的 Visual J++,和移動端的 Android 三駕馬車,是不是就讓 Java 語言一統(tǒng)天下呢?
然而 Sun 這個公司在推廣 Java 方面有點頑固不化的想法,一定要堅持“一次編寫到處運行”,一定要堅持 Java 和 JVM 的純粹,所以對于微軟忽視 JNI 等標準部件、另起 WFC 等非標準部件的小動作,直接予以打擊,開啟了綿延數(shù)年的法律官司。這場官司也使得微軟在1996年10月6日發(fā)布了Visual J++ 6.0之后,這個開發(fā)工具便被打入冷宮。
微軟為什么會全面退出 Java 領(lǐng)域呢?
語言和平臺的規(guī)范由 Sun 主導,Sun 在制定標準和接納新事物方面過于強勢。這個問題在數(shù)年之后再次發(fā)生,就是谷歌拋開 Sun 主導的 J2ME 規(guī)范,做了自己的 Android 平臺。
Java 語言本身依然有它尚不成熟的地方,例如沒有泛型,沒有簡單的事件機制。這時候微軟已經(jīng)從 Borland 挖來了 Anders Hejlsberg 這樣的編輯器大師,完全可以拋開 Java 語言的枝梧來做新的嘗試,也就是C#。
JVM 平臺完全為 Java 一個語言設(shè)計,bytecode 很難成為其他語言的目標。微軟可以設(shè)計一個更加通用的虛擬機平臺,和更好的中間語言。這也就是微軟后來的 CLR 和 MSIL。
這些因素使得微軟最終招兵買馬,開始研發(fā)自己全新的 .NET Framework 平臺和新版開發(fā)工具 Visual Studio,希望在后續(xù)的開發(fā)工具戰(zhàn)役中后來居上。
值得注意的是,畢竟微軟從 Sun 購買了 Java 授權(quán),這個授權(quán)使得微軟得以看到 Java 的源代碼,知曉了 Sun 的相關(guān)專利,所以在發(fā)布新平臺之前,法律方面的問題仍是必須加以解決的。2001年1月,微軟和 Sun 終于初步和解,一個新的時代即將開始。
原文地址:http://weibo.com/ttarticle/p/show?id=2309404102044121223524
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的.NET 的一点历史往事:和 Java 的恩怨的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mssql on linux 安装指导
- 下一篇: 规模化微服务——《微服务设计》读书笔记