一個語言的興盛,是有很多原因的,說 .NET ,就不得不拿 java 的情況與之對比。(不好意思,我邀請了大姨媽鎮樓)
.NET 在互聯網領域挺邊緣化了,越來越多的互聯網公司做大后,都從 java 轉向了 .NET,根本原因,是過去的時間里微軟太封閉,而 java 開放,大的互聯網巨頭,都擁抱 java,從而拉動了 java 的整個生態鏈,后面一系列的演進,追其本源其實都和這個原因有關系...
BAT,Google 這種互聯網公司,我們不要去說吧,他們有他們的選擇,而對于新興的互聯網公司來說,快和低成本是首要的,會有一小部分的創業公司會在初期就考慮未來的技術延展性,但那畢竟是少數。
.NET 平臺在一開始的時候,是符合快和低成本的,所以很多互聯網公司還沒變龐大之前,是用的 .NET 平臺,后來呢,一方面服務器的成本越來越高,另一方面 .NET 在互聯網領域的技術生態遠不如 java 好,再加上從大型互聯網公司出來的 java 架構師會很多,他們招幾個就可以有信心了支撐未來的海量訪問和數據了,.NET 在這里的人才儲備相對要欠缺很多,最終他們轉向了 java...
現在 .NET 開源了,跨平臺了,.NET 能拾回失去的戰場嗎?
我認為是可以的,快速開發和較低的人員成本是 .NET 的優勢(VS 社區版已經免費了,大家應該都知道了吧?)。現在,.NET 的劣勢,也正在被一點點的填補,社區的力量會一點點的興起,很多被互聯網使用的開源技術(如 Lucene、Hadoop),只有 java 和 .NET 版本,java 的要偏多,但 .NET 相較其它語言來說,也絕對不少,由于這兩個平臺有巨大的技術紅利和勢能優勢,對于互聯網創業公司來說,只能是在這兩種二選其一。
因此,.NET 將來一段時間里主要的瓶頸在于符合這個時代互聯網公司的開源技術的多少和人才的技術儲備,對此除了等待,我們可以更加樂觀的看待這件事,是的,java 獨有 Hadoop ,獨有 Cassandra,只是誰會把 Hadoop 直接 build 到業務系統里呢,通常都是放到專門的 Server 上,然后提供給外部 API 。
MongoDB、Redis、Hadoop、Java 這些技術,大型互聯網公司都是技術混搭著用的,所以并不是因為互聯網公司需要某種技術,這種技術只有 java 上有,就必須將整個系統平臺都構建在 java 之上的,這并不存在排他性,所以,我們對此劣勢不用悲觀。
微軟官方的 .NET 跨平臺,2016 第一季度就要 Release 了,微軟雖然 Windows 系統都是要等到 SP1 的時候才穩定, 但從 .NET 歷代更新來看,都是挺靠譜的,所以 .NET 正式跨平臺后,我還是比較放心的,不過因為這次改動巨大,所以我覺得要 100% 靠譜的話就是等 Update 1,這會很快。
最后,.NET 的變化,是格局的變化,跨平臺也好,開源也好,VS 免費也好,都是為了爭格局。
選擇語言,是選擇它背后的格局。
.NET 之前的格局太小了!
園友提醒我,不要局限在一個格子里面。
說的,我也提醒自己,畢竟世界那么大。
只不過,做過一段時間 java,工作的時候幸福指數直線降低...
寫 C# 的時候,是最幸福的時候,這個跟個人有關,畢竟工作是要干很久的事情,我希望干的更開心一點。
我不會把技術作為自己一輩子的工作目的,我會做技術很久,很久之后,我會把它作為個人的一項愛好,去做研究。
謝謝大家的提點,思考上有什么不足,還期望指出。