自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JavaScript已成Web之王?Java情緒穩(wěn)定

開發(fā) 前端
JavaScript正在成為一種多才多藝的,強大的,功能齊全的Web語言,而Java卻日益顯現(xiàn)淪為昔日COBOL語言的結(jié)局,作為Java程序員,您是否感到驚恐不安呢?是否開始尋找一種可替代Java的語言呢?

最近Oracle控告搜索巨人Google,宣稱其Android智能手機操作系統(tǒng)上的Dalvik虛擬機侵犯了Java專利,這很自然讓很多的開發(fā)人員感到擔心。但大多數(shù)分析指出,這場訴訟對絕大多數(shù)Java開發(fā)人員將不會有多少的影響,但有些程序員卻驚恐不安,他們已經(jīng)開始尋找一種可替代的語言了。如果你也是這樣,你是否考慮過轉(zhuǎn)向JavaScript?

“什么?”,你也許會詫異。任何一個開發(fā)人員或多說少都知道Java跟JavaScript幾乎沒有任何的關(guān)系。Netscape最初是想把這個跨瀏覽器的腳本語言叫做LiveScript,但Sun微系統(tǒng)公司說服他們使用JavaScript這個名字——他們的想法是要把JavaScript當成一種HTML和Sun的全功能的Java之間的橋梁。

但如果Sun漠視JavaScript的存在而認為Java將成為Web上的真正語言,那它就大錯特錯了。Java最終發(fā)現(xiàn)它的用武之地只是作為一種服務(wù)器端語言,JavaScript在瀏覽器里給了它致命打擊。如今,像CommonJS和Node.js這樣的項目把JavaScript擴展到了更廣的地方,使它也能夠扮演Java在數(shù)據(jù)中心上的傳統(tǒng)角色。在這樣一種神奇的角色轉(zhuǎn)換中,JavaScript正在成為一種多才多藝的,強大的,功能齊全的Web語言,而Java卻日益顯現(xiàn)淪為昔日COBOL語言的結(jié)局。

橋接客戶端/服務(wù)器端

估計經(jīng)歷了那個年代的人都能回憶起當時以瀏覽器為平臺的Java applet的那種笨拙,丑陋,激不起興趣的樣子,它更多給人帶來的是煩惱,而不是真正的用處。即使Sun最近的在富(rich)互聯(lián)網(wǎng)應(yīng)用技術(shù)的嘗試——JavaFX,也沒有使其在對抗其現(xiàn)有的競爭對手(包括Adobe Flash,微軟Silverlight)的進程上前進多少??蛻舳薐ava,看起來在出生之日就已被判了死刑。

相似的,服務(wù)器端JavaScript(SSJS)也從來沒制造出多少火花。早在1996年,Netscape Enterprise Server就支持SSJS,但它一種昂貴且有專利的產(chǎn)品。它很快就被開源的Apache server搶光了所有的市場,SSJS也隨著它消失了。

然而,在那些日子里,JavaScript的確成為了最適合Web頁面的輕量級腳本語言。對比一下那個時期新興的其它語言,例如Perl和Python,JavaScript運行緩慢而且語法怪異,只有有限的功能支持。更糟糕的是,每個廠商對其的實現(xiàn)還各不相同,導致開發(fā)人員浪費時間寫一些修改補丁和相關(guān)處理。

至今,JavaScript已經(jīng)走了一段很長的路。獨立的、開源的JavaScript引擎的出現(xiàn)——包括谷歌的V8,Mozilla的SpiderMonkey,和WebKit的SquirrelFish Extreme——意味著任何人都可以在自己的代碼里嵌入一個標準兼容的JavaScript解釋器,無需你從頭來開發(fā)它們。目前這三個項目正處在一場猛烈的性能競賽中,每種引擎的性能都在穩(wěn)定的進步。隨著這些底層技術(shù)高速的成熟發(fā)展,JavaScript展現(xiàn)出了一種Java從未實現(xiàn)的態(tài)勢:打破傳統(tǒng)的領(lǐng)域壁壘,貫通服務(wù)器端和客戶端??蛻舳说腏ava從未景氣過,但服務(wù)器端JavaScript卻殺了回來。

服務(wù)器端JavaScript越來越受重視

現(xiàn)代的JavaScript引擎都能夠單獨的獨立運行,這使得它們給SSJS提供了天然的便利。但目前JavaScript還只是主要的作為一種瀏覽器端的語言,這使得它缺少一些開發(fā)人員們期望的在其它環(huán)境中的功能特征。例如,客戶端的開發(fā)人員通常是通過互聯(lián)網(wǎng)加載單獨的.js文件,而服務(wù)器端的開發(fā)人員需要一種更常用的方式,使代碼程序能打成包。同樣,JavaScript缺少常見的系統(tǒng)功能標準庫,相比較而言,像C和Java這樣的更加面向系統(tǒng)的語言在這方面要豐富的多。

CommonJS項目正試圖解決這些問題。它的目標就是要創(chuàng)造出一套開放的、標準的API,提供諸如二進制對象處理,并行線程,文件、流、和套接字 I/O,系統(tǒng)日志處理等功能接口。除此之外,它還提議了一套代碼和相關(guān)命名空間的模塊格式標準。雖然這還是個很年輕的項目,但它的終極目標卻是要讓JavaScript開發(fā)人員在寫代碼時有一個CommonJS規(guī)范,寫出的程序在不作任何修改的情況下可以在任何CommonJS兼容的平臺上運行——不論底層的JavaScript引擎和操作系統(tǒng)是什么。

然而,更令人興奮的卻是Node.js這個項目,它和CommonJS的初衷很相似,而且實現(xiàn)了一些CommonJS API。可是,它卻把SSJS的概念提升到了一個新的高度。它的最重要的一項革新就是實現(xiàn)了針對服務(wù)器端開發(fā)的面向事件的編程模型。這意味著不僅僅Nodo.js編程會讓客戶端的JavaScript開發(fā)人員感覺到得心應(yīng)手——因為事件驅(qū)動模型是他們的開發(fā)規(guī)范,同時對于那些嚴重依賴于并行操作來支持多個并行用戶的Web應(yīng)用程序也是理想的選擇。

JavaScript:Web之王?

不要奢望JavaScript能把Java從唯我獨尊的寶座上拉下來。CommonJS和Node.js都還有很多的功課要做,一種精確的對這兩個項目的描述應(yīng)該是:試驗品。對于更多的改進,例如特定的優(yōu)化和管理工具等,就像Oracle對JRockit JVM所做的這方面的工作將會使Java成為企業(yè)軟件開發(fā)的一個很有吸引力的平臺。

然而,JavaScript作為服務(wù)器端開發(fā)語言所帶來的好處顯而易見。它能夠讓Web開發(fā)人員用一種單一的語法實現(xiàn)所有的程序,去除了典型Web應(yīng)用上的混亂和混淆。JavaScript的運行效率的改進日新月異,這是開發(fā)人員最看重的。而JavaScript語言本身也發(fā)展成熟,成為一種不錯的語言,具有同時支持面向?qū)ο蠛秃瘮?shù)的編程風格的特征。

還有另外一點需要注意:JavaScript是完全免費和開放的,它由行業(yè)內(nèi)廠商組成的ECMA標準委員會維護。ECMAScript工作組過去處于停滯狀態(tài),但它已經(jīng)克服了種種困難,使JavaScript繼續(xù)得到高速的發(fā)展。而同時,Java,一邊假裝開放,有不倫不類的JCP(Java Community Process)負責,一邊又受到Oracle潛在的法律訴訟的威脅。如果Oracle自己不能意識的現(xiàn)在的形勢,那我相信開發(fā)人員們可是清清楚楚的看清楚了。

來源鏈接:http://www.aqee.net/2010/09/28/watch-out-java-here-comes-javascript/

英文出處:http://infoworld.com/d/developer-world/watch-out-java-here-comes-javascript-799

【編輯推薦】

  1. Google專家:JavaScript是網(wǎng)站性能的致命克星
  2. JavaScript成瀏覽器戰(zhàn)爭主戰(zhàn)場
  3. JavaScript正在成為Ruby殺手?
  4. JavaScript創(chuàng)始人Brendan Eich訪談錄
  5. JavaScript將成Silverlight的最大對手?
責任編輯:王曉東 來源: 外刊IT評論
相關(guān)推薦

2011-05-27 09:14:12

OracleMySQL

2010-05-06 09:27:13

2019-08-22 19:40:11

人工智能AI

2024-06-06 12:50:55

2021-09-27 11:21:40

數(shù)字化

2009-07-15 14:29:44

RubyPHPWeb編程語言

2012-11-19 10:05:29

Windows Pho

2018-05-03 08:00:27

傳感器物聯(lián)網(wǎng)智能

2010-03-10 08:14:09

2024-10-07 08:32:54

2009-10-08 09:18:41

微軟殺毒軟件Google

2010-02-11 16:45:52

2019-01-23 05:44:12

物聯(lián)網(wǎng)情緒IOT

2012-09-17 09:47:49

語言排行JavaScriptRedMonk

2022-11-28 11:41:24

Wasm

2024-12-13 08:21:04

2021-04-19 11:12:46

區(qū)塊鏈貨幣加密貨幣

2023-12-08 18:26:03

Java微軟Code

2010-10-20 09:07:53

JavaScript服務(wù)端開發(fā)

2015-08-27 13:11:18

JavaScript代碼
點贊
收藏

51CTO技術(shù)棧公眾號