java發展歷史
一、 JDK前傳
在這個世界上,熟悉Java歷史的人非常多,如果要問一個人Java是從哪年誕生的,也許大多數人都會回答是1995年(這個非常好記,因為微軟的Windows95也是在這一年釋出的)。但事實上Java早在上個世紀90年代初就開始醞釀了。
1991年4月,Sun公司的JamesGosling領導的綠色計劃(GreenProject)開始著力發展一種分散式系統結構,使其能夠在各種消費性電子產品上執行。而Green專案組的成員一開始使用C++語言來完成這個專案,由於Green專案組的成員都具有C++背景,所以他們首先把目光鎖定了C++編譯器,Gosling首先改寫了C++編譯器,但很快他就感到C++的很多不足,需要研發一種新的語言Java來替代它,一杯飄香的咖啡成為了它的標誌。
在17 個月後,整個系統完成了,這個系統是更注重機頂盒式的作業系統,不過在當時市場不成熟的情況下,他們的專案沒有獲得成功,但Java語言卻得到了Sun總裁McNealy的賞識。
直至 1994年下半年,由於Internet的迅猛發展和環球資訊網 WWW的快速增長,第一個全球資訊網路瀏覽器Mosaic誕生了;此時,工業界對適合在網路異構環境下使用的語言有一種非常急迫的需求;Games Gosling決定改變綠色計劃的發展方向,他們對Oak進行了小規模的改造,就這樣,Java在1995年的3月23日誕生了!Java的誕生標誌著網際網路時代的開始,它能夠被應用在全球資訊網路的平臺上編寫互動性及強的Applet程式,而1995年的Applet無疑能給人們無窮的視覺和腦力震盪。我們姑且將Java的這段歷史稱為Java前傳吧。
其實Java的誕生頗有那麼一股“有心栽花花不開,無心插柳柳成陰”的味道。就象當年Unix和它的前身MULTICS系統一樣。
二、JDK的幼年時期(1995~1998)
Sun繼Green專案後又經過了幾年的研究,終於在1995年5月23日在SunWorld'95上正式釋出Java和HotJava瀏覽器。在同年,有很多公司先後獲得了Java許可證,如Netscape在1995年8月,Oracle在1995年10月分別獲得了Java許可證。Sun在 1995年釋出第一個Java版本後,於1996年1月宣佈成立新的業務部門──JavaSoft部,這個部分主要負責開發、銷售並支援基於Java技術的產品,由AlanBaratz先生任總裁。
在1995年Sun雖然推出了Java,但這只是一種語言,而要想開發複雜的應用程式,必須要有一個的強大的開發庫支援還行。因此,Sun在1996 年1月23日釋出了JDK1.0。這個版本包括了兩部分:執行環境(即JRE)和開發環境(即JDK)。在執行環境中包括了核心API、整合API,使用者介面API,釋出技術,Java虛擬機器(JVM)五個部分。而開發環境還包括了編譯Java程式的編譯器(即javac)。在JDK1.0時代,JDK除了AWT(一種用於開發圖形使用者介面的API)外,其它的庫並不完整。
Sun在推出JDK1.0後,緊跟著,Sun在1997年2月18日釋出了JDK1.1。JDK1.1相對於JDK1.0最大的改進就是為JVM增加了JIT(即時編譯)編譯器。JIT和傳統的編譯器不同,傳統的編譯器是編譯一條,執行完後再將其扔掉,而JIT會將經常用到的指令儲存在內容中,在下次呼叫時就不需要再編譯了。這樣JDK在效率上有了非常大的提升。
Sun在推出JDK1.1後,接著又推出了數個JDK1.x版本。自從Sun推出Java後,JDK的下載量不斷彪升,在1997年,JDK的下載量突破了220,000,而在1998年,JDK的下載量已經超過了2,000,000。
雖然在1998年之前,Java被眾多的軟體企業所採用,但由於當時硬體環境和JVM的技術原因,它的應用卻很有限。當時Java主要只使用在前端的 Applet以及一些移動裝置中。然而這並不等於Java的應用只限於這些領域。在1998年是Java開始迅猛發展的一年。在這一年中Sun釋出了JSP/Servlet、EJB規範以及將Java分成了J2EE、J2SE和J2ME。標誌著Java已經吹響了向企業、桌面和移動3個領域進軍的號角。
三、JDK的青少年時期(1998~2004)
到1998年,Java已經走過了3個年頭。從JDK1.0到JDK1.1.8。JDK1.x經過了9個小版本的發展,已經初具規模。至此,它已經走出了搖籃,可以去獨闖世界了。
在1998年12月4日。Sun釋出了Java的歷史上最重要的一個JDK版本:JDK1.2。這個版本標誌著Java已經進入Java2時代。這個時期也是Java飛速發展的時期。
在Java2時代Sun對Java進行了很多革命性的變化,而這些革命性的變化一直沿用到現在,對Java的發展形成了深遠的影響。
JDK1.2自從被分成了J2EE、J2SE和J2ME三大塊,得到了市場的強烈反響。不僅如此,JDK1.2還對它的API分成了三大類。
核心API
由Sun公司制定的基本的API,所有的Java平臺都應該提供。這就是我們平常所說的Java核心類庫。
可選API
這是Sun為JDK提供的擴充API,這些API因平臺的不同而不同。
特殊API
用於滿足特殊要求的API。如用於JCA和JCE的第三方加密類庫。
Java2除了上述的一些改進外,還增加了很多新的特性。其中最吸引眼球的當屬Swing了。Swing是Java的另一個圖形庫。它不但有各式各樣先進的元件,而且連元件風格都可抽換。在Swing出現後,很快就搶了AWT的風頭。但Swing並不是為取代AWT而存在的,事實上Swing是建立在 AWT之上的。就象JFace是建立在SWT之上一樣。另外Java2還在多執行緒、集合類和非同步類上做了大量的改進。
從JDK1.2開始,Sun以平均2年一個版本的速度推出新的JDK。在2000年5月8日。Sun對JDK1.2進行了重大升級。推出了JDK1.3。
Sun在JDK1.3中同樣進行了大量的改進,主要表現在一些類庫上(如數學運算、新的TimerAPI等)、在JNDI介面方面增加了一些DNS的支援、增加了JNI的支援,這使得Java可以訪問本地資源了、支援XML以及使用新的Hotspot 虛擬機器代替了傳統的虛擬機器。
在JDK1.3時代,相應的應用程式伺服器也得到了廣泛的應用,如第一個穩定版本Tomcat3.x在這一時期得到了廣泛的應用,WebLogic等商業應用伺服器也漸漸被接受。
時間如水、生命如歌。轉眼到了2002年。Sun在這一年的2月13日釋出了JDK歷史上最為成熟的版本:JDK1.4。在進入21世紀以來,曾經在.NET平臺和Java平臺之間發生了一次聲勢浩大的孰優孰劣的論戰,Java的主要問題就是效能。
因此,這次Sun將主要精力放到了Java的效能上。在JDK1.4中,Sun放言要對Hotspot虛擬機器的鎖機制進行了改進,使JDK1.4的效能有了質的飛躍。同時由於Compaq、Fujitsu、 SAS、 Symbian、 IBM等公司的參與,使JDK1.4成為發展最快的一個JDK版本。到JDK1.4為止,我們已經可以使用Java實現大多數的應用了。
四、JDK的壯年時期(2004~至今)
雖然從JDK1.4開始,Java的效能有了顯著的提高,但Java又面臨著另一個問題,那就是複雜。
雖然Java是純面嚮物件語言,但它對一些高階的語言特性(如泛型、增強的for語句)並不支援。而且和Java相關的技術,如EJB2.x,也由於它們的複雜而很少有人問津。也許是Sun意識到了這一點。因此,在2004年10月,Sun釋出了我們期待已久的版本:JDK1.5,同時,Sun將 JDK1.5改名為J2SE5.0。和JDK1.4不同,JDK1.4的主題是效能,而J2SE5.0的主題是易用。Sun之所以將版本號1.5改為 5.0,就是預示著J2SE5.0較以前的J2SE版本有著很大的改過。
Sun不僅為J2SE5.0增加了諸如泛型、增強的for語句、可變數目引數、註釋(Annotations)、自動拆箱(unboxing)和裝箱等功能,同時,也更新的企業級規範,如通過註釋等新特性改善了EJB的複雜性,並推出了EJB3.0規範。同時又針對JSP的前端介面設計而推出了 JSF。這個JSF類似於ASP.NET的服務端控制元件。通過它可以很快地建立起復雜的JSP介面。
到今年年底Sun也再接再厲地推出了J2SE6.0的測試版,預計在2007年初將推出它的正式版。
正象J2SE6.0的開發代號“野馬(Mustang)”一樣,我們已經隱約聽到了野馬的嘶鳴。據Sun發言人透露,J2SE6.0不僅在效能、易用性方面得到了前所未有的提高,而且還提供瞭如指令碼、全新的API(Swing和AWT等API已經被更新)的支援。而且J2SE6.0是專為Vista而設計的,它在Vista上將會擁有更好的效能。在推出J2SE6.0的同時,J2SE7.0專案也已經啟動。
在Java發展的十幾年的時間裡,經歷了無數的風風雨雨。現在Java已經成為一種相當成熟的語言了。在這10年的發展中,Java平臺吸引了數百萬的開發者,在網路計算遍及全球的今天,更是有20億臺裝置使用了Java技術。作為Java技術的基礎,J2SE功不可沒,讓我們期望J2SE伴隨 Java平臺一路走好!
五、JDK各版的釋出時間表
到現在為止我們已經重新走了一遍Java的歷史軌跡。在這一部分,為了有一個總體的認識,讓我們來看一看Java發展的時間表。(版本號名稱中文名釋出日期)
JDK 1.1.4
Sparkler
寶石
1997-09-12
JDK 1.1.5
Pumpkin
南瓜
1997-12-13
JDK 1.1.6
Abigail
阿比蓋爾--女子名
1998-04-24
JDK 1.1.7
Brutus
布魯圖--古羅馬政治家和將軍
1998-09-28
JDK 1.1.8
Chelsea
切爾西--城市名
1999-04-08
J2SE 1.2
Playground
運動場
1998-12-04
J2SE 1.2.1
none
無
1999-03-30
J2SE 1.2.2
Cricket
蟋蟀
1999-07-08
J2SE 1.3
Kestrel
美洲紅隼
2000-05-08
J2SE 1.3.1
Ladybird
瓢蟲
2001-05-17
J2SE 1.4.0
Merlin
灰背隼
2002-02-13
J2SE 1.4.1
grasshopper
蚱蜢
2002-09-16
J2SE 1.4.2
Mantis
螳螂
2003-06-26
J2SE 5.0 (1.5.0)
Tiger
老虎
2004-10
J2SE 6.0 (Beta)
Mustang
野馬
2006-04
從這個表中我們可以看出一個非常有意思的現象,就是JDK的每一個版本號都使用一個開發代號表示(就是表中的中文名)。而且從JDK1.2.2開始, 主要版本(如1.3,1.4,5.0)都是以鳥類或哺乳動物來命名的. 而它們的bug修正版本(如1.2.2,1.3.1,1.4.2)都是以昆蟲命名的。
六、Java的未來10年
在2005年的Java One開發者大會上,James Gosling作了題為“Java技術下一個10年貢獻”的演講。談到未來Java的發展時,JamesGosling提到了有關Java軟體的效能和複雜性問題。鑑於許多機器執行著大量程式的實際情況,人們對執行緒模型投以越來越多的關注。
隨著人們對桌面應用的要求越來越高,系統將變得越來越複雜。他指出: “從工程的角度來看,未來10年內我們所面臨的最大挑戰就是複雜性問題,” James Gosling說, “目前,我們開展了許多工作以解決應用程式設計介面、語言以及工具中所涉及的複雜性問題。在工具和使用者介面(UI)中都會遇到複雜性問題,Java技術設計人員必須處理好大小尺寸調整和國際化的問題。”
在這次大會上,JamesGosling還同Java技術先驅,現任Kleiner, Perkins Caulfieldand Byers合夥人的Bill Joy先生,Sun公司首席科學家John Gage先生,未來研究所主任Paul Saffo先生,Sun傑出工程師GuySteele先生以及AppliedMindes公司主席及技術長DannyHillis先生等一起探討了討論Java語言的過去和未來發展情況。
他們認為,Java技術提高了計算的“流動性”,就如同貨幣的發明提高了商品的流動性一樣。無所不在的網路豐富了每個人的資訊,就如同可以兌換的貨幣產生了財富一樣。由於從前的網路是很慢的,所以計算被束縛在特定的計算機上,而這種情況將一去不復返了。
目前,全球Java開發人員已經超過450萬,而與之相對應的是Java社群充滿活力和創新精神,這正是Java下一個10年更加繁榮的保障。為了保持Java的增長和推進Java社群的參與, Sun在Java One開發者大會上宣佈開放Java核心原始碼,以鼓勵更多的人蔘與到社團活動中來,這是Sun為推進社團發展和維護Java技術相容性而邁出的重要一步。
Sun公司總裁兼營運長Jonathan Schwartz先生指出,來自Java社團和IBM等全球技術合作夥伴兩方面的支援,乃是Java技術在創新和社會進步上繼續發揮重要作用的強有力的標誌。技術開放和社團建設降低了技術應用的壁壘,其結果是為參與和增長創造了更多的商機,這就形成了價值上千億美元的Java產業。
有很多人認為Java開源後,在眾多開發人員的參與之下,Java會變得更加強大。隨著Java和IT業界的關係變得更加緊密,Sun公司也將更容易賣出自己相容Java良好的WEB伺服器和作業系統。這個舉動將會給軟體開發群體帶來新的活力,改善Sun公司的公眾形象,並同時證明Sun可以成為一個開源社會的“良民”。
隨著Java的開源,Java的未來似乎變得更加明朗。在未來,Java的應用範圍有可能變得更廣。Sun董事長麥克里尼在2006年的 JavaOne會議上說,“全球有3/4的人還不能接入Internet,這對Java技術夥伴來說是一個巨大的經濟機會。瘦客戶機、微小的感測器以及其它Java驅動的小裝置,可以幫助我們改善人們的生活。他希望Java社群通過他們的工作能夠彌合數字鴻溝”。
Sun認為,數字媒體將是Java的下一個重點市場,同時,教育和健康將是未來Java發展過程中的兩大重點應用領域。但願Java的未來真能象Sun宣稱的那樣,成為我們未來生活的一部分。
文章分類:Java程式設計
Java發展的時間表。 (版本號名稱 中文名 釋出日期)
JDK 1.1.4Sparkler 寶石 1997-09-12
JDK 1.1.5Pumpkin 南瓜 1997-12-13
JDK 1.1.6Abigail 阿比蓋爾--女子名 1998-04-24
JDK 1.1.7Brutus 布魯圖--古羅馬政治家和將軍1998-09-28
JDK 1.1.8Chelsea 切爾西--城市名 1999-04-08
J2SE 1.2Playground 運動場 1998-12-04
J2SE 1.2.1none 無 1999-03-30
J2SE 1.2.2Cricket 蟋蟀 1999-07-08
J2SE 1.3Kestrel 美洲紅隼 2000-05-08
J2SE 1.3.1Ladybird 瓢蟲 2001-05-17
J2SE 1.4.0Merlin 灰背隼 2002-02-13
J2SE 1.4.1grasshopper 蚱蜢 2002-09-16
J2SE 1.4.2Mantis 螳螂 2003-06-26
J2SE 5.0(1.5.0) Tiger 老虎 2004-10
J2SE 6.0(Beta) Mustang 野馬 2006-04
從這個表中我們可以看出一個非常有意思的現象,就是JDK的每一個版本號都使用一個開發代號表示(就是表中的中文名)。而且從JDK1.2.2開始,主要版本(如1.3,1.4,5.0)都是以鳥類或哺乳動物來命名的. 而它們的bug修正版本(如1.2.2,1.3.1,1.4.2)都是以昆蟲命名的。
1995年5月23日,Java語言誕生
1996年1月,第一個JDK-JDK1.0誕生
1996年4月,10個最主要的作業系統供應商申明將在其產品中嵌入JAVA技術
1996年9月,約8.3萬個網頁應用了JAVA技術來製作
1997年2月18日,JDK1.1釋出
1997年4月2日,JavaOne會議召開,參與者逾一萬人,創當時全球同類會議規模之紀錄
1997年9月,JavaDeveloperConnection社群成員超過十萬
1998年2月,JDK1.1被下載超過2,000,000次
1998年12月8日,JAVA2企業平臺J2EE釋出
1999年6月,SUN公司釋出Java的三個版本:標準版、企業版和微型版(J2SE、J2EE、J2ME)
2000年5月8日,JDK1.3釋出
2000年5月29日,JDK1.4釋出
2001年6月5日,NOKIA宣佈,到2003年將出售1億部支援Java的手機
2001年9月24日,J2EE1.3釋出
2002年2月26日,J2SE1.4釋出,自此Java的計算能力有了大幅提升。
2004年9月30日18:00PM,J2SE1.5釋出,是Java語言的發展史上的又一里程碑事件。為了表示這個版本的重要性,J2SE1.5更名為J2SE5.0
2005年6月,JavaOne大會召開,SUN公司公開Java SE 6。此時,Java的各種版本已經更名以取消其中的數字“2”:J2EE更名為Java EE,J2SE更名為Java SE,J2ME更名為Java ME。
2006年11月13日,SUN公司宣佈Java全線採納GNUGeneral Public License Version 2,從而公開了Java的原始碼。
相關文章
- Linux發展歷史Linux
- iOS歷史(iOS系統發展歷史)iOS
- 人工智慧發展歷史人工智慧
- PDF規範發展歷史
- 深度學習發展歷史深度學習
- MySQL版本發展歷史介紹MySql
- 人工智慧發展的歷史人工智慧
- HarmonyOS系統的發展歷史
- 資料中心的發展歷史
- JAVA日誌發展史Java
- 3D建模的歷史發展3D
- Java 的發展歷程Java
- HTTP協議基礎及發展歷史HTTP協議
- JS 非同步發展流程 —— 非同步歷史JS非同步
- 單機遊戲的發展歷史(二)遊戲
- js非同步發展歷史與Promise原理分析JS非同步Promise
- 10.10硬碟,作業系統的歷史發展硬碟作業系統
- 【Java雜記】日誌:Java日誌體系,從應用場景到發展歷史Java
- 「MoreThanJava」Java發展史及起航新世界Java
- Java日誌框架演化歷史Java框架
- 一文讀懂資料平臺的發展歷史
- 一張圖看懂影象識別演算法發展歷史演算法
- 俄羅斯方塊歷史發展與變革創新
- Linux系統的發展歷史和學習前景介紹Linux
- Linux是什麼作業系統?發展歷史介紹Linux作業系統
- Kubernetes 發行版本歷史
- 前端部署發展史前端
- ebpf發展簡史eBPF
- 以太坊學習筆記————4、以太坊發展歷史回顧筆記
- 一部全網最全的 JDK 發展歷史軌跡圖JDK
- 有關人工智慧發展歷史及未來前景的論文人工智慧
- 關於社交電商系統的起源、發展歷史和型別型別
- 深度學習發展史深度學習
- 區塊鏈發展史區塊鏈
- HTTP - 發展歷程HTTP
- 站在歷史的長河上,分析人工智慧的未來的發展方向人工智慧
- 網路同步在遊戲歷史中的發展變化(五)—— 物理同步遊戲
- 自動駕駛汽車的發展經歷了哪些歷史性的變革?(附報告)自動駕駛
- 把握前端開發歷史脈絡前端