驅使計算機語言革新的因素有兩個:程序設計技術的改進和計算環境的改變。Java也不例外。在大量繼承C和C++的基礎之上,Java還增長了反應當前程序設計技術狀態的功能與精華。針對在線環境的蓬勃發展(Internet),Java爲高度的分佈式體系結構提供了流水線程序設計的功能。程序員
Java是1991年由Sun Microsystems(曾經2000億美圓全球市值第一,google市值第二可是隻有300多億美圓,而同期的蘋果公司市值只有不到100億美圓。當今蘋果公司萬億市值也是全球第一惟一萬億市值的上市公司)公司的James Gosling(你們更喜歡叫他高司令)、Patrick Naughton、Chris Warth、Ed Frank和Mike Sheridan共同構想的成果。這門語言最初名爲「Oak」,於1995年改名爲「Java」,多少有些讓人吃驚的是,設計Java的最初動力並非源於Internet,而是爲了開發一種獨立於平臺的語言,使其可以用於建立內嵌於不一樣家電設備(如烤箱、微波爐和遙控器等)的軟件。雖然不一樣類型的CPU均可以用做控制器,可是麻煩在於多數的計算機語言都是針對特定的目標而設計的,例如C++。分佈式
雖然任何類型的CPU或許都能編譯C++程序,然而這須要CPU具備完整的C++編譯器。而開發編譯器的成本很高,而且很耗時。爲了找到更好的解決方法,Gosling和其餘人嘗試開發一種可移植的跨平臺語言,使該語言生成的代碼能夠在不一樣環境下的不一樣CPU上運行。這一努力最終致使Java的誕生。ide
大概就在即將設計出Java細節的時候,另外一個對Java的成型有更重要影響的因素出現了。第二個動力就是World Wide Web。若是Web沒有在Java即將成型的時候問世,那麼Java可能會成爲對消費類電子產品的程序設計而言有用但卻晦澀的語言。然而隨着Web的出現,以及Web對可移植程序的需求,Java被推倒了計算機語言設計的前臺。google
大多數程序員在工做不久就瞭解到可移植程序既使人期待,也讓人難以捉摸。雖然在有了程序設計學科時就有了對建立高效可移植(平臺獨立)程序的須要,但仍是讓位於其它一些更爲迫切的問題。Internet和Web的出現使原有的可移植性問題從新擺上了桌面。由於,Internet畢竟是由許多類型的計算機、操做系統和CPU組成的多樣化的分佈式空間。操作系統
曾經惱人心緒,卻沒那麼重要的問題也就成爲了亟待解決的問題。到了1993年,Java設計團隊的成員發現,在建立嵌入式控制器時常常遇到的可移植性問題一樣也出如今建立的Internet代碼中。瞭解到這一點後,Java的重點從消費類電子產品轉移到了Internet程序設計。所以,儘管開發獨立於體系結構的程序設計語言的初衷提供了起初的星星之火,然而倒是Internet最終促成了Java的燎原之勢。線程