這么優秀的語言為什么不流行?
C#為什么不流行?
說到底這個鍋該鮑爾默來背,他差點都把比爾蓋茨一手打下的微軟江山給敗光了,更別說一個C#了。C#能做的JAVA基本都能做,JAVA不能做的有其他語言比C#做得更好,然后你的開源和跨平臺還姍姍來遲,C#拿什么跟JAVA斗?
行業有個笑話,.NET最厲害的地方是跨平臺,但是.NET最大的笑話也是跨平臺。除了C++之外,能在.NET上運行的編程語言,是唯一一個能做到在所有平臺上都能運行的編程語言,能把桌面MacOS、Linux、Windows,移動Android、iOS、WP(假設這玩意兒還在)全部跨完。不過遺憾的是,理想與現實總是殘酷的,理論上是可以跨平臺的,不過遺憾的是這么多年了微軟一直都沒跨出去。
這些年C#過得其實還挺憋屈的,前面的C/C++、JAVA交替做老大,兩個老前輩C、C++時而來個青春走一回、容光煥發的,PHP、Python也是時常爆發,Go語言這個年輕人也是越來越強大,都實現自舉了,可是C#呢打不過老年人,也打不過年輕人,其實還蠻慘的。
C#也不是一無是處Windows應用程序,現在很多都是C#開發的,MSDN、SQL Server Management Studio、Bing的很多服務,也都是用C#開發的,現在office 365、Windows、Visual Studio也用了一些C#開發,C#現在還是Unity開發游戲的主要腳本語言。
微軟自己的產品用C#自然是無可厚非,還有很多非微軟網站也是用C#開發的。程序員問答網站StackOverflow、國內著名的技術博客網站博客園、國內程序員社區CSDN、開源中國,都是用C#開發的。以前當當、京東的核心技術棧也都是C#,不過后來才轉向了JAVA技術棧。
C#其實能做的事情還蠻多的,Windows桌面應用開發,Web應用,也可以用來做移動開發,不過做得都比較差強人意。做桌面開發弄不過C++、現在甚至連Electron都弄不過了,除了一些B端應用,大家基本都不會選C#,Web應用方面弄不過JAVA和PHP,移動方面弄不過JAVA和swift,然后大企業也都有自己的技術棧,可是這些技術棧都跟C#無關。
C#、.NET,以及ASP.NET的關系,C#錯過第一波紅利.NET是一個平臺,本身實現的方式當然也是各種各樣的庫,理論上各種各樣的編程語言都可以編譯成其IL,然后在這個平臺上運行,當然這個平臺上面的編程語言很多,C#毫無疑問是這里面最重要的一個。ASP.NET是.NET主要用來做web開發的技術方案,當然這里面主要也是C#作為核心。
JAVA在96年面世,C#則是在2000年面世,JAVA的先發優勢并沒有那么明顯,可是JAVA開源、免費的特點,讓JAVA迅速攻城拔寨。C#有個好父親、還是含著金鑰匙長大的,C#的創造者安德斯·海爾斯伯格是Turbo Pascal編譯器、Delphi的作者,在設計C#之前,已經是計算機工業界最偉大的科學家之一,后來又設計了TypeScript,打早了整個.NET體系。
C#語言設計本身在很多方面都是要超過JAVA的,可是吧微軟早期的策略一直比較保守,不愿意跨平臺,也不愿意開源,盡管安德斯·海爾斯伯格一直在努力推動這件事情,保守的鮑爾默領導下的微軟錯過了C#最好的幾年,可是在這期間JAVA等編程語言不斷攻城拔寨,C#終于還是輸掉了未來。
C#輸掉了移動互聯網,大數據、云計算、AI也全都錯過了編程語言總得要抓住幾個機會才能發展得更好,C#除了抓住了Windows,其余全都沒有抓住,也許這就是命,當然跟微軟自己作也有很大的關系。
你看Android爆發的時候選擇了開源的JAVA,盡管現在Google因為這事兒天天被Oracle惡心;iOS自然不用說,人家先是objective-C、接著是swift,這個微軟沒辦法;到了大數據時代,JAVA和Python又大發威風;云計算來了吧,你看Go語言又逐漸爆發了,越來越多的移動互聯網企業比如字節跳動、B站也都轉向了Go語言,就連Google、百度、騰訊也都在用Go語言;人工智能時代,C/C++做底層,Python用來做上層應用和算法。
你看幾乎每一個重要的技術變革都跟C#無關。在大企業里面微軟自己的核心技術棧都是C++,Google也是C/C++,Facebook是C和PHP,百度是C/PHP/Go,字節跳動是Python/Go,阿里巴巴是JAVA,B站是Go語言。你同樣可以發現,這里面沒有一家企業將C#作為核心技術棧。
C#本來可以有個很好的發展的,可惜微軟自己作死,浪費了C#發展最好的幾年,等到納德拉上臺之后,試圖通過開源來發展C#的時候,已經來不及了。未來看微軟的決心有多大,比如微軟是否愿意將全功能的Visual Studio移植到MacOS平臺,假設微軟帶著Visual Studio威力還是有點大的,不過這也可能反過來威脅到Windows的地位。