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