JAVA、C#語言之爭


Java和.Net選哪個?這是每一個菜鳥都必須要面對的問題。Java 可能是大多數程序員學習的第一個面向對象的編程語言。它最大的優勢就是跨平臺性。其實,在國內小型機當道的時代,Java 是唯一可以選擇的開發語言,因爲.net 根本不能在AIX 上運行。那麼爲什麼國內以前會流行小機呢?這主要是中國人多,所以國內的網站對併發要求很高,所以很難用X86架構來支持高併發。其實,真正的原因是在國內以前軟件開發大多是給企業做項目,而不是真正意義的軟件公司爲自己開發產品,在一個軟件項目中,其實軟件部分是很難賺錢的,真正的油水則是來自中間件和硬件廠商的回扣,所以軟件公司也就不願意做性能優化這種費力不討好的事,而很樂於推銷小型機,Oracle 這類油水很大的解決方案了。

而這幾年,當我們國內的互聯網企業開始崛起,開始開發自己的產品的時候,我們看到的則是像淘寶的去IOE ,被業界推崇,其實這並不是敏捷開發,雲計算給我們帶來了什麼,至少我是這麼認爲的。

回到語言的話題,回到10幾年前,那時候的微軟數據庫是個什麼樣子呢?問稍微老一點的管理員,特別是現在搞sybase的,他們一定會告訴你,微軟的產品就是迪斯尼樂園。其實,十幾年過去了,現在微軟的數據庫已經是今非昔比了。現在通過微軟開發體系,是可以勝任大規模系統的開發的。

那麼到底是Java 還是C#呢?其實從項目的角度,這並不重要。而對我們程序員來說則是天大的事。因爲我們要靠他們吃飯啊。我個人認爲,單從語言角度,C#優於JAVA是不爭的事實。可以說微軟在.Net 2.0 就已經完全達到了JAVA的高度,而後面的版本則是對JAVA的超越。

微軟發展一直是本着“跟哥走,有肉吃的”節奏,隨着版本的升級,微軟爲程序員提供了一切開發需要的包,程序員只要學會用它們就好了。在這種跟個走的環境下,我們看大多數基於.Net 的項目都是用微軟的解決方案,而不是第三方的。同時,微軟又是一個及其“好學”的公司,業界的新的工具,它都會很有心的爲我們“抄”過來。

而JAVA的發展在SUN的帶領下看似氣勢恢宏,實則畏首畏尾。這就促成了很多JAVA系廠商不得不自己拉山頭了。這就造成了第三方框架漫天飛的局面。同時,由於JAVA語言本身進化緩慢,但是JVM相對開放,基於JVM的語言也就如雨後春筍一樣了。

這樣的發展使跟着JAVA走的程序員必須要花大量時間學習各種框架。可以說,不會使用一定數量框架的JAVA程序員自己都不好意思說自己會JAVA。同時,由於這些框架都是拉山頭開發出來的,直接造成了很大的重複性,這就使程序員不但學習量大增,而且還要自己甄別框架的優劣。同時,大多數程序員可能還要在學習至少一門基於JVM的語言。還有選擇和使用一個IDE, 這也就產生了Eclipse 與IntelliJ 之爭,選擇一個編譯腳本,這也就產生了Maven與Gradle之爭。搞Java 的人,我想都經歷過配置開發環境的噩夢吧。

相比起來,微軟在這些方面則是人性了很多。雖然Visual studio真的很大,但是裝完了也就可以開發了。但是,微軟的模式也不是沒有問題,那就是微軟的創新實在是太快了,跟這個哥走,實在有點累。且不說ASP到現在已經多少個版本了,也不說爲什麼.NET REMOTING剛看懂,它又搞了WCF還有後面的Web API ,就看一個sliverlight,說不要就不要了。可能是自己太笨了,要跟上微軟的節奏,還真是挺累的。

那麼作爲屌絲程序員的我們,到底應該怎麼辦呢?其實我也不知道,呵呵。這幾年,至少我是這麼摸索的。首先,從自己內心出發,不參與語言之爭,不要道聽途說。新的程序員很容易挺老程序員的一句話就建立一個錯誤的觀念。其實,作爲新手,我們有的就是精力和時間,大可不必事事都請教,有些時候,撞了南牆纔會記得清楚,學得明白。

第二,儘量可以找一個什麼技術都可以接觸到的公司。很多程序員工作幾年之後就會鑽進一個很小的技術領域,其實這樣做對自己的職業發展是沒有好處的。在軟件開發這個日新月異的行業中,其實只有很少的幾個技術是可以吃一輩子的,既然做程序員,就要認需要活到老學到老的命。那麼,爲什麼要找什麼技術都可以接觸的公司呢?我們自己在週末自己學爲什麼不行呢?這是因爲只有在工作中應用了的技術,我們纔可以說自己懂了,自己會了。在週末隨便敲的例子很難使我們達到學以致用的程度。

最後祝每個程序員都找到自己喜歡的語言:)。

P.S. 上面提到可以吃一輩子的技術,個人認爲在這個排行榜中第一的就是Office了。做好PPT,你就是老闆,精通Excel,你就可以在很多需要數據分析的行業成爲大牛,熟練Access,你就是大多數人眼中最牛的DBA。只可惜自己對Office真的不是很感冒,所以只能做個屌絲程序員了。。。不過把Office推薦給希望找到一個可以一招鮮吃遍天的程序員。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章