Java Swing做什么好
Java是一門適合于企業(yè)級(jí)應(yīng)用的語言,它并不適合做個(gè)人桌面應(yīng)用開發(fā),如果你要開發(fā)一個(gè)游戲/音樂播發(fā)器/下載工具/瀏覽器..等等桌面應(yīng)用.你***不要選擇Java,因?yàn)檫@樣做你可能會(huì)遇到兩種情況.
1.完全做不出來
2.做出來沒人用
Java Swing適合開發(fā)企業(yè)級(jí)應(yīng)用的桌面程序.
企業(yè)級(jí)應(yīng)用是一個(gè)工作環(huán)境,用戶不會(huì)關(guān)心程序是如何安裝的,不用關(guān)心是否占用了我過多的內(nèi)存這些問題.只要在目標(biāo)機(jī)器上能夠穩(wěn)定運(yùn)行就可以.企業(yè)級(jí)應(yīng)用的程序桌面不需要像游戲一樣復(fù)雜的圖像效果.
由于這樣的假設(shè)條件,Java Swing做富客戶端應(yīng)用有以下好處:
a.Java程序員不用關(guān)心內(nèi)存的釋放問題,大大減少編程的復(fù)雜程度.
b.Java的跨平臺(tái)性.
c.Java豐富的企業(yè)級(jí)應(yīng)用支持.
...Java本身的其他優(yōu)勢(shì)
哇,看起來Java真是太美好了,但這是在用戶接受了假設(shè)條件的前提下才可以獲得的好處.
Java Swing還可以 做工具類軟件
這些工具大多也是工作上使用的,比如IDE/一些分析工具.如果使用Java做工具,那么我們需要安裝JDK,即使軟件自帶了JRE,它也會(huì)比同類的軟件體積要大,并且會(huì)占用更多的內(nèi)存.這些需要付出的代價(jià)對(duì)于一個(gè)非Java程序員來說,必然是會(huì)考慮的要素.當(dāng)然,工具類軟件,我們更關(guān)心的是它的功能,即使部署成本和計(jì)算機(jī)資源占用高一些,只要功能完善我們還是會(huì)去選擇.在用Java做工具類軟件時(shí),比較重要的一點(diǎn)是Java的跨平臺(tái)特性.
Java Swing不適合 做個(gè)人用戶的桌面應(yīng)用程序 也不適合做游戲
個(gè)人桌面應(yīng)用與企業(yè)應(yīng)用相比有很多不同:
1.個(gè)人桌面應(yīng)用對(duì)于軟件體積是十分關(guān)注的,這一點(diǎn)并不是因?yàn)槲覀兊挠脖P不夠大,而是因?yàn)樾〉能浖菀妆幌螺d.一個(gè)1mb的軟件和一個(gè)15mb的軟件是對(duì)于個(gè)人用戶來說是有明顯區(qū)別的.有一個(gè)翻譯軟件叫靈格斯,其中一個(gè)非常重要的特性就是小.
Java的Jre6是15.5MB.如果是一個(gè)400mb的軟件,或許這15mb并不多,但對(duì)于一個(gè)1-2mb的軟件來說,這15mb就很多了.
2.安裝的復(fù)雜程度,個(gè)人用戶并不是專家,安裝的復(fù)雜度,時(shí)間長(zhǎng)短對(duì)于一個(gè)軟件來說都非常重要.一個(gè)安裝20秒的軟件比一個(gè)需要安裝1分鐘的軟件有更強(qiáng)的競(jìng)爭(zhēng)力.
3.軟件的執(zhí)行速度和計(jì)算機(jī)資源的占用率,這一點(diǎn)在計(jì)算機(jī)不斷增強(qiáng)的硬件性能上看來,被弱化了一些,但是在個(gè)人桌面應(yīng)用中,往往會(huì)打開很多個(gè)其他應(yīng)用,更少的計(jì)算機(jī)資源占用會(huì)使產(chǎn)品獲得更強(qiáng)的競(jìng)爭(zhēng)力.Java產(chǎn)品總是要占用大概80mb的內(nèi)存.
4.Java對(duì)于復(fù)雜的高性能的圖像編程來說,支持比C++少很多
有一些Java的圖形游戲Demo,這些產(chǎn)品看起來更像是在表達(dá)一種"我也能"\"我也可以做游戲"這樣的聲音.而往往看到這些Demo的初學(xué)者就會(huì)產(chǎn)生錯(cuò)覺.如果你了解了osg,你或許就會(huì)覺得Java圖形編程與c++的差距.
關(guān)于JavaFX
JavaFX前途未卜,Oracle以后是否會(huì)繼續(xù)推行這是不可能從任何人發(fā)表的任何言論里得出結(jié)果的.但就目前來看,JavaFX還存在很多問題,它支持的IDE很少,幾乎只有NetBeans它的Eclipse插件就有很多bug.當(dāng)然這里NetBeans的用戶和text的用戶不用來拍磚.我想說的只是一個(gè)事實(shí)JavaFX如果連Eclipse插件都不能提供,那它必然會(huì)失去很多用戶,而且Eclipse插件的issue已經(jīng)提出了很長(zhǎng)時(shí)間,卻沒有人在修正.從對(duì)JavaFX當(dāng)前的投入來看,JavaFX的前景明顯要比Adobe的Flex和MS的silverlight要更加另人擔(dān)心.MS的 Silverlight有一個(gè)很好的Eclipse插件.
關(guān)于Flex/JavaFX/Silverlight
我覺得RIA***的問題還是安全性,因?yàn)榘踩缘囊蟊容^高,所以它們還是比桌面應(yīng)用多了很多限制,比如cross domain access.這一點(diǎn)對(duì)于P2P或者調(diào)用第三方組件來說就是很致命的弱點(diǎn).不過這不是很多RIA應(yīng)用都需要的特性.如果你的應(yīng)用需要這樣的特性,你就不能選擇RIA.
【編輯推薦】