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