国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
警惕Java,迎來(lái)JavaScript

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

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

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

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

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

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

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

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

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

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

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

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

如果這聽(tīng)起來(lái)像有一只手在向你招喚,請(qǐng)看看Node.js 編程例子。這個(gè)完全等效的“Hello,world!”程序是只用了6行JavaScript代碼的完全的HTTP服務(wù)器端實(shí)現(xiàn)。

JavaScript:Web之王?

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

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

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

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Azure Functions現(xiàn)在支持Java了
C、C 、Java、JavaScript、PHP、Python、Ruby這些語(yǔ)言分別主要用來(lái)開(kāi)發(fā)什...
物聯(lián)網(wǎng)產(chǎn)業(yè)需要什么編程語(yǔ)言
招聘Java開(kāi)發(fā)時(shí),那些你不能不知道的專(zhuān)業(yè)術(shù)語(yǔ)
Get IT技能知識(shí)庫(kù) 50個(gè)領(lǐng)域一鍵直達(dá)
PHP丨Web 網(wǎng)站的工作原理
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服