我們真的能沒有Java嗎?
原創(chuàng)【51CTO編譯】起初,在計(jì)算機(jī)資源還很缺乏的時(shí)候,接近于普通機(jī)器似的運(yùn)轉(zhuǎn)還是可取的,但是當(dāng)硬件資源變得更容易使用,并且開發(fā)時(shí)間變得重要,更高水平的語言必須出現(xiàn)。開發(fā)從C到C++,然后再到Java和C#,伴隨著這種趨勢(shì),服務(wù)器的編制程序被類似PHP、Python、Per1和Ruby的語言所控。Java和C#在某些被稱為“真正的程序設(shè)計(jì)語言”和“腳本語言”中隱退。C#可以更多地被當(dāng)做是微軟的代用品,適用于多種環(huán)境的Java與C#比較變得微不足道了。
自從Java許諾帶著獨(dú)立的平臺(tái)出現(xiàn)以來,它很快就流行開來。它既不是腳本語言也不是和在JVM上運(yùn)行的字節(jié)代碼,所以JRE就像其他腳本語言需要一種引擎來翻譯一樣。Java當(dāng)然就改變了我們看待真正的程序設(shè)計(jì)語言的方式。Java逐年變快,并在電腦系統(tǒng)上給予C++最大的挑戰(zhàn),Java在字節(jié)代碼的獨(dú)立平臺(tái)給人們對(duì)于腳本語言所擁有的自由。Java在瀏覽器、服務(wù)器和嵌入式系統(tǒng)上都有解決方案。
但是像每個(gè)優(yōu)秀技術(shù)一樣,Java當(dāng)然也有一些自身的問題,當(dāng)它涉及到瀏覽器時(shí)就不夠好了。雖然Applets和Java web Start是基于調(diào)配網(wǎng)絡(luò)應(yīng)用系統(tǒng)而設(shè)計(jì)的一個(gè)好技術(shù),但是不知為什么它運(yùn)轉(zhuǎn)起來并不盡如人意。Applets很快成為一項(xiàng)過時(shí)的技術(shù)。但是Java的不幸并沒因此而結(jié)束,開發(fā)者還要面臨Java的圖形界面庫的問題。不管Sun在Java Toolkit的事情上多么努力。開發(fā)者們看上去絕不滿足于此。雖然Java swing Toolkit的大部分組件運(yùn)轉(zhuǎn)完美,建立一個(gè)漂亮的開發(fā)前臺(tái)對(duì)于Java開發(fā)者還是個(gè)有些遙遠(yuǎn)的夢(mèng)想。
由于互聯(lián)網(wǎng)的激增,一系列關(guān)于服務(wù)器和客戶端的腳本語言伴隨著網(wǎng)絡(luò)應(yīng)用系統(tǒng)開始開始受到歡迎。這些腳本語言開始掌控整個(gè)世界。雖然服務(wù)器腳本提供flavors PHP、Python、rarl、ASP等等,但是客戶端仍明顯被JavaScript所控制。當(dāng)JavaScript涉及到開發(fā)網(wǎng)絡(luò)應(yīng)用系統(tǒng)時(shí)AJAX的流行已將其推至最前沿。因?yàn)槌鼺lash、Action、Script、HTML5等少數(shù)幾個(gè)技術(shù)之外的技術(shù)不能傳遞獨(dú)立執(zhí)行系統(tǒng)的客戶端,網(wǎng)絡(luò)應(yīng)用系統(tǒng)的潛能被迅速開發(fā),以至于只有Flash、action、script、HTML5等被一些網(wǎng)站開發(fā)小組認(rèn)為是僅能存活于客戶端的幾個(gè)技術(shù),這些開發(fā)小組急需改變。所以能夠創(chuàng)造無痕接口并能在整個(gè)過程中和數(shù)據(jù)庫保持在服務(wù)器端的云計(jì)算剛好證實(shí)了這些。
云計(jì)算無疑有極大的好處,但是把它作為未來計(jì)算的最終辦法看上去卻不是明智之舉。如果我們說云計(jì)算是下一代計(jì)算,那么我們就表明我們的計(jì)算步驟將會(huì)分裂成客戶端的和服務(wù)器端兩類。我們正期待著一切都更加有效率,服務(wù)器和瀏覽器的processing時(shí)間的總和比客戶端所有processing的時(shí)間都短,現(xiàn)在這種假設(shè)在邏輯上是不太正確的。
此外,我們會(huì)保證服務(wù)器端的腳本語言絕不會(huì)比最快的客戶端的快。因此我們就不會(huì)摒棄完善Java、drain等語言的努力。當(dāng)然,Java會(huì)以更多的形式存在,但嵌入瀏覽器,幾乎每一個(gè)從文字處理應(yīng)用都會(huì)減慢我們的體驗(yàn),我們就會(huì)受到互聯(lián)網(wǎng)帶寬、腳本語言以及瀏覽器的制約。如果我們真的缺乏技術(shù)使效率變慢,這種趨勢(shì)是合理的。顯然,作為一個(gè)應(yīng)用程序運(yùn)行時(shí),如一群人在社交網(wǎng)站,論壇等,引擎的瀏覽器是有利的應(yīng)用程序處理的服務(wù)器上的信息共享和修改,但每一個(gè)嵌入到瀏覽器中應(yīng)用程序的存儲(chǔ)數(shù)據(jù)都會(huì)飽和。因?yàn)橛行┤四軌颢@得巨大的帶寬,我們不能剝奪其他人的真正的計(jì)算體驗(yàn),使每一個(gè)應(yīng)用程序的硬件資源和計(jì)算能力都達(dá)到用戶良好的體驗(yàn)和自己的要求。但是只是因?yàn)槲覀兊恼Z言的API和工具包沒有獨(dú)立開發(fā)平臺(tái)功能豐富的GUI阻礙了快速計(jì)算,這似乎就沒有道理了。于是我們要發(fā)展一個(gè)有引擎的瀏覽器,能運(yùn)行所有的應(yīng)用程序。但不同于現(xiàn)有的引擎,這會(huì)是一個(gè)GUI和執(zhí)行基本的計(jì)算,剩下的工作將委托給其他服務(wù)器引擎,它不同于真正的引擎,只有為JRE做好各項(xiàng)工作的能力。
只要繼續(xù)發(fā)展Java,容易開發(fā)、平臺(tái)獨(dú)立和高性能的Java API恰恰有創(chuàng)造各種桌面應(yīng)用的潛力。不僅僅是桌面應(yīng)用程序可以用來創(chuàng)建胖客戶端應(yīng)用程序的執(zhí)行,也可以按客戶要求進(jìn)行聊天交換數(shù)據(jù)計(jì)算、多人游戲等,執(zhí)行大部分客戶端和服務(wù)器端一樣的工作。
沒有Java的日子?我看還是算了吧!
原文地址:ezinearticles.com/?Can-We-Really-Do-Without-Java?&id=3691096
原作者:Rohit Pardasani
原文名:Can We Really Do Without Java?
【51CTO譯稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載,合作媒體轉(zhuǎn)載請(qǐng)注明原文出處及作者!】
【編輯推薦】