國內大型公司,京東,攜程從c &.net轉型java的原因有哪些?

問題:

為什麼京東、攜程放棄了c#&.net而轉型java,這其中的原因究竟有哪些呢?

我想到的原因有以下幾點:

1. 開源語言,免費,相關產品不用花錢,微軟的產品一年會花費多少?

2. 開源插件會很多,可替代性強

3. 移動端火,安卓佔據很大一部分

由於使用Java 語言, 絕大多數程序員在理解了Map/Reduce , 分佈式文件系統在Hadoop中的實現以後, 很快就能編寫處理處理海量數據的程序,從而大大的提升工作效率。

更是 一個名叫Android 的系統橫空出世, 並且隨著移動互聯網的爆發迅速普及, 運行在Android之上的正是Java !

下面就讓我們深入分析一下兩者的優點和缺點。

兩者都有太多的優點和缺點。冒著被噴的風險,簡單的說下吧。

C# .NET的優點

1.從使用者角度來看,語言層面C#是領先Java的。C#最初設計可能借鑑了Java,可謂“青出於藍而勝於藍”吧。這點,C#很多的語法糖就可以說明。至於平臺層面,CLR是否一定優於JVM,這個沒有透徹研究,不敢輕易下結論。

2.微軟擁有號稱世界上最強大的IDE工具VS,編寫C#非常愉快。

3.微軟作為一家商用公司,一貫是比較體貼開發者。制定好各種標準和實現,版本兼容性那些也做的很好。加上2中提到的IDE強大。易用性是更加好的(至少對於初學者是這樣)。同時,微軟的很多技術讓編程的門檻更低(例如早幾年搞的拖控件,綁數據...堪稱是“傻瓜式”的)。在一些小公司,或者一些要求不高的項目,這種開發技術可能比較有優勢。

4.跨平臺遊戲引擎支持。跨平臺APP開發的支持。

誇了那麼多,優點就不往下展開,潑下冷水:

1.由於早年不開源,且捆綁windows緊密,所以跨平臺特性被人詬病。雖然Mono崛起,並且開源了,但是很難改掉人們對微軟“封閉、臃腫、不安全”的印象了。很多人對Mono也是半信半疑。

世上很多事情就是這樣的,也算是一種惡性循環吧

2.開源生態確實不如Java,雖然是在努力追趕,但是很多方面還有很大差距。成熟方案和選擇性相對少。很多框架和組件,是先在Java平臺上出現,後來移植到.NET,更新維護都成問題。很多優秀的中間件、平臺,在開發API的時候,都是優先支持Java、python這些,後支持C#(好在大部分的都還支持C#,要不然真的只能靠微軟官方去造了)

3.招聘難度大。受國內這種不良風氣和環境影響,高端的.NET開發確實特別的少

4.從身邊的例子和一些招聘信息來看,相同工作年限、級別的.net程序員的薪資水平應該是略低於Java的(具體的也要看公司和行業,而且人的技術水平、背景、綜合能力那些不同,很難橫向比較)。這點對一般的開發人員熱情來講是比較有打擊性的。當然,高端的技術人員不管是哪個方向和領域,薪資都不會低的

5.由於目前很多企業和個人對Mono和Linux .NET還是半信半疑甚至毫不知情,所以還是會捆綁在windows上。這就造成了授權費用的風險。還有就是windows自動化運維的缺點了。

(為了避免口水戰,特別說明:上面說到的幾點,有些是客觀存在的事實,有些確實是國內的不良風氣、誤解等造成的惡性循環)

再說說Java的優勢:

1.問世早,跨平臺,很早就佔領了市場,名聲已經在那裡

2.開源生態好,技術方案的可選性多。良性循環

3.成功的案例多。從企業級系統,到大規模互聯網系統,再到現在一直佔主流。最後扯到最近幾年火熱的android、hadoop...可以看出java的地位了

4.由於1,2,3的優點。所以Java高端技術人員相對也會多一些

潑下冷水:

1.語言層面不如後來的C#,很多應用場合下也不如新型的go或者scala之類的

2.易用性不如C#.NET。平臺入門的門檻高一些

(見過一些開發人員,配置個環境變量就摸索了半天。有些被微軟慣壞了的.NET開發人員,再去開發java,框架整合和一大堆的配置文件就可能弄個半死)

3.IDE不如VS好用(也和個人習慣有關,各有千秋吧)

Eclipse的最大優勢在於靈活、可擴展、佔用資源少

而myeclipse貌似很少有人在用了

IDEA還不錯,不過感覺離微軟的VS還是有差距

4.java的母公司sun被Oracle收購後,總讓人感覺不太踏實

5.別總抱怨說微軟的某些體系和標準臃腫,反人類。其實JavaEE體系裡也有很多不成功的設計標準(EJB JPA JSF那些使用並不廣泛),

只不過後來都被輕量級的開源框架取代了

說了那麼多,大概都明白要遷移的理由了。理性的理由大概如下:

1.對Mono和.NET跨平臺不太瞭解,捆綁在windows上面了。因此又擔心IDE和服務器費用問題,又擔心windows的安全性、自動化運維不方便。而Java跨平臺特性早就為人所知。

2.看到.NET開源生態不是很好,Java成功的案例多,開源的方案選擇性更多

3.Java的高端技術大牛好像要容易找一點,至少國內是這樣的(很多大廠用Java,企業會認為Java大牛多)

4.暫時也找不出其他理由了

總結

到這裡,國內大型公司,京東,攜程從c#&.net轉型java的原因有哪些就結束了,,不足之處還望大家多多包涵!!覺得收穫的話可以點個關注收藏轉發一波喔,謝謝大佬們支持。(吹一波,233~~)

下面和大家交流幾點編程的經驗:

1、多寫多敲代碼,好的代碼與紮實的基礎知識一定是實踐出來的

2丶 測試、測試再測試,如果你不徹底測試自己的代碼,那恐怕你開發的就不只是代碼,可能還會聲名狼藉。

3丶 簡化算法,代碼如惡魔,在你完成編碼後,應回頭並且優化它。從長遠來看,這裡或那裡一些的改進,會讓後來的支持人員更加輕鬆。

4、可以去騰訊課堂的圖靈學院學習一下java架構實戰案例,還挺不錯的。

最後,每一位讀到這裡的網友,感謝你們能耐心地看完。希望在成為一名更優秀的Java程序員的道路上,我們可以一起學習、一起進步。

內部交流群469717771 歡迎各位前來交流和分享, 驗證:(009)必過!!

國內大型公司,京東,攜程從c &.net轉型java的原因有哪些?

相關推薦

推薦中...