熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java用於開發桌面應用的優劣分析

2013-11-23 18:43:26  來源: Java核心技術 

  我承認即使在JavaFX出現之前Java已經在桌面領域做出了一些重大的提升比如Swing中的提升我們現在也有了很棒的OpenGLDirectX也有了很大的提升啟動時間也顯著提升了沒錯Java在去年做了很多顯著而有效的工作

  然而不得不說的是除此之外其他的仍是一塌糊塗比如Java sound實際上並不好用被遺棄的JavaD又如何呢?最近甚至JOGL也被Sun遺棄包括很久之前的SwingLabJAI(用作圖片處理)多年未真正升級過看起來也沒有在什麼地方得到利用它迫切需要性能上的巨大提升以適應來臨的多核GPU時代所有這些應用於桌面領域的Java產品不是被遺棄就是成為雞肋

  而且很關鍵一點是盡管我們可以用Java創建出桌面應用但只要我們想開發真正的富桌面應用我們就無法真正使用Java而使用JNIC/C++和平台依賴的libraries等

  使用Java構建桌面應用更多的是困難和麻煩比如即便想要在Java應用內創建一個高效的優良的web浏覽器都是一件難事而且沒有用Java編寫的圖片處理應用沒有一個純粹的Java web浏覽器沒有數字音頻應用沒有D建模器沒有矢量圖形編輯器沒有先進的光柵編輯器Java今日在桌面端所到達的高度只能滿足那些服務器開發者因為他們只需要在遠程服務時使用電腦桌面上的簡單界面

  過去我們一直說這是因為Java太慢無法在一個慢的平台上開發出如此復雜的應用但我們這樣說是錯的原因有兩點Java從來就沒有慢過即便有些部分曾經慢過但沒有人懷疑當它需要被用到服務器端時它會迅速地得到提升比如JITsGCs等這一點也正是Java語言卓越的地方由於Java平台的天然特性Java應用總是第一個利用市場上新硬件和新操作系統的應用一旦JVM被配置到了一個新系統中幾乎不需要任何編輯和調試Java應用就可以在上面全速運行比如你在位的操作系統上開發了一個應用它就可以全速運行在Windows 或者Solaris的位JVM上所以所謂的Java太慢根本不能成為Java在桌面端碌碌無為的借口

  而且如果你是一個終端用戶你甚至不需要從網站上重新下載應用這意味著不僅終端用戶和開發者得到了速度提升甚至應用的執行性能的前邊也得到了速度提升今天JIT在runtime為本地操作優化代碼已經做得很棒了這意味著你可以挖掘出你運行的硬件的全部的能力這是一個靜態編譯語言永遠也無法競爭過的性能只是這個性能如果可以運用到桌面端和游戲領域就好了

  我們總是說由於Sun總是一個服務器端公司的原因Java在桌面端一直沒有真正的機會而Oracle的收購讓這種境況看起來不會有什麼改變希望這不要再繼續下去為了SunOracle和Java自身的利益Oracle內部的知名人士應該提醒公司來讓他們知道如果缺乏了在桌面端的能力和效率必將影響Java的普及率甚至它在服務器端的占有率

  我們一直以來習慣著Sun主要提供服務器端服務因而想象著未來更多的處理能力還是出現在服務器端而客戶端不過是連接服務器的簡單服務這種情況已被證明是絕對錯誤的因為未來的桌面應用將服務應用與硬件所有的運算能力相結合大量的數據和解碼聲音圖像視頻被開發者處理而且用並行編程的方式來實現既保證了豐富的性能又保證了速度對開發者來說未來的服務既需要他們在客戶端處理也需要在服務器端處理執行復雜的搜索圖像視頻以及虛擬D環境需要服務器端的技術而遠程服務如醫學分析遠程教育和遠程會議等則需要客戶端能力

  只是令我們感到失望的是歷史又一次地重復了因為至今Java中還沒有什麼大的動作

  armin Ehrenreich 在回復中說道說的好我完全認同

  確實迫切需要跨平台的桌面應用技術而且我不認為C++結合Qt是個好的選擇你說闡述的問題之所以沒有引起很多的共鳴我想是文化上的問題許多Java社區的人們包括Sun內部的負責人無法理解你所說的所以我斷言Oracle也不會對Java做出什麼大的改變

  客戶端現在基本上被微軟和Apple包攬到Cocoa論壇中會發現他們談論的是GUI的可用性響應性終端戶如何處理桌面應用等而我們的論壇呢大部分人認為應用的未來在服務器端這就是文化上的差異

  但是桌面技術需要做很多工作Swing很慢很慢地進化連同Netbeans平台JavaD JOGL等應用勉強成為了桌面端的一個選擇但Sun置此境遇於不顧只是模仿Flash發布了一款新的腳本語言但是那些API只有使用JavaFX才可用

  Jeff Martin回復道正確的觀點但我有一點不同Sun真正的問題是他應該吃自己的飯用自己的力量來用Java寫一些實在的桌面應用這可以證明他們關於Java在桌面端的承諾證明他們可以寫出應用提升框架和工具我不認為另一個框架會幫助Java

  James Sugrue回復道我同意作者觀點我也很支持桌面端開發看看現在處於開發中的Eclipse e中的一些項目它們為桌面和浏覽器提供了一個解決方案所以我想還是有一些希望的但我認為我們不需要過分聚焦於桌面端JavaFX是正確方向上的一個邁進只是無法在Swing和JavaD/JOGL中看到應用提升

  Osvaldo Doederlein回復道我認為JOGL的支持沒有那麼糟糕畢竟它是JavaFX Desktop Runtime的一個依賴實際上我們可以寫一個非JavaFX的小程序而且不需要請求本地代碼的許可性就可以配置

  編輯自


From:http://tw.wingwit.com/Article/program/Java/hx/201311/25625.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.