Tuesday, May 01, 2007

Java or .NET?

這個問題從我在唸書的時候就常常被問到。年輕的時候比較衝動,往往還會因為這種問題和別人在BBS上大打筆仗。進入職場之後,我理所當然的以Java Solution作為主要的職業選擇;當然,實際的工作之後,對於所謂的Java VS .NET的問題,我有了更寬廣的理解空間。

Java 和 .NET並不是天堂和地獄的差別。這主要是世界觀的差別。在Java的生態體系當中,你擁有的是選擇;在微軟的生態體系當中,你擁有的是統一的秩序。從企業IT架構的角度來看,選擇Java 或者 .NET的差異主要在於,你怎麼看待你企業IT所扮演的角色。IT對你的企業,到底是一種消耗品,還是一種競爭優勢?這其實是一個很Tricky,也很少人會老實作答的問題。一般來說,願意承認自己下班回家會看A片的人應該比願意承認自己是消耗品的人來得多;但事實上許多目前的IT不可諱言的是一種消耗。如果你維護的系統每天要改好幾次table schema, column name, source code... 你認為這是不是一種消耗性行為?

我想這是為什麼Google這種以技術優勢作為老本的公司會選擇C, C++, Java等技術來作為他們本身的技術架構。以Google來說,他們的競爭優勢是技術,所以需要的是能夠量身訂做的技術作為基礎;在這個部分,.NET的許多假設和限制會讓它無法被採用。但是.NET搭配上微軟的工具,的確讓小型AP的量產變成可能。在這方面,Java真是望塵莫及。

所以要想清楚到底要的是什麼,然後作相對應的選擇。


Powered by ScribeFire.

No comments: