Java 25 岁生日快乐!
整理 | 屠敏
頭圖 | CSDN 下載自視覺中國(guó)
出品 | CSDN(ID:CSDNnews)
互聯(lián)網(wǎng)是有記憶的,而 Java 作為一種編程語言,在支撐這份記憶的過程中,立下了汗馬之勞。
5 月 23 日,在這一天,Java 迎來了屬于自己的 25 歲生日。
1. Java?的過去
25 年前的今天,Java 生逢其時(shí)。
在計(jì)算機(jī)革命開始之際,硬件資源的逐漸富余為 IT 工程師們提供了各個(gè)層面充足的創(chuàng)新與試錯(cuò)機(jī)會(huì),當(dāng)然這其中也包括了開發(fā)工具層。
無論是前期美國(guó)計(jì)算機(jī)科學(xué)學(xué)者與軟件工程師 Ken Thompson 開發(fā)的 B 語言,還是后來 Dennis Ritchie 創(chuàng)造的 C 語言、繼而 C 語言衍生出了 C++ 等等,當(dāng)時(shí)的開發(fā)工具領(lǐng)域早已呈現(xiàn)出百花齊放百家爭(zhēng)鳴的盛況。
不過,在彼時(shí)單片式計(jì)算機(jī)系統(tǒng)以其“低廉的價(jià)格、強(qiáng)大的功能”風(fēng)靡互聯(lián)網(wǎng)圈時(shí),最被工程師們看好的工具備選 C++,因其過于復(fù)雜的特性,以及不具備跨平臺(tái)等功能,讓想要在嵌入式應(yīng)用領(lǐng)域搶占先機(jī)的企業(yè)與工程師們頭疼不已。
正所謂這個(gè)世界上「沒有完美的軟件,也沒有完美的開發(fā)人員」,既然如此,“改”才是王道。因此,在一家名為 Sun 公司中,由一位 James Gosling 的工程師帶領(lǐng)其團(tuán)隊(duì)基于 C++,大刀闊斧地進(jìn)行了改造,他們?nèi)サ袅?C++ 一些不實(shí)用的功能與特性,又結(jié)合了嵌入式系統(tǒng)的實(shí)時(shí)性要求,開發(fā)了一款面向?qū)ο蟮?Oak 語言。
經(jīng)過近三年漫長(zhǎng)迭代與輾轉(zhuǎn),在互聯(lián)網(wǎng)崛起之際,Oak 在變身并更名為 Java 后,因其面向?qū)ο笠约?#34;寫入一次,隨處運(yùn)行"的可移植性而聲名大噪,Sun 公司也于 1995 年 5 月 23 日這一天在 Sun World 會(huì)議上正式向外界揭開了 Java 的面紗?。
自此后的多年間,Java 也按照自己的技術(shù)軌跡穩(wěn)步發(fā)展:
1996 年,JDK 1.0 發(fā)布,標(biāo)志著 Java 成為一種獨(dú)立的開發(fā)工具;
1997?年,JavaOne?會(huì)議召開,參與者逾一萬人,創(chuàng)當(dāng)時(shí)全球同類會(huì)議規(guī)模之紀(jì)錄;
1998 年,Java 2 企業(yè)平臺(tái) J2EE 發(fā)布;
1999 年,Sun 公司發(fā)布 Java 三大版本:標(biāo)準(zhǔn)版(J2SE)、企業(yè)版(J2EE)和微型版(J2ME);
2000 年,JDK 1.3 與 JDK 1.4 發(fā)布;
2001 年,J2EE 1.3 發(fā)布;
2002 年,J2SE 1.4 發(fā)布,自此 Java 的計(jì)算能力有了大幅提升;
2003 年,J2SEE 1.4.2 發(fā)布;
2004 年,J2SE 1.5 發(fā)布,彼時(shí) Sun 公司為了凸顯這個(gè)版本的重要性,將 J2SE 1.5 更名為 J2SE 5.0;
2005 年,Sun 公司公開 Java SE 6;
2006 年,Sun 公司宣布 Java 全線采納 GNU General Public License Version 2,從而公開了 Java 的源代碼;
2007 年,Sun Microsystems 公司放棄了對(duì) Java??平臺(tái)的統(tǒng)馭,將權(quán)力交給了 Java 開發(fā)人員社區(qū);
2008 年,JavaFX1.0 發(fā)布;
2009 年,甲骨文宣布 74 億美元收購(gòu) Sun 公司,。
2010 年,JavaEE 6 發(fā)布;
2011 年,Java 7 發(fā)布;
2014 年,Java 8 正式發(fā)布;
2017 年,甲骨文宣布 Java 發(fā)布頻率改為每六個(gè)月一次;
2018 年,甲骨文宣布自 2019 年 1 月起,Java SE 8 公開更新將不向沒有商用許可證的業(yè)務(wù)、商用或生產(chǎn)用途提供。
至今,Java 已滲透到了企業(yè)級(jí)應(yīng)用、游戲、嵌入式設(shè)備、桌面級(jí)應(yīng)用等各個(gè)場(chǎng)景中。
2. 歷經(jīng)波折
最初得益于 Java 虛擬機(jī)支持多個(gè)硬件平臺(tái)和操作系統(tǒng),Java 小程序可以從網(wǎng)頁運(yùn)行。當(dāng)時(shí)如 IBM、Apple、Adobe、HP、Oracle、Netscape 和微軟等各大科技巨頭公司都紛紛停止了自己的相關(guān)開發(fā)項(xiàng)目,競(jìng)相購(gòu)買了 Java 使用許可證,并為自己的產(chǎn)品開發(fā)了相應(yīng)的 Java 平臺(tái)。
不過也正因此,在過往 25 年間,圍繞 Java 技術(shù)核心,有兩大讓業(yè)界頗為關(guān)注的訴訟案。
第一起是 Sun 和微軟之間關(guān)于微軟在 Windows 中使用 Java 的問題。
1997 年,Sun 公司一紙?jiān)V訟書將微軟起訴至美國(guó)加州地方法院,原因是 Sun 公司認(rèn)為,在微軟使用 Java 技術(shù)簽訂的合同時(shí),微軟在自己的 Java 產(chǎn)品中做了“不恰當(dāng)修改”違反了合同中承諾向用戶提供 Java 兼容產(chǎn)品的條款。
經(jīng)過漫長(zhǎng)的調(diào)解,最終這一場(chǎng)官司于 2001?年,微軟同意向 Sun 公司支付 2000 萬美元和解才結(jié)束。自此,雖然微軟也可以繼續(xù)采用 Sun 公司開發(fā)的 Java 技術(shù)的現(xiàn)有產(chǎn)品,不過,將技術(shù)握在自己手中畢竟更為自由,于是 2001 年 7 月,微軟推出了 .NET 平臺(tái),希望與 Java 有一戰(zhàn)。
另外,還一起關(guān)于 Java 的知識(shí)產(chǎn)權(quán)糾紛,更為長(zhǎng)久,至今仍未有定論,它就是后來收購(gòu)了 Sun?公司的甲骨文和谷歌之間的?Java?知識(shí)產(chǎn)品糾紛案。
2009 年,甲骨文指控谷歌在 Android 開發(fā)中濫用了 Java API 版權(quán),并直接復(fù)制了 11330 多行代碼,侵犯了自己的知識(shí)產(chǎn)權(quán)。
經(jīng)過近十年的激烈交鋒,2018 年,聯(lián)邦巡回上訴法院認(rèn)定安卓侵權(quán),Google 敗訴并要進(jìn)行 88 億美金賠償。
2019 年,Google 上訴,要求美國(guó)最高法院進(jìn)行最終裁決,2019 年 11 月最高法院同意審理。而日前,Google、Oracle 均向美國(guó)最高法院提交了自己的陳述,不過因?yàn)榻衲暌詠砣蚴芤咔榈挠绊?#xff0c;該起案件最終定論如何尚未可知。
不過,現(xiàn)實(shí)來看,無論最終判罰的結(jié)果如何,終將在一定程度上影響移動(dòng)開發(fā)中使用 Java,甚至還會(huì)影響所有軟件開發(fā)。
3. Java?當(dāng)下
刨除外在的商業(yè)利益關(guān)系,回歸到 Java?編程語言本身,在?25 年后的今天,憑借著面向?qū)ο蟆⒖缙脚_(tái)、可移植、高性能等優(yōu)勢(shì),Java 橫掃各大編程語言榜單,期間雖經(jīng)歷了?Kotlin、Python、Go?等后起之秀揚(yáng)言“取而代之”的挑戰(zhàn),卻依舊被業(yè)界稱之為編程語言界的常青藤,也成為企業(yè)應(yīng)用開發(fā)主流的存在。
根據(jù)甲骨文的數(shù)據(jù),2017 年全球估計(jì)有 900?萬 Java 開發(fā)人員。與此同時(shí),Java 也催生了一個(gè)巨大的工具生態(tài)系統(tǒng),從 Spring 框架到應(yīng)用程序服務(wù)器,從 IBM、紅帽和甲骨文等公司到 JavaFX 富媒體平臺(tái),Java 身影無處不在。
在國(guó)內(nèi)環(huán)境中,也有大量的企業(yè)采用 Java,以阿里巴巴為例,其不僅在生態(tài)上擁有 14000?開發(fā)者、90000?應(yīng)用實(shí)例、內(nèi)部有 1000000 JVM 實(shí)例等,在 Spring、Spark、HBASE 等技術(shù)棧中也均有 Java 應(yīng)用。
4. Java 的未來
雖然目前 Java 的更新速度無人能及,開發(fā)者也叫苦不堪,直言“學(xué)不動(dòng)”。不過 Java 基于自身的痛點(diǎn)仍在不斷改進(jìn)中,
在兩個(gè)月前發(fā)布的 Java 14 中,提供了16個(gè)主要的改進(jìn)和變更,包括兩個(gè)孵化器模塊、三個(gè)預(yù)覽特性、兩個(gè)棄用的功能以及兩個(gè)刪除的功能。
近日,Oracle Java 平臺(tái)組首席架構(gòu)師 Mark Reinhold 在 OpenJDK 社區(qū)中提出了一項(xiàng)建議,將解決長(zhǎng)期 Java 的難題,包括啟動(dòng)時(shí)間慢、性能達(dá)到峰值的時(shí)間緩慢以及占用空間大等問題。
歷經(jīng)風(fēng)霜,我們不能保證多年后,Java 仍是主流,但在當(dāng)下,Java 仍是編程之王,Java,25 歲,生日快樂!
往期推薦 關(guān)于"如何破壞單例"我說了好幾種方式,面試官卻說:我其實(shí)隨便問問,沒想到你真會(huì)2年6個(gè)月11天,外包到阿里的修仙之路都說變量有七八種,到底誰是 Java 的親兒子?
直面Java第318期:什么是STOP THE WORLD機(jī)制?
深入并發(fā)第013期:拓展synchronized——鎖優(yōu)化
如果你喜歡本文,
請(qǐng)長(zhǎng)按二維碼,關(guān)注?Hollis.
轉(zhuǎn)發(fā)至朋友圈,是對(duì)我最大的支持。
點(diǎn)個(gè)?在看?
喜歡是一種感覺
在看是一種支持
↘↘↘
總結(jié)
以上是生活随笔為你收集整理的Java 25 岁生日快乐!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 金融资讯数据服务平台建设实践
- 下一篇: 2019 编程语言终极排行榜:Java