程式設計師為什麼討厭這些語言

程式碼灣發表於2018-07-25

全球著名的 IT 網站 Stack Overflow 根據數百萬開發者專案標籤的使用頻率,釋出了一份程式語言的調查報告,試圖找出最不受歡迎的程式語言。沒想到開發者最想規避的程式語言中,PHP、Objective-C 和 Ruby 等語言紛紛上榜。

說好的 PHP 是世界上最好的語言的呢?

你知曉開發者中最不受歡迎的程式語言嗎?

開發者最討厭的程式語言

01最不受歡迎的程式語言

在 Stack Overflow 上,開發者可以建立屬於自己的“Developer Story”,用來記錄專案開發、獲得的成就等個人開發經驗,相當於簡歷,待發布之後也可以提升職場機遇。

在建立“Developer Story”時,可以新增喜歡或者不喜歡的語言標籤,而本調查報告的資料來源正是基於此。

將該資料作為衡量標準,並以特定的程式語言列表(並非是像 Android 這樣的平臺或是 JQuery 這樣的庫)進行篩選。

Stack Overflow 使用 Bayes 方法來預估這些平均值,最終發現開發者中最不受歡迎的語言前三名分別為 Perl、Delphi 和 VBA,緊隨其後的是 PHP、Objective-C、Coffee 和 Ruby。

如果此前看過有關 Stack Overflow 的程式語言報告,就會發現,那些很少被標記為不受歡迎的程式語言往往就是使用率快速增長的語言。比如 R、Python、Type、Go 和 Rust 等語言增長率都比較高。

下面我們可以通過比較每種語言的增長與標記“dislike”的百分比進行驗證,橙色點表示最不受歡迎的語言。以下我們將統計資料限制在已開發國家(如美國、英國、德國和加拿大)。

總體而言,語言的增長率與開發者“dislike”的頻率之間有一種關係。被標記為“dislike”標籤的程式語言佔比在 3% 以上的,使用率越來越少,而最少被標記為“dislike”的 R、Rust、Type 和 Kotlin 語言使用率都在快速上升。

02那些開發者喜歡及不待見的技術

上述分析僅考慮程式語言,而不是作業系統、平臺或庫。那什麼是開發者最不喜歡的技術?

據調查報告顯示,普遍喜歡的技術則包括:機器學習、Git、Python 3.x、HTML5 和 CSS3 。

開發者最不喜歡的技術包括 Internet Explorer、Visual Basic、Flash、COBOL、Fortran 和 Pascal 。

值得強調的是,以上並非是對某一語言的歧視,而僅僅是衡量哪些技術在至少一部分開發人員的使用過程中,是讓他們感覺到舒服還是負面的。

03獨立的標籤網路

我們可以將所有這些標籤組合成一個故事,將其組織成一個網路。在最近的一篇文章中,Julia Silge 展示瞭如何構建一個技術網路來代表整個軟體生態系統。

如果我們根據每個“dislike”標籤的對節點進行著色,我們可以瞭解生態系統的哪些部分比其他標籤更具爭議性。

通過將“Developer Story”標籤放在子生態系統中,我們發現有獨立的子系統的叢集:微軟(以C # 和 .Net 為中心)、PHP(WordPress 和 Drupal 環繞),和移動開發(特別是 Objective-C)。

作業系統的叢集內(右下),我們可以看到,系統如 OSX 和 Windows 被標記為“dislike”,但標籤如 Linux、Ubuntu 和 Unix 卻並非如此。

04技術型的競爭之路

有意思的是,資料還體現了行業中存在的技術型競爭關係,像是 Linux 、OSX vs Windows,Git vs SVN,vim vs emacs ,React vs Angular 等。開發人員通常不願意使用他們認為過時的東西,建議用更現代的技術來取代。

以上並不表示直接的因果關係,標籤不被程式設計師使用,導致它們被放棄。一種可能性是,如果人們感覺到語言已經越來越受歡迎,就會很樂意公開表達自己的喜歡與不喜歡;另一種原因就是與時俱進,以新的更新替換舊而複雜的程式語言。

Python 成為資料科學家首選語言

資料平臺 Kaggle 近日釋出了 2017 機器學習及資料科學調查報告,這也是 Kaggle 首次進行全行業調查。

該調查收集了1.6萬多問卷,問卷內容包括在機器學習行業中最火的程式語言,以及如何更好的入門資料開發等。

下面就是其中一部分調查結果,如:

  • Python 是最常用的工具, R 語言使用者的忠誠度更高。
  • 資料科學家的年齡平均在30歲左右,但這種平均年齡在不同國家之間有所不同。例如,來自印度的平均受訪者年齡比澳大利亞的平均受訪者年齡年輕9歲。
  • 獲得了碩士學位的受訪者佔比最多,但那些收入超過 150K + 的,大部分獲得博士學位。

以下就是 Kaggle 報告內容:

01年齡

本次調查物件的平均年齡在 30 歲左右。當然,不同國家之間的數值會有所不同。例如,日本的機器學習從業者的年齡中位數為 33 歲。

全球全職工作者佔比為 65.7%,中國為 53%, 其中,白俄羅斯的佔比最高,全職工作者佔比達到 75.5%。

02學歷

正常情況下,在資料科學工作中,獲得碩士學位的人數比例最高。但那些收入高於 150K+ 的人大部分取得博士學位。擁有碩士學位的開發者,年薪約 5.5 萬美元。

03全職薪資(年薪)

儘管在調查中發現,對於受訪者來說,“薪酬福利”的重要性不及“專業發展的機會”,但如果能瞭解到自己行業中的普遍薪資情況也是不錯的。調查發現,在美國,機器學習工程師的薪資是最高的。

在全球範圍內,機器學習工程師的薪資中位數是 55,441 美元,不過由於很多人沒有全職工作(收入為 0),所以這一數值還是存在一定誤差。

04最常使用的資料科學方法

Logistic 迴歸是除了軍事和國安領域外,最常用的資料科學研究方法。它在軍事和國防安全領域以及神經網路領域使用更為廣泛。

05工作中最常使用什麼工具?

Python 是資料科學家們最常用的語言,不過仍然有很大一部分資料科學家忠誠於 R 語言。

06最常使用的資料型別

關係型資料是開發者在工作中最常用的資料型別,因為大多數產業工程師都較青睞關係型資料。而學術研究者和國防安全產業則更青睞於文字和影像。

Dirty Data (髒資料)是從業者遇到的最大障礙。資料科學家一般最常見的困擾就是需要對資料進行大量的預處理工程。理解不同演算法的能力不足也是困擾資料工作者的一大障礙。此外,缺乏一定有效管理和資金支援也是面臨的兩大外在困境。

Git 是他們最常用的程式碼共享和託管方式 ,佔比有 58.4%。但大公司的開發者更傾向於將程式碼保留在本地,通過電子郵件的方式來共享程式碼。而初創公司為了追求便捷可能更青睞於雲共享。

當你進入一個新的職業生涯時,瞭解別人成功的祕訣可以讓你少走很多彎路。以下是資料科學行業的前輩給出的幾條最有用的建議,希望對想要進入這個行業的人有一定幫助:

07入門資料科學最推薦先學哪門語言?

每個資料科學家都堅信自己選擇的語言是正確的。比如完全使用 Python 或 R 的人,他們分別最先推薦學習的語言分別為 Python 和 R。但是,同時使用 R 和Python的人中,推薦使用 Python 的人數是推薦學習 R 語言的兩倍。

08資料科學學習平臺

資料科學是個變化極快的領域,業內人員需要不斷更新知識體系,才可以在業內保持一定地位,不被時代淘汰。Stack Overflow Q&A、Conferences 和 Podcasts 是已從業者經常使用的學習平臺。

09開源資料獲取平臺

沒有資料就沒有資料科學。當談到學習資料科學時,知道如何找到開放資料集用於實踐專案是相當重要的。dataset aggregators 正發展為資料科學社群成員中最頻繁使用的工具,排行第二的是谷歌搜尋。

說到找工作,更多的人可能是到指定技術方向的招聘網站上找,但是根據多年資料科學領域工作經驗的前輩們,直接聯絡招聘者或通過自己的人際圈進入這個領域才是他們的首選。(注意:該報告包含多個國家的資料,可能存在收集不夠全面的情況,僅供參考。)

相關文章