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