程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java和.NET繼續爭斗的四大相關問題

Java和.NET繼續爭斗的四大相關問題

編輯:關於JAVA

 在本篇文章中,著名程序員Justin James討論了Java的未來,以及Java與.NET(.Net培訓 )的開發成本對比,和Java是否能夠取代.Net。Justin在文中總結了四大要點,重點關注了兩個運行時在性能和成本上的異同之處。

  1、Java SE 7遭遇.Net CLR會發生什麼?

  從Java SE 7的功能列表中可以看出,它相比以前版本有了長足提高。那麼,它是一個游戲改變者嗎?我認為不會是這樣。在過去數年中,JVM和.NET CLR都發生了眾多改進;過去那些只有技術非常高超的程序員才能完成的許多事情,現在借助於JVM和.Net CLR的增強功能,普通程序員也能夠做得到。

  盡管JVM和.NET CLR並非在同一個時間實現相同的想法,但是如果在一方出現了某個好的想法,另一方也會迅速跟進,這一點不僅僅體現在運行時層面上。舉例來說,對於Java來說,Hibernate項目取得了巨大成功後,.NET也迅速推出了NHibernate。而.Net的閉包(closures)功能深受眾多開發者的歡迎,Java似乎不久也將實現它們,當然,這是一個語言功能,而非運行時功能。

  Java 7將要有閉包了

  .Net閉包大受好評,Java也將迅速跟進

  2、在可以預見的未來,一個運行時是否會徹底擊敗另一個?

  盡管從技術層面上JVM和.NET CLR非常相似,但它們都有自己的市場,兩者的靈活性都不是很強。如果一個人已經圍繞.NET服務器和IIS創建了他們的基礎架構,他不可能第二天醒來把所有這些遷移到Java,反過來也是這樣。甚至如果一個公司決定切換自己的開發平台,那它可能需要替換整個開發團隊,或者從頭開始對他們進行培訓。即使培訓完成後,在技能上還是存在嚴重的不足;畢竟,一個高級.Net開發者不可能在經過3個月培訓後突然變成一個高級Java開發者。

  另外,公司需要保留現有技術人員來維護已有的代碼。你認為這些員工會坐視他們的職位被取消,或者他們的技能將變得無用或貶值嗎?當然不會。對一個公司來說,完全從Java轉向.NET或完全從.NET轉向Java,都是一種自殺行為。最多是通過一個多年期項目來對員工進行重新教育。自從.NET發布以來,從VB6到.Net的遷移都已經花了8年時間。

  學習.NET的Java程序員

  程序員和項目的轉型需要時間

  3、Java開發的成本是否比.Net開發更具經濟性,如果是這樣,人們是否會轉向Java來節省投資?

  如果你僅僅著眼於工具,我的答案是“既對也錯。”的確,只要你願意,你可以在一個完全開源的組合上運行Java。你可以采取Linux/Tomcat/MySQL/Java組合,或者在服務器方面使用SpringSource組合(51CTO編者注:對於SpringSource服務器組合,有人卻是表示不滿的,可以參考這篇文章),在開發者的計算機上使用Eclipse或NetBeans。但是需要指出的是,無論出於什麼原因,你都不會是開源替代產品的狂熱支持者,我並非說替代產品就不好;如果是那樣的話,與.Net工具相比,Java工具的價格相當,在很多情況下甚至更貴。而且從甲骨文和IBM等公司正在進行的業務來看,很明顯許多公司認為有必要付費購買專有Java工具。就價格而言,在任一指定市場領域,微軟幾乎總是價格最低的企業類廠商。

  另外,你必須考慮到如果沒有切換成本公司將會省下多少錢。一個Visual Studio副本的成本要遠低於一個中等收入開發者的周薪和保險金(51CTO編者注:作者Justin是美國人)。而且同一個開發者學會Java並且達到他擅長.Net的水平,所需要的時間要遠遠大於一周時間。

  出於公平考慮,這種分析也同樣適用於從Java轉向.Net。相比於平台切換的痛苦,開發工具成本實在微不足道。當然也有兩種例外情況。第一種情況是新建公司,那麼不存在遷移成本的問題。在這種情況下,Java依然不具有成本優勢,因為微軟也已經推出了免費版本的Visual Studio(Express版),而且如果你的公司是新創公司的話,通過BizSpark計劃,你可以免費獲得三年MSDN和微軟許可,它們還不錯。另外一種例外情況是,一個公司具有非常高的服務器-開發者比例,例如谷歌或雅虎。此類公司可能有許多開發者研發運行在數千台服務器上的一個應用。在這種情況下,開發者工具並非節省成本的主要因素,但服務器空間是。對於面臨這種情形的公司,Java(和其它開源技術)可以具有一個決定性的成本優勢。

  4、一個Java開發者需要了解多少腳本語言,才能實現.Net中的效率?

  首先,你是否在進行web開發工作?如果是這樣,你可能需要了解一些Javascript知識,並熟悉相應的框架。對於後端工作來說,知道一門動態語言或腳本語言不是強制性或必需的。盡管如此,在Java領域存在許多此種用途的不錯選擇。對於目前還不是一名Java開發者的人來說,我沒有這方面的任何實際經驗來介紹,但是我聽到很多關於Groovy和Scala不錯評價。如果你希望選擇某些更主流的技術,JRuby和Jython是不錯的選擇。

  性能

  有各種方式提高Java應用的性能

  在過去數年中,JVM已經開始大量支持非Java語言,開發者現在擁有眾多選擇。學會其中一種肯定有助於你成為一個更好的開發者(即便你並不在實際產品項目中使用它們),可以讓你在項目陷入困境時提供另一種方向。

  Java是否會取代.NET?言之尚早。同時.Net也不會消滅Java。兩者都有自己的優勢和劣勢。我認為,你最終選擇它們兩個中的哪一個,這要取決於個人喜好和當地職業機遇。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved