在軟體世界裡,Java與.NET無疑是兩個旗鼓相當的對手,一再上演著一出又一出你來我往、拼力爭奪的好戲。在這種爭奪的過程中,有受益者,也有犧牲者。平心靜氣地想一想,微軟和Sun公司都是兵器的製造者,軟體人員才是鬥士,使用者們只好去做受益者或是犧牲品。
真的有那麼淒慘嗎?事實上,和平的曙光已經出現了。
戰爭與和平
很多人認為,Java和.NET不是殊途同歸嗎!為什麼又會烽煙繚繞呢?當然是世界級企業之間的商業競爭使然。這場戰爭常使軟體開發人員陷於進退維穀的境地—Java還是.NET,應該選擇哪一種開發平台?
事實上,不管選擇哪一種平台作為基礎,今後都必須面對Java和.NET共存和互操作的環境。這顯然不是一件容易的事情,不過和平的曙光已經出現了。
Sun與微軟在法律上的大和解算是一道曙光,只是光靠兩家公司之間的一紙法律文書究竟能夠解決多少問題,需要多少時間,這些都很難說。
不過,還有另外一道曙光!一些軟體公司推出的開發工具可以在二者之間架起橋樑。
在這方面,可以留意一下Compuware公司。這家公司的應用開發解決方案倡導應用軟體的完整生命週期管理,以往主要依靠Java技術。
最近,他們特彆強調,把與Java競爭的.NET技術融入到其原有的產品架構之中。在技術上,Compuware的產品可同時支援Java和.NET兩種平台。因此,在Coupuware看來,選擇Java平台還是.NET平台已經不重要了,重要的是你要有一套完善、高效的軟體代碼管理工具。
從.NET入門,用Java提高
新的技術、工具和環境可以讓你免除選擇Java還是.NET的困擾。不過,即便還沒有這些新工具,對於大多數軟體人員來說,仍然可以走出高明的妙棋。
其實,Java和.NET兩者各有所長。作為軟體開發人員,完全可以拋開兩個廠商之間的矛盾與衝突,讓自己成為兩種技術融匯貫通的軟體高手。
開放性是Java生命力的源泉,它不屬於一個單獨的公司,儘管Sun在其中起著關鍵性的作用。眾多世界級的公司,例如IBM、甲骨文、BEA等等,都對Java都給予完全的支援。
出自微軟的.NET最大的特點就是容易上手。花上兩三個月時間,你就可以像模像樣地當軟體工程師了。相比之下,Java就不那麼容易。可是,從軟體技術的深度來看,.NET之中有沒有分散式交易處理,這個問題仍然被許多資深的軟體人員所質疑。
從個人職業發展需求來看,.NET入門那麼容易,很快就會滿大街都是.NET程式員,你還能期望有多高的薪水呢?
企業選擇有不同
從軟體人員個人的角度來看,以.NET入門、以Java提高也許是一種循序漸進的最佳路線。但是從企業的角度來看,選擇Java平台還是.NET平台,卻要用不同的思路來考慮。
從成本效益方面來衡量,.NET平台很容易在短期內以較低的成本開通運行,而且開發、管理人才比較容易找到,費用同樣也比較低。但是隨著經營規模的擴大,業務種類的多樣化,.NET可能就無法勝任了。不過,無論在什麼時候,中小企業畢竟佔據多數,經營規模、業務種類很可能永遠都不會擴大到.NET不可承擔的程度。
對於大型企業來說,情況就複雜多了。在整個企業來看,由於現有規模和業務種類已經十分複雜,而且有多年遺留下來的應用系統,Java平台可能是最適當的選擇。
但是,大型企業中新成立的部門,單獨來看又很可能選擇.NET比較合適。因此,兩種平台並存將是永久的局面,這也就給Compuware、IONA等公司創造了很大的市場空間,也稱為Java和.NET兩大陣營之間的“和事佬”。