012年8月的編程語言排行榜出來了,CSDN特別的提到了C#腫麼了?以是讓我有了寫這往篇文章的打算。
開始寫這篇文章前,我有一個推測:“微軟公司的所有非標准化開發語言在最近2-3年內的占編程語言總量變化不大。非標准語言指:VB,VB.NET和C#“。
推測的基准是:整個IT行業中Windows平台應用的總容量沒有較大的變化(原因後談)。為了驗證這個判斷,我決定先把結論寫下來,再來統計最近2-3年內微軟非標准語言在排行榜的總量。
好的,一個小時後完成的統計圖(統計標准是CNBlog上的新聞):
微軟公司的所有非標准化開發語言在12.16%這個值左右浮動,沒有大起大落。我看來說對了。
C#的浮動平均值是6.43%,VB是5.34%,這從2010-1-1到今天2012-8-17看這些數據非常有說服力。
在統計過程中向Excel填寫數據時,我突然有種感覺:“C#是VB的替代者嗎”?因為這兩者的數據大部份情況表現為此消彼長,很少一起增大或同時減小。
因為以前沒有用過VB,也就沒有關心過VB在排行榜上位置。但一填數據發現VB居然經常前6,能排那麼高!以是我做了一張圖,來幫助我看看C#是不是搶了VB的飯碗。
看起來還真是有點像。C#上升VB就下降。難道真的只是很巧?
以是我加入了C,C++,Java和Objective-C。得到下面這張圖:
這些曲線和C#很難看出關系,但肯定不會是C#份額提高,它們就下降或反之,且它們之間也沒有像C#和VB這麼明顯的關系。
為了驗證這個想法,我把http://www.tiobe.com/上從2002年到2012年的VB, C#和Delphi圖找了出來,然後以C#的圖為准大概換算了VB和Delphi圖片高度相對C#圖片高度,定位了幾個基准點後在PhotoShop中拼合了這張圖:
紅色:C#, 藍色:VB, 綠色:Delphi
我不知道是我的想法有問題嗎?但真的如果這張圖問題不大的話,則很有可能C#取得的成績之差遠遠超出我和絕大部份人的想像,或是換言之:
C#主要是從WinForm和IIS上接手了VB?!
IIS上接手VB是指從ASP到ASP.NET。
最後以個人的觀點談談:C#怎麼了?( 老婆已經在施放破膽怒吼了)
1、這麼多年來,Windows平台上的各種應用,開發語言已經完成了和軟件開發公司,行業(使用軟件的客戶)的分類綁定,其變化發展趨於平緩。這是C#雖然優秀,但已經不可能再像15年前那樣通過語言特性吸引到大量的開發人員。所謂時過景遷,正是如此。
2、做為軟件開發公司來說一般都是從某個行業開始做精做大,且一個軟件系統在現在可能包含了多種軟硬件設備且非單一語言開發。無論從知識積累還是成本考慮,換語言的成本已經越來越高。
3、做為一種編程語言,其本身不可能取得革命性突破時,那麼它的發展就只能完全依賴於這個語言的容身平台。但如果這個平台本身就已經到達了極限,那麼它上面的編程語言發展的局限性就不可避免。這個論斷可有如下證明:
3.1、程序語言用於解決軟件系統的復雜度來說本質是個低層次的東西.10年前的開發語言和現在的語言對系統復雜度的改善沒有帶來本質區別。
3.2、Objective-C隨著iPhone用了3年不到點的時間沖上了排行榜的第三名,所占比例最高為9.54%,但C#用了10年卻重未超過9%。說明了平台的推廣和應用在根本上決定了本平台所屬開發語言的前途。
3.3、3.2反證了PC上Windows平台的應用已經到達了某種意義上的極限,這才是C#的真正瓶頸。這也可能是最近微軟的WP系列,Surface平板動作提速的真正原因。
最後:個人而言很喜歡C#語言,雖然我認同語言在軟件工程的上局限性,但寫起來舒服這是實實在在的東西。可這次統計卻意外的拋給了我一個極大的困惑:“C#主要是接手了VB?!”有人能給我一個更好的答案嗎?