閱讀160 返回首頁    go 技術社區[雲棲]


java語言學習001_她的來由(曆史)

   計算機的產生是20世紀最重要的科學技術大事件之一。1946年美國賓夕法尼亞大學經過幾年的艱苦努力,研製出世界上第一台電子計算機--埃尼阿克(ENIAC)。

   計算機的發展史: 
     根據計算機所采用的物理器件不同,可分為四個階段。 
      第一代:電子管計算機,開始於1946年,結構上以CPU為中心,使用機器語言,速度慢、存儲量小,主要用於數值計算。 
      第二代:晶體管計算機,開始於1958年,結構上以存儲器為中心,使用高級語言應用範圍擴大到數據處理和工業控製。 
      第三代:中小規模集成電路計算機,開始於1964年,結構上仍以存儲器為中心,增加了多種外部設備,軟件得到一定發展,計算機處理圖像、文字和資料功能加強。 
      第四代:大規模、超大規模集成電路計算機,開始於1971年,應用更加廣泛,出現了微型計算機。

     計算機硬件發展的同時,軟件始終伴隨其步伐迅勐發展,就計算機的編程語言而言,也劃分為三代。 
       第一代:機器語言。每條指令用二進製編碼,效率很低。 
       第二代:匯編語言。用符號編程,和具體機器指令有關,效率不高。
       第三代:高級語言:如FORTRAN、COBOL、BASIC、PASCAL等都屬於高級語言。
  java發展史: 
    1991年4月,Sun公司的James Gosling領導的Java語言開發小組成立,並開始著力綠色計劃(Green Project)的發展,Green Project是一種分布式係統結構,其目的是使其能夠在各種消費性電子產品上運行,開拓消費類電子產品市場,例如:交互式電視,烤麵包箱等。而Green項目組的成員一開始使用C++語言來完成這個項目,由於Green項目組的成員都具有C++背景,所以他們首先把目光鎖定了C++編譯器,但很快他就感到C++的很多不足,Gosling首先改寫了C++編譯器,需要研發一種新的語言來替代它。當時James Gosling,41歲。於1984年加盟Sun Microsystem公司,以前在一家IBM研究機構工作。他是Sun NeWs窗口係統的總設計師,雖然當時NeWs在技術上非常成功,但在商業上卻完全失敗。 Gosling是一位非常傑出的程序員,GOSMACS也是Gosling寫的,它是第一個用C實現的EMACS的文本編輯器。 在研究開發過程中,Gosling 深刻體會到消費類電子產品和工作站產品的開發哲學之間差異:消費類電子產品要求高可靠、費用低、標準化、 搜索使用簡單,而工作站用戶要求強大的計算能力,而不在此乎價格以及操作的複雜性。消費類電子產品用戶並不關心CPU的型號,也不欣賞專用昂 貴的RISC處理器,他們需要建立在一個標準基礎之上,一係列可選的方案,從8086-80586都可以上。  從C 開始 為了使整個係統與平台無關,Gosling首先從改寫C 編譯器著手。但是Gosling在改寫過程中感到僅C 是無法滿足需要的,於是在 1991年6月份開始準備開發一個新的語言,那麼給它起一個什麼名字呢? Gosling回首向窗外望去,看見一棵老橡樹,於是建一個目錄叫Oak,這 就是Java語言的前身。後來發現Oak已是Sun公司的另一個語言的注冊商標,才改名為Java,即爪哇,太平洋上一個盛產咖啡的島嶼的名字,也寓意能為世界各位帶來一杯熱咖啡。  Gosling在開始寫Java時,並不局限於擴充語言機製本身,更注重於語言所運行軟硬件環境,他要建立一個係統,這個係統運行於一個巨大的、 分布的、異質的網絡環境中,完成各電子設備之間的通訊與協同工作。Gosling在設計中采用了虛機器碼(Virtual Machine Code)方式。即Java 語言編譯後產生的是虛機器碼,虛機器碼運行在一個解釋器上,每一個操作係統均有一個解釋器,這樣一來,Java就成了平台無關語言。這和 Gosling設計的Sun NeWs窗口係統有著相同的技術味道,在NeWs中用戶界麵統一用Postscript描述,不同的顯示器有不同的Postscript解釋器, 這樣便保證了用戶界麵的良好的可移植性。  當Patrick Naughton加入該小組後,整個工作進展神速。Naughton也是Sun公司的技術骨幹,曾經是Open Windows的項目的負責人。在17 個月後,整個係統完成了,這個係統是更注重機頂盒式的操作係統,不過在當時市場不成熟的情況下,他們的項目沒有獲得成功,但Java語言卻得到了Sun總裁McNealy的賞識。接著,Java項目的工作人員開始做應用規劃,著手成立一家公司,從事消費類電子產品的開發,這家公司就是FirstPerson Inc.。公司的第一 個項目就是Time-Warner的投標項目,頂置盒式操作係統和請求式電視技術。雖然FirstPerson Inc.在技術毫不遜色於任何公司,但是由於經營策略上的失誤,敗給了SGI。FirstPerson一直到1994年初仍在堅持開發專用的頂置盒式操作係統,但實踐證明,這個市場尚未成熟。例如:好幾家交互式有線電視網的實驗都以失敗告終。Naughton立即認識到研究方向應該轉移。在Naughton的努力下,研究開始向在線服務CD-ROM和基於網絡的台式機方向轉移。最後FirstPerson 搜索解散,一部分人去了Sun Interactive開發數字視頻數據服務器,而另一部分開始把Java用於基於網絡的台式機係統。

   新事物的產生伴隨著其他事物的支持與排擠,新事物的成功是一個曲折艱難的過程(微軟與Sun的糾紛)。直至1994年下半年,由於Internet的迅勐發展和環球信息網WWW的快速增長,第一個全球信息網絡瀏覽器Mosaic誕生了;此時,工業界對適合在網絡異構環境下使用的語言有一種非常急迫的需求;Games Gosling決定改變綠色計劃的發展方向,他們對Oak進行了小規模的改造,就這樣,Java在1995年的3月23日誕生了!Java的誕生標誌著互聯網時代的開始,它能夠被應用在全球信息網絡的平台上編寫互動性及強的Applet程序,而1995年的Applet無疑能給人們無窮的視覺和腦力震蕩。Gosling意識到WWW需要一個中性的瀏覽器,它不依賴於任何硬件平台和軟件平台。它應是一種實時性較高,可靠安全,有交互功能的瀏覽器。於是Gosling決定用Java開發一個新的Web瀏覽器。  這項工作由Naughton和Jonathan Payne負責,到1994年秋天,完成了WebRunner的開發工作。WebRunner是HotJava的前身,這個原型係統展示 了Java 可能帶來的廣闊市場前景,給SunLab兩位領導: Bert SutherLand和Eric Schmidt留下深刻印象,這一點非常重要,因為這兩個人是Sun 的首席技術官員。特別是Sun的總裁McNealy對Java抱有堅定的信念,為Java進入WWW立下了汗馬功勞。正如McNealy所料,WebRunner改名為 HotJava,並於1995年5月23日發表後,引起了產業界巨大的轟動,Java的地位也隨之而得到肯定。McNealy卓越的洞察力和果斷的決策,挽救了 這項差點鎖進文件櫃的技術。Sun在1995年發布第一個Java版本後,又經過一年的經過試用和改進,Java 1.0版終於在1996年年初正式發表。並於1996年1月宣布成立新的業務部門──JavaSoft部,這個部分主要負責開發、銷售並支持基於Java技術的產品。 

   在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版本。雖然在1998年之前,Java被眾多的軟件企業所采用,但由於當時硬件環境和JVM的技術原因,它的應用卻很有限。當時Java主要隻使用在前端的Applet以及一些移動設備中。然而這並不等於Java的應用隻限於這些領域。在1998年是Java開始迅勐發展的一年。在這一年中Sun發布了JSP/Servlet、EJB規範以及將Java分成了J2EE、J2SE和J2ME。標誌著Java已經吹響了向企業、桌麵和移動3個領域進軍的號角。

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

Java的版本發布曆史:

      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全線采納GNU General Public License Version 2,從而公開了Java的源代碼。 
      2011年7月28日,Oracle正式發布Java 7。
      JDK1.8......

   Java從1995誕生至今,隻有10年左右了,和C,C++這些老大哥比起來年輕了很多,哲學上說任何事物的產生都是必然的,Java也不例外了,Internet的迅勐發展導致了Java的迅勐發展,那句成語是怎麼說來著,水漲船高,Java自然成為網絡世界最受歡迎的語言了,當然Java的發展另一方麵也是長期在微軟壓迫下的軟件世界的反抗了,McNealy,Sun的CEO、總裁兼董事長。他曾經狂傲的說:“摧毀微軟是我們每個人的任務。”這位英勇的矽穀英雄,似乎帶頭起義,試圖組織一個反微軟陣線聯盟,以對抗微軟這股龐大的托拉斯惡勢力。他時常口出驚人之語,在公開場合大肆的批評微軟,並曾經說微軟的.NET是.NOT;

   Java誕生的1995年,正是微軟在軟件產業地位達到巔峰的時代,Windows 95發布時的風光場麵給人們留下的深刻印象至今難忘。盡管如此,作為最卓越的技術領袖,比爾?蓋茨仍然敏銳地注意到Java。當他了解了Java的一些細節之後,給予了這樣的評價:“Java是很長時間以來最優秀的程序設計語言。”基於此,微軟於1996年3月申請並獲得了Java許可證。微軟對於Java的這一熱情態度在當時大大提高了人們對Java的興趣和信心,但也有不少人擔心微軟會依靠自己強大的影響力在標準之外另立標準,從而破壞Java的純潔性。
果然,從1997年發布Visual J++的第一個版本開始,微軟就開始在Java中摻入自己的私有擴展。這毫無疑問引起Sun的高度重視。1997年10月,Sun向美國加州地方法院起訴微軟公司違反兩公司就微軟使用Java技術所簽定的合同,指控微軟公司在自己的Java產品中做了“不恰當的修改”,違反了合同中承諾向用戶提供Java兼容產品的條款。這一官司曠日持久,直到2001年1月雙方達成和解,微軟將繼續提供采用Sun開發的Java技術的現有產品(包括測試版)。不過,Sun有限製地僅對包括Java 1.1.4的微軟產品提供許可。到了2001年7月,微軟公布新版的Windows XP將不再支持Sun的JVM,並且推出了.NET平台與Java分庭抗禮。
現在回過頭去看,當時的這一場官司對Java世界產生了深遠的影響。如果沒有這一場官司,也許很多Java程序員都在使用Visual J++,基於WFC開發Windows客戶端程序,同時不得不麵對被兩個不同的事實標準所分裂的Java世界,2003年4月2 日,Sun與微軟達成16億美元的法律和解。

根據兩家公司達成的版權協議,雙方會為采用對方的技術而支付專利費用,微軟向Sun提前支付3.5億美元使用費,Sun則承諾,如果Sun集成微軟的某些技術,也會向微軟付款。
毫無疑問,“私下了結”的方式對雙方而言都是最好的結果。就在協議簽署的當天,在美國舊金山由Sun和微軟為“拋棄十年恩怨、攜手合作“舉行的新聞發布會上,盡管比爾.蓋茨沒有到場,但這並沒有防礙現場看起來異常輕鬆的氣氛。麥克尼利和鮑爾默各自穿了一件密歇根州底特律“Red Wings”曲棍球隊的運動服,並談及了一起在哈佛大學讀書的經曆,麥克尼利還說:“當時我們兩人是非常要好的朋友,當然我們也有吵架的時候。”人與人當然可能成為終生的知己,但是公司與公司之間有的隻能是利益上的分分合合。

    2009~2010年,最終由於sun公司自己的原因,根據協議,甲骨文將以每股9.5美元的價格收購Sun,交易總價值約為74億美元,被oracle公司收購。但java語言作為開源高級語言,被世界java程序員不斷的發展,一個語言的出生到結束,應該為社會,做了很大貢獻,我們值得尊敬。

    本文來學習於網絡(百度和csdn),謝謝作者,作為後者作為整理,謝謝!

最後更新:2017-04-03 05:39:47

  上一篇:go C# Excel數據驗重及Table數據驗重
  下一篇:go C# Excel數據驗重及Table數據驗重