Stack Overflow:最令人討厭的編程語言

在Stack Overflow Jobs上,你可以創建你自己的Developer Story,來展示你的成就並推動你的事業。在創建Developer Story時,有一個選擇是你可以添加你想要使用或者不想要使用的標籤:

Stack Overflow:最令人討厭的編程語言

這為我們提供了一個可以研究成千上萬開發者的機會。衡量一種語言受歡迎程度的方法有很多;例如,我們經常使用Stack Overflow visits或question views來衡量這方面的趨勢。但是,傾向於找出程序員不喜歡哪些技術的數據集是很少見的,當給他們機會在簡歷中說明的時候。

(兩年前,我在個人博客上發佈了一些這方面的分析,但是在這篇文章中將會加入更新的數據集並進行更深入的探索)。

編程語言

為了衡量每個標籤如何極化,我們將某種編程語言出現在某人“Disliked”標籤中的次數與它出現在某人或Liked或Disliked標籤中的次數作比較。因此,50%意味著不喜歡和喜歡的標籤出現的頻率相同,而1%意味著99個喜歡1個不喜歡。(我們將使用我在這篇文章中描述的經驗Bayes方法來估算這些平均值,這種計算方法有95%的置信區間)。

我們先來看一下可選擇的編程語言列表(不同於像Android這樣的平臺,或像JQuery這樣的庫),所有這些在Developer Story中至少有2000個人提到過。

Stack Overflow:最令人討厭的編程語言

最令人討厭的語言,遙遙領先的是Perl,Delphi,和VBA。在它們之後是PHP,Objective-C,Coffeescript,和Ruby。在我們的團隊中,我們很高興看到R相對於喜歡它的人來說,並非最令人討厭的編程語言。

如果你已閱讀過我們其他關於普及度正在增加和減少的編程語言的一些文章,那麼你可能會注意到,最不喜歡的標籤往往和那些快速增長的標籤重合。R,Python,Typescript,Go和Rust在Stack Overflow活動方面都是快速增長的編程語言(之前我們已經專門探究了Python和R語言),而且都是最不極化的語言之一。類似地,許多在減少的標籤,如Perl,Objective-C和Ruby,都是我們以前觀察到的網站中最快減少的標籤之一。

我們可以通過比較每種語言的規模和增長與不喜歡它的人(%表示)來檢驗這一點,橙色點代表最不喜歡的語言。為了使我們的分析與之前寫的一些文章保持一致,我們將統計數據限制在高收入國家(如美國,英國,德國和加拿大)。

Stack Overflow:最令人討厭的編程語言

一般來說,標籤的增長與不喜歡的頻率兩者之間是有關係的。幾乎story中提到的所有不喜歡超過3%的在Stack Overflow流量都在減少(除了極化的VBA,依然保持穩定或稍微增長)。而最不喜歡的標籤——R,Rust,Typescript和Kotlin——都是快速增長的標籤之一(Typescript和Kotlin增長得如此之快,以致於在圖表中不得不被截斷)。

這裡有一個突出的標籤,那就是函數式語言Clojure;幾乎沒有人表示不喜歡,但它仍然位於最快速減少的行列(根據question visits,它在去年前後才開始縮小)。另一個例外是MATLAB,儘管不是很多人表示不喜歡它,但是它也正在減少。這或許表明了衡量感情的數據有限制:任何一個Web開發人員可能對PHP,C#或Ruby都會有他們自己的想法,但不是工作於數據分析的人無法對MATLAB表達意見。(這可能也是R之所以在“不喜歡”中很少被提到的部分原因。)

我們並沒有表述程序員不喜歡會導致語言被拋棄的因果關係。有一種可能是,如果人們覺得某種編程語言已經越來越不受歡迎,那麼他們更樂意公開表達他們的不喜歡。可以想象,開發人員也會用不喜歡錶述他們曾使用過但不再使用的技術。這將導致“replaced”的自然發展最後放到了Disliked的領域。

最不喜歡和最喜歡的標籤

上述分析僅考慮編程語言,不涉及操作系統,平臺和庫。那麼總的說來最不令人喜歡的技術是什麼呢?為了專注於我們能夠擁有足夠數據的大型技術,我們將其限制在至少提及1,000次以上的技術。

Stack Overflow:最令人討厭的編程語言

有些是Microsoft技術,特別是Internet Explorer和Visual Basic也是“Microsoft”標籤(“Apple”也名列其中,儘管它沒有Microsoft這麼令人不喜歡)。我們很欣慰地看到大部分人不喜歡Flash。比較老舊的語言,如COBOL,Fortran和Pascal也上榜了。

再次值得強調的是,這並不是對技術及其質量和人氣的指責。這只不過是衡量哪些技術會激起強烈的負面情緒,且同時有一部分開發人員願意公開表達他們的這種情緒。

我們再來看看那些最普遍的流行技術,那些幾乎沒有不喜歡的技術。(這次,由於非常喜歡的標籤更常見,所以我們只關注至少提到過10,000次的技術。)

Stack Overflow:最令人討厭的編程語言

Git可能是許多開發人員沮喪的根源(對我來說也是如此),但是很少有人在他們的簡歷上承認,反而它在Developer Story中是最偏愛的標籤。R也是榜上有名,但它並非唯一與數據科學相關的標籤(那是毋庸置疑的);機器學習標籤被23000人喜歡,並且不喜歡的人相當少。諸如Python-3.X,CSS3和HTML5之類的標籤表明了開發人員很少指明他們不喜歡某個特定版本的技術。還有就是,jQuery和在Stack Overflow上一樣受歡迎。

極化標籤的網絡

我們可以通過組織所有這些標籤成一個網絡來組合成一個故事。在最近的一篇文章中,Julia Silge展示瞭如何構建一個技術網絡來代表整個軟件生態系統。如果我們根據每個標籤的不喜歡程度對節點進行著色,那麼就可以瞭解生態系統的哪些部分比其他標籤更具爭議性了。

Stack Overflow:最令人討厭的編程語言

通過將“Developer Story”標籤設計為子生態系統,此網絡將講述一個有關什麼類型的標籤傾向於極化的故事。子生態系統中的Microsoft(以C#和.NET為中心),PHP(以及WordPress和Drupal),以及移動開發(特別是Objective-C)存在著極化標籤群集。在操作系統集群(右下)中,我們可以看到諸如OSX,特別是Windows的系統詆譭者甚多,但是標籤如Linux,Ubuntu和Unix卻沒有這麼多批評。

競爭

如果有人喜歡某個特定的標籤,那麼有沒有什麼標籤是他們不太可能不喜歡的?

我們可以使用特別喜歡的標籤的外觀之間的phi係數來衡量。(當計算這些相關性時,我們只考慮至少有一個標籤不喜歡的人。)

Stack Overflow:最令人討厭的編程語言

這凸顯了軟件生態系統的一些“競爭對手”:Linux和OSX vs Windows,Git vs SVN,vim vs emacs,以及R vs SAS(對我而言並不令人驚訝)。這些“競爭對手”中大多數並不代表“相反”的技術,而是反映瞭解決相同問題的兩種方法。許多技術建議從以前流行的技術進步到更現代的技術(SVN由Git取代,XML由JSON取代,VB由C#取代)。這對於查看在簡歷上列出的內容來說是有意義的;開發者通常會指明他們不願意使用他們認為過時的東西。

結論

我對“語言戰爭”沒有任何興趣,並且我也沒有判定用戶不喜歡使用的技術是否優劣。考慮到微軟技術往往極化的,所以我要分享我的個人經驗。我一直是Mac和UNIX的長期用戶,幾乎在大學和研究生院的所有編程都是圍繞Python和R的。儘管如此,我很高興加入一個.NET堆棧的公司,並且很慶幸進入這家公司——我熱愛這個團隊及其產品和數據。我不是在奉承,我很高興我可以做我想做的工作,不會被強迫著去面對我不喜歡的東西。

如果你有興趣分享你喜歡和不喜歡的技術,或者想邁向職業生涯中的下一步,那麼你可以創建自己的Developer Story。


分享到:


相關文章: