For investors
股價(jià):
5.36 美元 %For investors
股價(jià):
5.36 美元 %認(rèn)真做教育 專心促就業(yè)
我承認(rèn)即使在JavaFX出現(xiàn)之前Java已經(jīng)在桌面領(lǐng)域做出了一些重大的提升,比如Swing中的提升;我們現(xiàn)在也有了很棒的OpenGL;DirectX也有了很大的提升;啟動(dòng)時(shí)間也顯著提升了。沒錯(cuò),Java在去年做了很多顯著而有效的工作。
然而不得不說的是,除此之外其他的仍是一塌糊涂。比如Java sound實(shí)際上并不好用,被遺棄的Java3D又如何呢?最近甚至JOGL也被Sun遺棄,包括很久之前的SwingLab;JAI(用作圖片處理)多年未真正升級(jí)過,看起來也沒有在什么地方得到利用,它迫切需要性能上的巨大提升以適應(yīng)來臨的多核GPU時(shí)代所有這些應(yīng)用于桌面領(lǐng)域的Java產(chǎn)品不是被遺棄就是成為雞肋。
而且很關(guān)鍵一點(diǎn)是,盡管我們可以用Java創(chuàng)建出桌面應(yīng)用,但只要我們想開發(fā)真正的富桌面應(yīng)用我們就無法真正使用Java而使用JNI、C/C++和平臺(tái)依賴的libraries等。
使用Java構(gòu)建桌面應(yīng)用更多的是困難和麻煩,比如即便想要在Java應(yīng)用內(nèi)創(chuàng)建一個(gè)高效的優(yōu)良的web瀏覽器都是一件難事。而且沒有用Java編寫的圖片處理應(yīng)用,沒有一個(gè)純粹的Java web瀏覽器,沒有數(shù)字音頻應(yīng)用,沒有3D建模器,沒有矢量圖形編輯器,沒有先進(jìn)的光柵編輯器。Java今日在桌面端所到達(dá)的高度只能滿足那些服務(wù)器開發(fā)者,因?yàn)樗麄冎恍枰谶h(yuǎn)程服務(wù)時(shí)使用電腦桌面上的簡(jiǎn)單界面。
過去我們一直說這是因?yàn)镴ava太慢,無法在一個(gè)慢的平臺(tái)上開發(fā)出如此復(fù)雜的應(yīng)用。但我們這樣說是錯(cuò)的。原因有兩點(diǎn):一,Java從來就沒有慢過,即便有些部分曾經(jīng)慢過,但沒有人懷疑當(dāng)它需要被用到服務(wù)器端時(shí)它會(huì)迅速地得到提升,比如JITs,GCs等。這一點(diǎn)也正是Java語言卓越的地方。二,由于Java平臺(tái)的天然特性,Java應(yīng)用總是第一個(gè)利用市場(chǎng)上新硬件和新操作系統(tǒng)的應(yīng)用。一旦JVM被配置到了一個(gè)新系統(tǒng)中,幾乎不需要任何編輯和調(diào)試,Java應(yīng)用就可以在上面全速運(yùn)行。比如你在32位的操作系統(tǒng)上開發(fā)了一個(gè)應(yīng)用,它就可以全速運(yùn)行在Windows 7 或者Solaris的64位JVM上。所以所謂的Java太慢根本不能成為Java在桌面端碌碌無為的借口。
而且,如果你是一個(gè)終端用戶,你甚至不需要從網(wǎng)站上重新下載應(yīng)用,這意味著不僅終端用戶和開發(fā)者得到了速度提升,甚至應(yīng)用的執(zhí)行性能的前邊也得到了速度提升。今天,JIT在runtime為本地操作優(yōu)化代碼已經(jīng)做得很棒了,這意味著你可以挖掘出你運(yùn)行的硬件的全部的能力,這是一個(gè)靜態(tài)編譯語言永遠(yuǎn)也無法競(jìng)爭(zhēng)過的性能,只是這個(gè)性能如果可以運(yùn)用到桌面端和游戲領(lǐng)域就好了
我們總是說:由于Sun總是一個(gè)服務(wù)器端公司的原因,Java在桌面端一直沒有真正的機(jī)會(huì)。而Oracle的收購讓這種境況看起來不會(huì)有什么改變。希望這不要再繼續(xù)下去,為了Sun、Oracle和Java自身的利益,Oracle內(nèi)部的知名人士應(yīng)該提醒公司來讓他們知道:如果缺乏了在桌面端的能力和效率,必將影響Java的普及率甚至它在服務(wù)器端的占有率。
我們一直以來習(xí)慣著Sun主要提供服務(wù)器端服務(wù),因而想象著未來更多的處理能力還是出現(xiàn)在服務(wù)器端,而客戶端不過是連接服務(wù)器的簡(jiǎn)單服務(wù)。這種情況已被證明是絕對(duì)錯(cuò)誤的。因?yàn)槲磥淼淖烂鎽?yīng)用將服務(wù)、應(yīng)用與硬件所有的運(yùn)算能力相結(jié)合,大量的數(shù)據(jù)和解碼、聲音、圖像、視頻被開發(fā)者處理,而且用并行編程的方式來實(shí)現(xiàn),既保證了豐富的性能又保證了速度。對(duì)開發(fā)者來說,未來的服務(wù)既需要他們?cè)诳蛻舳颂幚硪残枰诜?wù)器端處理:執(zhí)行復(fù)雜的搜索、圖像、視頻以及虛擬3D環(huán)境需要服務(wù)器端的技術(shù),而遠(yuǎn)程服務(wù)如醫(yī)學(xué)分析、遠(yuǎn)程教育和遠(yuǎn)程會(huì)議等則需要客戶端能力。
只是令我們感到失望的是歷史又一次地重復(fù)了,因?yàn)橹两馢ava中還沒有什么大的動(dòng)作。
armin Ehrenreich 在回復(fù)中說道:說的好,我完全認(rèn)同。
確實(shí)迫切需要跨平臺(tái)的桌面應(yīng)用技術(shù),而且我不認(rèn)為C++結(jié)合Qt是個(gè)好的選擇。你說闡述的問題之所以沒有引起很多的共鳴,我想是文化上的問題。許多Java社區(qū)的人們包括Sun內(nèi)部的負(fù)責(zé)人無法理解你所說的,所以我斷言O(shè)racle也不會(huì)對(duì)Java做出什么大的改變。
客戶端現(xiàn)在基本上被微軟和Apple包攬。到Cocoa論壇中會(huì)發(fā)現(xiàn)他們談?wù)摰氖荊UI的可用性、響應(yīng)性、終端戶如何處理桌面應(yīng)用等而我們的論壇呢,大部分人認(rèn)為應(yīng)用的未來在服務(wù)器端。這就是文化上的差異。
但是桌面技術(shù)需要做很多工作,Swing很慢很慢地進(jìn)化,連同Netbeans平臺(tái)、Java3D, JOGL等應(yīng)用勉強(qiáng)成為了桌面端的一個(gè)選擇。但Sun置此境遇于不顧,只是模仿Flash發(fā)布了一款新的腳本語言,但是那些API只有使用JavaFX才可用
Jeff Martin回復(fù)道:正確的觀點(diǎn),但我有一點(diǎn)不同。Sun真正的問題是他應(yīng)該吃自己的飯,用自己的力量來用Java寫一些實(shí)在的桌面應(yīng)用,這可以證明他們關(guān)于Java在桌面端的承諾,證明他們可以寫出應(yīng)用、提升框架和工具。我不認(rèn)為另一個(gè)框架會(huì)幫助Java。
James Sugrue回復(fù)道:我同意作者觀點(diǎn),我也很支持桌面端開發(fā)。看看現(xiàn)在處于開發(fā)中的Eclipse. e4中的一些項(xiàng)目,它們?yōu)樽烂婧蜑g覽器提供了一個(gè)解決方案,所以我想還是有一些希望的。但我認(rèn)為我們不需要過分聚焦于桌面端,JavaFX是正確方向上的一個(gè)邁進(jìn),只是無法在Swing和Java3D/JOGL中看到應(yīng)用提升。
Osvaldo Doederlein回復(fù)道:我認(rèn)為JOGL的支持沒有那么糟糕,畢竟它是JavaFX Desktop Runtime的一個(gè)依賴。實(shí)際上,我們可以寫一個(gè)非JavaFX的小程序,而且不需要請(qǐng)求本地代碼的許可性就可以配置。
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)?jiān)?0日內(nèi)與聯(lián)系我們,我們會(huì)予以更改或刪除相關(guān)文章,以保證您的權(quán)益!