導讀:哪些程式語言被開發者喜歡?哪些讓人討厭?筆者透過在Stack Overflow分析使用者建立的開發者履歷,得出了最不受開發者歡迎的程式語言,還有最受開發者歡迎的技術,以及軟體生態圈的競爭關係。
如果你用 Stack Overflow的話(推薦大家都去用下),在職業生涯頁面上,使用者可以建立自己的開發者履歷,展示自己獲得到成就,推動職業生涯的進展。在充實履歷的過程中,有一個選項,可以讓使用者新增自己希望或不願與之共事的各種技術的標簽。
在之前,衡量一種語言的受歡迎程度,有許多不同的辦法;比如用Stack Overflow上的訪問量或者問題閱讀次數來衡量此類趨勢。但現在,透過讓使用者在自己的簡歷中增加這些標簽,可以準確地知道哪些技術被人們所討厭。
01 程式語言分析
為了衡量每個標簽的兩極分化情況,我們用它出現在使用者討厭串列中的次數和它出現的總次數(無論是喜歡串列還是討厭串列裡)做比較。這樣,50%就意味著一個標簽被放在討厭串列裡的數量和在喜歡串列裡差不多,而1%表示每100人中,99個使用者都喜歡,只有一個不喜歡。
來看看這個經過篩選的程式設計語言串列(不包含Android之類的平臺,也不包含jQuery這類的庫),只選擇在開發者履歷中出現次數超過2000次的語言。
最遭人討厭的語言中,排在第一梯隊的是 Perl、Delphi和VBA。第二梯隊是PHP、Objective-C、Coffeescript和Ruby。
上面這些被標“討厭”次數最少的語言都傾向於是快速增長的語言。從StackOverflow的動態趨勢來分析,R、Python、Typescript、Go以及Rust全部都是快速增長中的語言,而且都是兩極分化最不明顯的語言。類似的,許多評價不太好的語言,比如Perl、Objective-C和Ruby,也恰好在使用者數量減少最快的幾個語言之中。
為了檢驗這一推測,我們將每一種語言的總量、增長量與被人討厭的百分比進行了比較。橘色表示被人討厭的比例最大。
總體上來說,一個語言的增長狀況和它被討厭的比例呈負相關。幾乎所有“討厭率”超過3%的語言,在StackOverflow上的流行程度都是處於負增長之中(除了兩極分化比較嚴重的VBA,居然還保持穩定甚至略微有所增長)。而那些被討厭的最少的語言——R、Rust、Typescript和Kotlin——都處於快速增長是狀態。
唯一一個與眾不同的語言是函式式語言Clojure,幾乎沒有人表示不喜歡它,但它依舊處於快速縮減的狀態。另外一個比較特殊的是MATLAB,雖然沒什麼人表示討厭它,但它的相關流量還是在不斷減少。這可能表明瞭用資料測量人類情感時存在的一個缺陷:任何一個web開發者可能多多少少都會對PHP、C#或Ruby有點意見,但不搞資料分析的人往往沒有什麼理由要對MATLAB有什麼不爽(沒什麼人對R表示“討厭”估計也是類似原因)。
我們不是在斷定這一定有因果關係,也不是說被每個程式員標記成討厭就一定會讓這種語言被拋棄。另一種可能性是,當熱門發現某個語言已經越來越不流行的時候,他們更能無所顧忌地公開表達對這種語言的厭惡。還有一種可想見的狀況是,許多程式員會用這個功能來標記處那些他們曾經用過,但已不再使用的技術。這就導致這樣一種自然的發展規律:被“取代了”的技術終將會越來越多地被人標記為不喜歡。
02 最受討厭/歡迎的技術
上面我們只分析了各種程式語言,沒有涵蓋各種作業系統、平臺和庫。如果把這些都加進去呢?到底誰是從古自今最不受待見的技術?
在這裡,我們看到了許多來自微軟的親切身影,特別是Internet Explorer和Visual Basic,甚至包括“Microsoft”本身(“Apple”也在這個串列中,不過還沒有被人狠的那麼慘)。對於討厭Flash的廣大人民群眾,我們有一個好訊息是,它死的透透的了。同時,許多古老的程式語言,例如COBOL、Fortran和Pascal也在這露了臉。
我們哎將關註點集中在那些始終非常流行的技術上,這些技術幾乎沒有什麼人討厭。(因為被標記為喜歡的標簽實在太多了,我們只統計那些出現10000次以上的技術)。
R成功闖入了我們這張表中,不過它可不是唯一不會引起爭論的資料科學相關技術。機器學習技術總共收穫了兩萬三千多人的喜愛,並且幾乎沒什麼人表示不爽。其他一些標簽,比如Python-3.X、CSS3和HTML5則大概說明瞭開發者很少具體到對某個技術的某個特定版本表示不滿。
03 軟體生態圈的競爭關係
如果某人喜歡某一個特定的標簽,會不會有一些標簽是他們非常討厭的?
透過計算某個特定的喜歡標簽和其他標簽的Phi相關係數,我們可以對這種競爭關係進行分析。
於是這揭示出了軟體生態系統中潛藏的“競爭”關係:Linux和OSX對Windows,Git對SVN,vim對emacs,以及(出乎我意料的)R對SAS。大部分這些標簽對並不代表這“相反”的技術,而是反映瞭解決相似問題的兩種不同途徑。這其中的許多更是體現出從一個曾經流行的技術向更新技術的轉變過程(SVN被Git取代,XML被JSON取代,VB被C#取代)。按這樣說,人們會在簡歷中列出這些的原因就很容易理解了:對開發者來說,標出那些他們認為已經過時的技術,並表示不願意在工作中繼續使用,是非常常見的做法。
作者:David Robinson
譯者:歐剃
來源:優達學城Udacity(ID:youdaxue)
推薦閱讀
Q: 你覺得最讓人討厭的語言是哪個?
歡迎留言與大家分享
覺得不錯,請把這篇文章分享給你的朋友
轉載 / 投稿請聯絡:baiyu@hzbook.com
更多精彩,請在後臺點選“歷史文章”檢視