Java的產生(轉)
Java的產生(轉)[@more@]Java是由James Gosling,Patrick Naughton,Chris Warth,Ed Frank和Mike Sheridan於1991年在Sun Microsystems公司設計出來的。開發第一個版本花了18個月。該語言開始名叫“Oak”,於1995年更名為“Java”。從1992 的秋天Oak問世到1995的春天公開發布Java
語言,許多人對Java的設計和改進做出了貢獻。Bill Joy,Arthur van Hoff,Jonathan Payne,Frank Yellin和Tim Lindholm是主要的貢獻者,正是他們的貢獻使最初原型得以成熟。
說起來多少有些令人吃驚,Java的最初推動力並不是因特網!而是源於對獨立於平臺(也就是體系結構中立)語言的需要,這種語言可建立能夠嵌入微波爐、遙控器等各種家用電器裝置的軟體。用作控制器的CPU晶片是多種多樣的,但C和C++以及其他絕大多數語言的缺點是隻能對特定目標進行編譯。儘管為任何型別的CPU晶片編譯C++程式是可能的,但這樣做需要一個完整的以該CPU為目標的C++編譯器,而建立編譯器是一項既耗資巨大又耗時較長的工作。因此需要一種簡單且經濟的解決方案。為了找到這樣一種方案,Gosling和其他人開始一起致力於開發一種可移植、跨平臺的語言,該語言能夠生成執行於不同環境、不同CPU晶片上的程式碼。他們的努力最終促成了Java的誕生。
在Java的一些細節被設計出來的同時,第二個並且也是最重要的因素出現了,該因素將對Java的未來起著至關重要的作用。這第二個因素當然就是全球資訊網(WWW)。如果全球資訊網(WWW)的成型和Java的實現不是同時發生的話,那麼Java可能保持它有用、但默默無聞的用於電子消費品程式語言的狀態。然而,隨著全球資訊網的出現,Java被推到計算機語言設計的最前沿,因為全球資訊網也需要可移植的程式。絕大多數程式設計師在涉足程式設計領域時就知道可移植的程式像他們的理想一樣難以捉摸。
儘管人們對高效的、可移植的(獨立於平臺)程式設計方式的追尋幾乎和程式設計歷史一樣久遠,但它總是讓位於其他的更為緊迫的問題。此外,因為計算機業被 Intel,Macintosh和UNIX這3個競爭對手壟斷,大多數程式設計師都在其中的某個領域內長期工作,所以對可移植語言的需求就不是那麼迫切。但是,隨著因特網和Web的出現,關於可移植性語言的舊問題又被提了出來。畢竟,因特網由不同的、分散式的系統組成,其中包括各種型別的計算機、作業系統和 CPU。儘管許多型別的平臺都可以與因特網連線,但使用者仍希望他們能夠執行同樣的程式。曾經是一個令人煩惱卻無需優先考慮的問題現在變成了急需解決的問題。
1993年,Java設計小組的成員發現他們在編制嵌入式控制器程式碼時經常遇到的可移植性問題,在編制因特網程式碼的過程中也出現了。事實上,開始被設計為解決小範圍問題的Java語言同樣可以被用在大範圍的因特網上。這個認識使他們將Java的重心由電子消費品轉移到Internet程式設計。因此,中立體系結構程式語言的需要是促使Java誕生的源動力,而Internet卻最終導致了Java的成功。
正如前面提到的,Java的大部分特性是從C和C++中繼承的。Java設計人員之所以故意這麼做,主要是因為他們覺得,在新語言中使用熟悉的C 語法及模仿C++物件導向的特性,將使他們的語言對經驗豐富的C/C++程式設計師有更大的吸引力。除了表面類似外,其他一些促使C和C++成功的因素也幫了 Java的忙。首先,Java的設計、測試、精煉由真正從事程式設計工作的人員完成,它根植於設計它的人員的需要和經驗,因而也是一個程式設計師自己的語言。
其次,Java是緊密結合的且邏輯上是協調一致的。最後,除了那些Internet環境強加的約束以外,Java給了程式設計人員完全的控制權。如果你程式編的好,你編寫的程式就能反映出這一點。相反,如果你的程式設計手法拙劣,也能在你的程式中反映出來。換一種說法,Java並不是訓練新手的語言,而是供專業程式設計人員使用的語言。
由於Java和C++之間的相似性,容易使人將Java簡單地想象為“C++的版本”。但其實這是一種誤解。Java在實踐和理論上都與C++有重要的不同點。儘管Java受到C++的影響,但它並不是C++的增強版。例如,Java與C++既不向上相容,也不向下相容。當然,Java與C++的相似之處也是很多的,如果你是一個C++程式設計師,你會感覺到對Java非常熟悉。另外一點是:Java並不是用來取代C++的,設計Java是為了解決某些特定的問題,而設計C++是為了解決另外一類完全不同的問題。兩者將長時間共存。
正如本章開始提到的,計算機語言的革新靠兩個因素驅動:對計算環境改變的適應和程式設計藝術的進步。環境的變化促使Java這種獨立於平臺的語言註定成為Internet上的分散式程式語言。同時,Java也改變了人們的程式設計方式,特別是Java對C++使用的物件導向範例進行的增強和完善。所以, Java不是孤立存在的一種語言,而是計算機語言多年來的演變結果。僅這個事實就足以證明Java在計算機語言歷史上的地位。Java對Internet 程式設計的影響就如同C對系統程式設計的影響一樣:革命的力量將改變世界。
語言,許多人對Java的設計和改進做出了貢獻。Bill Joy,Arthur van Hoff,Jonathan Payne,Frank Yellin和Tim Lindholm是主要的貢獻者,正是他們的貢獻使最初原型得以成熟。
說起來多少有些令人吃驚,Java的最初推動力並不是因特網!而是源於對獨立於平臺(也就是體系結構中立)語言的需要,這種語言可建立能夠嵌入微波爐、遙控器等各種家用電器裝置的軟體。用作控制器的CPU晶片是多種多樣的,但C和C++以及其他絕大多數語言的缺點是隻能對特定目標進行編譯。儘管為任何型別的CPU晶片編譯C++程式是可能的,但這樣做需要一個完整的以該CPU為目標的C++編譯器,而建立編譯器是一項既耗資巨大又耗時較長的工作。因此需要一種簡單且經濟的解決方案。為了找到這樣一種方案,Gosling和其他人開始一起致力於開發一種可移植、跨平臺的語言,該語言能夠生成執行於不同環境、不同CPU晶片上的程式碼。他們的努力最終促成了Java的誕生。
在Java的一些細節被設計出來的同時,第二個並且也是最重要的因素出現了,該因素將對Java的未來起著至關重要的作用。這第二個因素當然就是全球資訊網(WWW)。如果全球資訊網(WWW)的成型和Java的實現不是同時發生的話,那麼Java可能保持它有用、但默默無聞的用於電子消費品程式語言的狀態。然而,隨著全球資訊網的出現,Java被推到計算機語言設計的最前沿,因為全球資訊網也需要可移植的程式。絕大多數程式設計師在涉足程式設計領域時就知道可移植的程式像他們的理想一樣難以捉摸。
儘管人們對高效的、可移植的(獨立於平臺)程式設計方式的追尋幾乎和程式設計歷史一樣久遠,但它總是讓位於其他的更為緊迫的問題。此外,因為計算機業被 Intel,Macintosh和UNIX這3個競爭對手壟斷,大多數程式設計師都在其中的某個領域內長期工作,所以對可移植語言的需求就不是那麼迫切。但是,隨著因特網和Web的出現,關於可移植性語言的舊問題又被提了出來。畢竟,因特網由不同的、分散式的系統組成,其中包括各種型別的計算機、作業系統和 CPU。儘管許多型別的平臺都可以與因特網連線,但使用者仍希望他們能夠執行同樣的程式。曾經是一個令人煩惱卻無需優先考慮的問題現在變成了急需解決的問題。
1993年,Java設計小組的成員發現他們在編制嵌入式控制器程式碼時經常遇到的可移植性問題,在編制因特網程式碼的過程中也出現了。事實上,開始被設計為解決小範圍問題的Java語言同樣可以被用在大範圍的因特網上。這個認識使他們將Java的重心由電子消費品轉移到Internet程式設計。因此,中立體系結構程式語言的需要是促使Java誕生的源動力,而Internet卻最終導致了Java的成功。
正如前面提到的,Java的大部分特性是從C和C++中繼承的。Java設計人員之所以故意這麼做,主要是因為他們覺得,在新語言中使用熟悉的C 語法及模仿C++物件導向的特性,將使他們的語言對經驗豐富的C/C++程式設計師有更大的吸引力。除了表面類似外,其他一些促使C和C++成功的因素也幫了 Java的忙。首先,Java的設計、測試、精煉由真正從事程式設計工作的人員完成,它根植於設計它的人員的需要和經驗,因而也是一個程式設計師自己的語言。
其次,Java是緊密結合的且邏輯上是協調一致的。最後,除了那些Internet環境強加的約束以外,Java給了程式設計人員完全的控制權。如果你程式編的好,你編寫的程式就能反映出這一點。相反,如果你的程式設計手法拙劣,也能在你的程式中反映出來。換一種說法,Java並不是訓練新手的語言,而是供專業程式設計人員使用的語言。
由於Java和C++之間的相似性,容易使人將Java簡單地想象為“C++的版本”。但其實這是一種誤解。Java在實踐和理論上都與C++有重要的不同點。儘管Java受到C++的影響,但它並不是C++的增強版。例如,Java與C++既不向上相容,也不向下相容。當然,Java與C++的相似之處也是很多的,如果你是一個C++程式設計師,你會感覺到對Java非常熟悉。另外一點是:Java並不是用來取代C++的,設計Java是為了解決某些特定的問題,而設計C++是為了解決另外一類完全不同的問題。兩者將長時間共存。
正如本章開始提到的,計算機語言的革新靠兩個因素驅動:對計算環境改變的適應和程式設計藝術的進步。環境的變化促使Java這種獨立於平臺的語言註定成為Internet上的分散式程式語言。同時,Java也改變了人們的程式設計方式,特別是Java對C++使用的物件導向範例進行的增強和完善。所以, Java不是孤立存在的一種語言,而是計算機語言多年來的演變結果。僅這個事實就足以證明Java在計算機語言歷史上的地位。Java對Internet 程式設計的影響就如同C對系統程式設計的影響一樣:革命的力量將改變世界。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-958072/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java的kafka生產消費JavaKafka
- Form產生時的事件次序; (轉)ORM事件
- java 產生一個Java的記憶體洩露Java記憶體洩露
- 交換機可能產生的問題分析(轉)
- 計算機隨機數的產生 (轉)計算機隨機
- linux下虛擬光碟機的產生(轉)Linux
- Kafka java api-生產者程式碼KafkaJavaAPI
- kafka java 生產消費程式demo示例KafkaJava
- Java記憶體溢位OutOfMemoryError的產生與排查Java記憶體溢位Error
- java編寫生產者/消費者模式的程式。Java模式
- 我所使用的生產 Java 17 啟動引數Java
- 軟體是誘導式生產還是服從彌補式生產? (轉)
- 轉 機器學習 演算法生產環境部署機器學習演算法
- ORACLE產生隨機數的多種方法分享 轉Oracle隨機
- mysqldump同步生產到生產資料MySql
- Java實現生產者和消費者Java
- Java實現生產者-消費者模型Java模型
- 如何避免SHRINKDATABASE & SHRINKFILE 產生索引碎片(轉載)Database索引
- 生產oracle字符集轉碼問題Oracle
- Oracle自帶的profsum.sql產生的結果示例(轉)OracleSQL
- 由實現web動畫到產生轉行的念頭Web動畫
- 數字化轉型背景下精益生產的思考
- MVC把隨機產生的字串轉換為圖片MVC隨機字串
- 用Delphi產生一個最小的可執行程式 (轉)行程
- 策劃入門(九)遊戲測試方案的產生(轉)遊戲
- 工程專案倫理風險產生的機制分析(轉)
- java多執行緒之消費生產模型Java執行緒模型
- java實現生產者消費者問題Java
- Java 生產者消費者模式詳細分析Java模式
- 透過編譯器動態產生Java class編譯Java
- Java 18和JDK 18可用於生產的GA版本釋出JavaJDK
- Redo wastage產生的原因AST
- 服裝生產管理軟體鞋帽生產系統的優點
- 非生產系統如何完成精益轉型?
- API檔案產生器-javadoc.exe(轉)APIJava
- 生產計劃排產軟體如何解決生產難題?
- Laravel/Lumen 記錄MySQL 和 MongoDB 產生的 SQL,定位 SQL 產生位置LaravelMySqlMongoDB
- 從科學管理到豐田生產模式,精益是如何產生的?模式