通過Stack Overflow分析編程語言大勢

jopen 10年前發布 | 8K 次閱讀 編程語言

Stack Overflow 是世界各地開發者交流技術的地方,不但有各路高手回答問題分享經驗,而且還提供對所有帖子的檢索,絕對是一個知識寶庫。每每看到別人動輒幾萬而我剛剛過千 的聲望,總希望投資一個有潛力的編程語言方便混分。心動不如行動,讓我們借助 Power BI 分析一下。

        思路很簡單,只要對 Stack Overflow 帖子進行統計,一定能夠找到一些端倪,能夠讓我們一窺編程的大勢走向。比如,Stack Overflow 本身是基于 C# 以及 SQL Server 開發運營的,這點讓許多 Java 粉絲扼腕。那么到底是 C# 還是 Java 在 Stack Overflow 上更火爆呢?好在 Stack Overflow 允許用戶對帖子上打的標簽,我們只需要累加一下即可。

        首先建立數據模型。在這里可 以下載到 Stack Overflow 往年的帖子,解壓縮之后是一個 26GB 的 xml 文件。這個文件是由過往所有的帖子組成,每個帖子還有具體的時間、標題、標簽、正文、評論等等。可惜 Power Query 不能很好地以流模式處理這個 xml 文件,直接導入將會導致內存不夠的異常,囧。

        為今之計,只有通過代碼簡化這個 xml 了:

  1. 我們關心的只是時間和標簽之間的關聯,其他信息完全可以跳過。
  2. 由于時間和標簽有相當的重復,對時間和標簽進行范式化便可以大大節約空間。簡而言之,就是用字典對時間和標簽建立序列號到字符串的映射,時間和標簽的關系是建立在序列號之上的。
  3. </ol>

            很快就可以用 C# 實現以上需求,源代碼可以在 https://github.com/qisamuelzhang/soanalytics 找到。第一次寫 C# 代碼,特此感謝 Ben 同學的代碼審閱。

            程序將會生成三個文件:Tags 是標簽字典,Times 是時間字典,而 Posts 是標簽序列號到時間序列號的映射,三個文件合起來不過 192MB,對于 Power BI 就是小菜一碟。分別導入這三個文件,建立數據模型如下:

    通過Stack Overflow分析編程語言大勢

            現在可以顯示結果了!從 2008 年至今,C#以微弱優勢力壓 Java 成為狀元,相關的 ASP .Net、.Net 以及 SQL Server 分列 12、16 以及 21 位。看樣子 C# 在企業軟件開發領域仍然舉足輕重。榜眼 Java 實力不俗,不過只有相關的 Android 進入前 20,貌似大家都拿 Java 搞 Android 了?探花是這幾年高調奢華的 JavaScript,相關的 jQuery、HTML、CSS、Ajax 分列6、9、13、22,潛力巨大。移動設備開發方面,Android、iOS、iPhone、Objective C 分5、11、15、17 位。其他上榜的還有 PHP、Python 以及 Ruby 和 RoR,輕量級的網絡應用開發語言。總體而言,網絡應用以及移動開發是 Stack Overflow 帖子的核心,Cloud First Mobile First 的口號與大勢還是很契合的,我軟威武!

    通過Stack Overflow分析編程語言大勢

            下圖統計了發帖的時間,可以看出這幾年 Stack Overflow 的發展還是比較迅猛的。同時,開發者們都是相當勤奮的,每年只有圣誕節前后有個巨大的滑落稍事休息,其他時候都是生命不息編碼不止:

    通過Stack Overflow分析編程語言大勢

            除了簡單的趨勢,我們還可以通過 Power Pivot 的 measure 功能對比標簽個數。比如可以定義 Java 標簽個數如下:

    Count of Java:=COUNTROWS(FILTER(Posts, RELATED(Tags[Tag])="java"))

            這樣我們可以進行 Java 與 C# 對比,如下。雖然 C# 總數仍然占優,但是 Java 在這幾年反超了 C# 而且優勢在繼續擴大。當然,其中的主要原因之一還是 Android 的火爆:

    通過Stack Overflow分析編程語言大勢

            iOS 與 Android 相比總量還是有差距,不過漲勢相當(咦,Windows Phone 去哪兒了):

    通過Stack Overflow分析編程語言大勢

            最后看一下 Hadoop。雖然總數不高,但是漲幅迅猛,絕對是潛力股:

    通過Stack Overflow分析編程語言大勢

            你決定好了如何投資了嗎?

            Excel 文件可以從這里下載。

    來自: qizh.me
     本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
     轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
     本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!