Posted on 2006-03-29 13:49
killvin 閱讀(1160)
評論(0) 編輯 收藏 所屬分類:
java
[深入的思考] 為什么要采用java這個平臺?
從開發項目的類別角度看java平臺
基于B/S結構的系統,在這個方向上的競爭是激烈的,有專注于此的LAMP(Linux + Apache + Mysql + Php);也有剛剛興起的Rails(Ruby Frameworks)甚至是號稱快速開發的ASP.NET;當然了java在這個領域里的MVC框架數都數不完,比如Struts . Webwork等,然而即便是如此,選擇java作為開發的理由也是不充分的,因為在這個梯隊里java頂多排名最后。
基于C/S結構的系統,在這個方面java顯然沒有考慮周到,面對VB 、DELPHI、vc這些個如狼似虎的快速開發IDE,JAVA實在是顯得異常的淡薄,即使你找到了一個可以匹敵這些個ide的工具,面對第三方的組件又會成為一大障礙,所以java在這個方面又一次的輸了。
從java所強調的特性角度看java平臺
java的重點是業務邏輯!(我以前也是如此堅信不移)可是誰有能夠說別的語言不注重業務邏輯呢,業務邏輯只是一個抽象的概念,java只是依靠ejb提出了業務組件而已,其他的語言在實現業務邏輯的時候也可以包裝成POJO的形式,看來這個觀點也是失敗的。
java強調的是跨平臺的優勢!這可以理解為初級的、商業的、忽悠人的詞匯,面對眾多動態語言如Python,在若干平臺上的表現,java又如何來強調自己這方面的優勢呢?失敗
java支持分布式應用的項目!可笑的言論,分布式根本不是值得炫耀的資本,在java之前的c/s項目中何嘗不是分布式的應用呢?失敗
既然沒有了這些個優勢,我們看看java到底還剩下些什么?對了其實就是應用服務器!然而看過J2EE WITHOUT EJB的讀者肯定知道Spring所希望達到的目的,也就是脫離應用服務器概念上的J2EE體系實現,既然在作者的眼里APPLICATION SERVER只不過是一個忽悠人的詞匯,那么任何項目都選擇java作為開發的依據顯然就是自找苦吃,
那么什么情況下改選擇java作為開發的平臺呢?
<1> 如果你真的遇到了大型的系統開發任務,恭喜你,你終于可以看到分布式對象、集群的優勢了。
<2> 客戶是一個java的忠實fans或者是sun、ibm的金牌合作伙伴之類的,選擇java是不得已的,但記住并不能證明java是最好的實現方式
<3> 如果你只想關心業務邏輯的實現,對于事務、緩存、查找等服務的實現沒有興趣的話,倒是不妨考慮采用ejb的形式,當然前提是你不愿意在尋找合適的替代品的情況下。
<4> 如果項目迫切的尋找某種框架的支持,選擇java就是對的,你有眾多優秀的、免費的、可擴展的、天才的框架可以選擇,更多的時候你是出于尷尬的境地,因為任何一個都讓你心動、而這樣的選擇往往是最痛苦、和快樂的。
正確的選擇
<1>
條件: 如果項目僅僅只是一個小型的網站系統
選擇: LAMP、Rails
<2>
條件: 項目規模中等
并且項目的時間比較緊,
項目可以架構在windows的系統之上,
選擇: .Net? / Delphi
<3>
條件: 大型的系統,有支持分布式對象、集群的要求;或者SUN / IBM的金牌合作伙伴 ; 想要尋找某種優秀的框架來解決問題
選擇: java是不二的選擇,可是我想問一下,在現實中你能遇到這樣的項目嗎?
所以,從實際的角度出發,我們面對的99%可能都是一些符合條件1,2的系統,而選擇java實在是得不償失的。最后以一段Code Complete中的話來作為結束語
每個程序員都有很多的工具,但并不存在任何一個能夠適用于所有工作的工具,因地制宜的選擇正確工具是成為能有效編程的程序員的關鍵。