小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Java的跨平臺(tái)特性是利是弊?

 duduwolf 2005-07-15

(本文作者岑永洪來(lái)自中科院軟件所。您現(xiàn)在即可參加“我眼中的Java”有獎(jiǎng)?wù)魑幕顒?dòng),詳情請(qǐng)看:http://news.csdn.net/news/newstopic/22/22661.shtml

Java語(yǔ)言最大的一個(gè)特點(diǎn)就是他的跨平臺(tái)特性,也就是平時(shí)廣告語(yǔ)中說(shuō)得最多的“write once run anywhere”??缙脚_(tái)最明顯的一個(gè)優(yōu)點(diǎn)就是,你寫(xiě)的程序地球人都能運(yùn)行,這對(duì)程序員來(lái)說(shuō)就是減少了工作量,對(duì)于公司來(lái)說(shuō)就是減少了投入。但是,天底下沒(méi)有免費(fèi)的午餐,跨平臺(tái)是需要有代價(jià)的,最明顯的一個(gè)就是我們的代碼將會(huì)被編譯為所謂的“字節(jié)碼”,這些代碼在運(yùn)行時(shí)由虛擬機(jī)進(jìn)行解釋執(zhí)行,正是因?yàn)檫@種解釋執(zhí)行的方式導(dǎo)致了Java程序的執(zhí)行速度一直不如其他的C和C++程序。

雖然,跨平臺(tái)特性是如此優(yōu)秀,但是很多時(shí)候,我們是否真正考慮過(guò)我們是否需要這種特性呢,或者這種特性對(duì)我們來(lái)說(shuō)是利大還是弊大呢。

在國(guó)外,版權(quán)是一個(gè)很?chē)?yán)重的問(wèn)題,因此,在國(guó)外雖然Windows系統(tǒng)占有比較大的市場(chǎng),但是在大學(xué),在政府部門(mén),在程序員當(dāng)中,大量使用的是類(lèi)Unix和Linux的操作系統(tǒng),只要對(duì)Unix操作系統(tǒng)稍有了解,就會(huì)知道Unix系統(tǒng)發(fā)展到今天,已經(jīng)出現(xiàn)了好幾個(gè)不同的發(fā)行版本,這些版本雖然沒(méi)有大的區(qū)別,但是還是存在著或多或少的不兼容,因此,一個(gè)程序如果需要在不同的平臺(tái)間運(yùn)行,那么移植將是必不可少的。因此,對(duì)于國(guó)外的桌面系統(tǒng)環(huán)境,Java程序的跨平臺(tái)性顯然比他的性能因素更重要。但是,反觀國(guó)內(nèi),占據(jù)市場(chǎng)主導(dǎo)的都是Windows系統(tǒng),而程序員所開(kāi)發(fā)的程序也基本上是運(yùn)行于該平臺(tái)下,很少需要考慮程序移植的問(wèn)題。因此,一個(gè)程序是否能跨平臺(tái)運(yùn)行,對(duì)于我們來(lái)說(shuō)不如國(guó)外強(qiáng)烈,所以,從我們的現(xiàn)實(shí)情況出發(fā),性能比跨平臺(tái)顯然更為重要。但是,從長(zhǎng)遠(yuǎn)來(lái)說(shuō),如果我們希望我們自己寫(xiě)的程序能夠沖出亞洲,走向世界,那么跨平臺(tái)性顯然也是一種很有利的特性。

除了桌面應(yīng)用以外,Java程序還主要運(yùn)行于服務(wù)器端和嵌入式終端,對(duì)于服務(wù)器端,我覺(jué)得沒(méi)必要多加評(píng)論,因?yàn)榕c桌面應(yīng)用的PC不同,服務(wù)器端應(yīng)用所依賴的硬件平臺(tái)尚未呈現(xiàn)一個(gè)一家獨(dú)大的情況,因此跨平臺(tái)性是非常重要的,而且現(xiàn)有的應(yīng)用也表明J2EE平臺(tái)已經(jīng)成為了事實(shí)的標(biāo)準(zhǔn),因此,不管他合適與否,我們也只能繼續(xù)使用。

而對(duì)于嵌入式終端,特別是智能手機(jī),我覺(jué)得是一個(gè)很值得討論的部分。嵌入式市場(chǎng)在最近幾年表現(xiàn)出非常迅猛的發(fā)展勢(shì)頭。在終端方面,現(xiàn)在市場(chǎng)上存在著大量的終端生產(chǎn)商,而根據(jù)過(guò)去幾年的市場(chǎng)份額分析,各大生產(chǎn)商的份額雖然一直在改變,但是總體趨勢(shì)仍是保持著的一個(gè)各方均衡的情況;對(duì)應(yīng)于多個(gè)生產(chǎn)商,在操作系統(tǒng)和應(yīng)用系統(tǒng)方面也是呈現(xiàn)出一個(gè)群雄割據(jù)的局面,在操作系統(tǒng)方面,主要是Symbian,Linux,WinCE,Palm;而在應(yīng)用系統(tǒng)方面則包括了J2ME,Brew及其他與操作系統(tǒng)相應(yīng)的系統(tǒng)。在這種情況下,如果應(yīng)用是特定于某一平臺(tái)的話,那么不管是對(duì)生產(chǎn)商,開(kāi)發(fā)商或最終用戶都是一件不利的事情,為此,一個(gè)能跨平臺(tái)運(yùn)行的程序?qū)⑹乔度胧綉?yīng)用中最受歡迎和被接受的。因此,在嵌入式方面,Java的跨平臺(tái)性顯得非常重要。雖然跨平臺(tái)性觸進(jìn)了J2ME平臺(tái)在手機(jī)領(lǐng)域的發(fā)展,但也正是因?yàn)檫@個(gè)跨平臺(tái)性使得運(yùn)行在J2ME之上的程序一直未如理想。

J2ME通過(guò)CLDC和MIDP來(lái)定義運(yùn)行于手機(jī)之上的Java虛擬機(jī)的特性,這兩個(gè)規(guī)范定義的都是最低要求,而為了能夠增加J2ME在不同手機(jī)上的移植,這兩個(gè)規(guī)范所定義的配置門(mén)檻都非常的低,低的門(mén)檻雖然一方面能擴(kuò)大市場(chǎng),但是另一方面也制約了上層應(yīng)用的開(kāi)發(fā),這表現(xiàn)在性能和應(yīng)用模式上。

游戲是手機(jī)應(yīng)用中一個(gè)非常熱門(mén)的方面,但是由于她的性能和表現(xiàn)與下層的硬件直接相關(guān),所以,如果我們使用J2ME所提供的API來(lái)開(kāi)發(fā)游戲的話,那么我們只能假定我們所開(kāi)發(fā)的游戲所能使用的資源就是規(guī)范中所規(guī)定的,這無(wú)疑會(huì)對(duì)我們的創(chuàng)意和實(shí)現(xiàn)帶來(lái)影響。而從市場(chǎng)上現(xiàn)有的運(yùn)行于J2ME之上的手機(jī)游戲,我們也不難看到,這些游戲無(wú)論從品質(zhì)和層次上都有待提高。

一般的桌面軟件,都是通過(guò)一個(gè)頁(yè)面來(lái)獲取用戶的多個(gè)輸入,但是由于手機(jī)并不像PC那樣配有在控件之間進(jìn)行切換的“Tab”鍵或者鼠標(biāo),因此,當(dāng)需要向用戶獲取多個(gè)輸入時(shí),一般情況下,我們都需要通過(guò)多個(gè)頁(yè)面來(lái)完成,這顯得非常冗余而且低效。從這里,我們不難看出點(diǎn)選設(shè)備的存在與否,對(duì)于我們的應(yīng)用模式,存在非常大的影響。但是,這在J2ME規(guī)范中并未對(duì)此加以區(qū)分。

跨平臺(tái)是一個(gè)好事情,但是有時(shí)候我們需要做出一些折中,因?yàn)?,一個(gè)技術(shù)是否能夠存活和發(fā)展不僅看他是否優(yōu)秀,很多時(shí)候還需要看他是否能夠占領(lǐng)市場(chǎng),因此為了市場(chǎng)而犧牲一部分的特性,我覺(jué)得也是合適的。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多