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

Java能夠成為完美的技術平台嗎?

2013-11-23 17:55:38  來源: Javascript 

  前言
  象許多在不斷發展的平台/語言一樣Java讓很多程序員又愛又恨當然當然這不包括那些狂熱的Java愛好者對於他們來說Java比NetLAMP或任何其他語言或平台都要好但是我們還是不得不面對復雜的Swing龐大的EJB規范等對硬件的額外要求以及JME的變化多端的實現方式等等等等拋開以上這些Java的弱點我們可以說Java是一個完美的技術平台那麼Java到底有沒有成為一個完美的技術平台的潛力呢?這篇文章將從兩個方面討論這一主題開始我會詳細的告訴你什麼是完美的技術平台以及為什麼Java平台能夠成為完美的技術平台之後我會偏重於具體的解決方案如何通過設計的優化避免Java平台的弱點
  
  基礎
  首先你為什麼會關心Java是否是一個完美的沉下平台?它現在不是也很好嗎?不不是的我相信在文章結束的時候我將向你展示一些列Java中可修正的缺點解決這些缺點會加快Java平台的發展提高整個開發平台的性能簡而言之它將使Java不管在工業還是商業領域都成為一個實際上的技術標准成為程序員的一個超級語言什麼才是完美的技術平台?在我作進一步說明之前我應該先定義一下我認為的完美的技術標准是什麼簡單的講我認為完美的技術平台應該是這樣一個軟件系統它可以讓新手或高級開發人員都能使用能夠編寫簡單的程序也可以編寫高級的應用它應該能夠運行在所有的硬件平台或操作系統平台上並且應該是本地化的操作或接近本地化的操作
  
  定義這篇文章討論的范圍
  類似這篇文章的主題事先定義一個范圍是很重要的首先我們不討論任何非Java的技術平台你也許會認為這有些太狹隘了我不這麼想這篇文章是要單獨的討論Java平台的各個方面並不是要和其他的語言平台進行比較我的興趣在於那些為了完善Java平台提出的具有建設性意義的觀點如果可能我希望其他技術平台的支持者能夠發表類似的文章提出他們認為最完美的技術平台另外我在這裡還假設Java語言已經是各種技術平台中最佳程序語言並且我也不會討論最新的Java平台JSE盡管在JSE中我可以感覺到其中的一些變化比如標有 keeping up with the Joneses的是把矛頭指向了C#語言一個語言的穩定與否至少需要將近年的不斷驗證才能證明它的最初設計是否是健壯的參數化集合的實用行在JDK中是顯而易見的其中的一些新特性比如autoboxing enumerations和 static imports引起了開發人員的廣泛關注
  
  Java繼承了來自C和C++的健壯行它一開始就被設計為一個面向對象的語言我認為這是一個成為核心語言和優秀平台的關鍵所在當然這並不算什麼先進的思想因為從最早的Eiffel到Smalltalk都是面向對象的語言那麼Java和他們之間有什麼根本的不同嗎?Java和那些比如功能性編程語言象LISPHaskell或象SQL這樣的可以通過語義來執行的語言又有什麼不同嗎?因為我們學習這些語言只需要一本手冊就可以了但別高興的太早如果一個市場上主要的廠商比如SUNHP或微軟想要把這些語言中的一種拿出來並圍繞它開發他們的下一代技術平台你會發現這個語言的不會再進一步更新我喜歡把Java作為一個平台來看待實際上Java作為一種語言來說在Java平台中只是較少的一部分也因此我會在下面介紹作為一個完美的技術平台的重要特征
  
  什麼才是完美的平台
  比較起來對於這個主題來說可以講的很詳細也可以講的很簡短概括我選擇了後者對此有興趣的讀者可能會注意到有關這個主題的詳細討論很多詞匯後面都會有一個ility作為結尾也明白它是ility矩陣(matrix)在我看來作為一個完美的技術平台應該具備這些條件便於開發而且提供多路訪問(詳見下面的討論)
  
  穩定性這體現它應該便於客戶平台的部署還應該是本地化模式的部署操作
  必須具備可靠的性能和可測試性
  基於開放的標准
  
  Java符合這些標准嗎?
  到現在我已經定義了一系列符合完美技術平台的標准和特征讓我們看看Java的成長過程是否符合上述的特征
  
  我不得不痛苦的承認開發Java程序並不容易相對簡單的項目還好但如果項目不斷增長以至於變得越來越復雜就會不斷出現越來越多的問題比如JEE應用就是這樣因此在項目的開發中我程序員需要花更多的時間來跟蹤底層的問題比如類引導(classloading)問題而不是解決實際的業務邏輯問題還有令很多程序院頭疼的EJB(查看我過去的文章To EJB Or Not To EJB?)通常情況下他們都是在清除一系列的警告信息EJB也許想把負責的問題簡單花但是它並沒有更貼近於現實中的持久化問題或業務邏輯的解決方案這還與Java開發工具的不足有關坦率的說微軟的Visual Studio在這方面比Java作的要好Java需要學習
  
  我曾經提出過一個多層次訪問的想法它允許開發人員或者用戶可以工作在Java中的不同層次比如核心開發人員可能使用emacs/vi的方式來以命令行調試器的方式開發和部署以Java為基礎的系統而業務分析師或最終用戶應該能通過使用WYSIWYG這樣的工具來訪問和修改這個系統 Java在這兩方面的開發並不是很容易當然applet和JavaWeb Start技術在這方面提供了一定的幫助當這兩種技術也有自己的不足運行他們必須在客戶端安裝配置JRE Java平台是想當穩定的我已經不記得上一次應為Java本身的bug而給我帶來麻煩是什麼時候了所以如果要作一個企業級應用的話我寧願選擇JEE而不是Net Java在服務器端的應用是足夠穩定和健壯的Swing客戶端的應用表現也不錯但在執行速度方面比起本地的應用要差一些由於對資源限制的原因比如移動電話(或智能終端)在這裡使用Java而不是用本地化的開發工具從實用性角度來說就顯得有些奢侈了附加額外的MIDP比起直接調用本地的應用造成了運行時的性能損失
  
  很明顯Java有來自業界的主要軟件廠商的廣泛支持(除了微軟)比如IBMHPOracle已經把他們自己的技術整合到了Java平台上這對關心Java的人來說是個好消息還有更多的組織和團體化大量的精力不斷的晚上Java他們希望看到Java在移動設備PC服務器等各個領域不斷的成長進步
  
  優點
  Java的優勢在哪裡?
  平台支持JSDK已經可以運行在任何的操作系統和硬件平台上從金融機構到娛樂設施從科學研究到家用電腦都可以使用Java Java語言規范和Java運行時規范的明確區分允許研究人員可以通過運行一個編譯器來產生程序語言的映射而不必非要使用Java來編譯二進制碼――也就是說它可以運行在任何的虛擬機(VM)上這一點在我後面要提到的Java戰略的改變非常重要 Java是當今企業級計算和應用中相當成熟和穩定的平台微軟仍然在不斷的改進他們的Net而且可能最後會象Java一樣好或者比Java好要好(但這只局限在Windows平台上)但現在還作不到另外還有另一個競爭激烈的領域那就是移動設備盡管在前面我們提到過Java在節省設備資源方面相對較差但是不可否認在這個領域它也占據著領導地位 Java在學術界也獲得了強有力的支持如果你在大學學習你會發現Java已經成為多數科學研究和計算使用的首選語言在大學中有越來越多的人在使用Java語言越來越多的尖端學術研究完全使用Java語言各個行業的公司都有很多的Java程序員在開發他們的項目
  
  缺點
  現在我們來看看Java的缺點
  一個開發組織創建新的框架和組件庫幾乎總是在存在優點的同時也存在著不足一個優秀的組件技術總是在不同的開發人員和組織間相互競爭和促進中成長起來的但是在這一過程中卻使得用戶(這裡特指開發人員)非常困惑盡管Sun一直在忙於應付但是就到底是使用JDO還是EJB更好一直存在著爭論的確我們必須確定把哪一個繼續發展下去現在我們能作的就是把這一個想法簡單的提交到JCP組織比如如果你是一個JEE設計師你能%確定當前哪一種才是完美的解決方案嗎?我不能但我的觀點是注重實際的方案就是完美的方案
  現在有一種觀點認為Java過於復雜有誰能完全了解Java從服務器到PDA各個方面的所有知識嗎?作為一個博大精深的語言Java在人們生活的不同領域都無處不在這不可避免的帶來了它的復雜性但同時這也更值得開發人員在其平台上使用Java來開發不同的應用Sun的一句明言就是我們已經給了你一個非常棒的核心技術現在你可以用它來創建任何開發工具或健壯的產品其中非常活躍的Jini/JavaSpaces就是一個例子Sun自己把這一技術作為一個學術研究的工具它幾乎沒有什麼技術缺陷實際上基於JavaSpaces的編程模型也許是最簡單最強大的技術之一
  Windows 家族集成了很多繁瑣的分布式客戶端平台除非與Java捆綁否則Windows技術永遠無法避免這些缺點當然隨著Net的崛起Java 在客戶端編程(thickclient)方面將失去了很多優勢
  我不認為Sun為Java投入了足夠的財力這給Java帶來了潛在的隱患那麼為什麼Sun應該繼續對Java平台投資呢?我更樂意看到Sun通過大量的財力扮演一個善意的獨裁者它將通過與象BEAIBMHP等這樣的公司而不是和開發人員或最終用戶一起合作來指導Java的未來我擔心來自Sun對Java的動搖Sun公司的健壯穩定的發展預示著Java的不斷完善如果Sun出了問題那麼Java的發展和完善也將受到影響下面的圖示顯示了影響Java技術平台的幾個方面
  圖顯示了高層的理想化的Java技術平台其中由Sun及其合作伙伴控制的技術顯示為橙色其他不屬於Sun的為綠色
  
 

  Java有哪些缺點
  無疑我承認Java平台是有缺陷的這必須指出下面幾節將詳細講述這些問題和戰略及戰術上的建議
From:http://tw.wingwit.com/Article/program/Java/Javascript/201311/25369.html
  • 上一篇文章:

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