-
1 # 一千零一物
-
2 # 米粥先生
關於程式語言,大家一直在爭論"誰才是最好的程式語言",可一直也沒有一個定論。今天我們不再老生常談誰才是最好的程式語言,而是反其道行之,看看程式設計師最想diss哪種語言?
Stack Overflow中有標籤功能,程式設計師可以新增標籤來標註自己喜歡或者不喜歡的工作,同時這也為我們研究成千上萬程式設計師的喜好提供了素材,本文將著重筆墨於程式語言。衡量一種程式語言流行程度的方法有千萬種,例如 ,而本文的資料來自使用者標籤。
一、程式語言
如何將標籤作為衡量標準呢?每個標籤都有兩極,我們並不是單純的看喜歡或者不喜歡,而是看不喜歡標籤的佔比,如果是50%那麼就說明它的喜好不是很明確,如果是1%,那麼就說明絕大多數的人是喜歡的。
首先,我們先來看一下程式語言列表,在Stack Overflow中程式設計師提到的程式語言多達2000多種。
如果,我們在把目光聚焦一下,我們就會發現最喜歡的語言往往也是快速增長和發展的語言。例如,R,Python,Typescript,Go和Rust都是在Stack Overflow中快速增長的。而Perl,Objective-C和Ruby等語言市場正在不斷萎縮。
我們透過比較每種語言的市場規模和增長速度與不喜歡的百分比來檢驗上文中提到的結論。下圖中橙色點代表最不喜歡的語言。該資料統計我們限制在了高收入國家,例如美國,英國,德國和加拿大。
一般來說,成長的標籤與不喜歡的頻率存在著一種關係。如果不喜歡的比例超過3%,那麼這門程式語言在Stack Overflow中基本都處於市場萎縮的狀態。而R,Rust,Typescript和Kotlin在Stack Overflow中都屬於快速增長的標籤。
但是也有例外,其中之一就是Clojure。在調查中幾乎沒有人表示不喜歡它,但是它在去年開始快速萎縮。另一個例外是MATLAB,沒有很多人表示不喜歡它,但它也正在縮小。這可能和調查資料有關係,任何Web開發人員都可能吐槽PHP,C#或Ruby,但是沒有從事過資料分析工作的人卻無法吐槽MATLAB表達意見。
除此之外,出現這種情況的原因還有一種。那就是如果大家已經感覺到這種語言正在越來越流行,大家就會更樂於表達自己的不喜歡。長此以往,我們可以預見到也許不喜歡的領域中往往蘊含著技術的自然進步。
從上圖中我們看到微軟的好幾個技術都上榜了,例如Internet Explorer和Visual Basic以及"Microsoft"的自身標籤。一些較舊的語言,如COBOL,Fortran和Pascal也出現在了榜單中。
需要強調的是,這並不是對技術、質量或者人氣的指責。這只是表達哪些技術在人群中,至少是一部分人群中帶來了負面的情緒和不好的體驗。
二、標籤網路
我們可以將所有的標籤組合成一個故事,形成一個網路。之前,來代表整個軟體生態系統。我們根據每個標籤的不喜歡程度對節點進行著色,瞭解生態系統的哪些部分比其他標籤更具爭議性。
上圖中我們看到Microsoft(以C#和.NET為中心),PHP(以及WordPress和Drupal)以及移動開發(特別是Objective-C)的子生態系統中都存在極化標籤叢集。在作業系統叢集中,我們可以看到諸如OSX,特別是Windows的系統有很多diss者,但是像Linux,Ubuntu和Unix卻沒有吐槽者。
三、競爭
就像有人會有特別喜歡的事物,他們有沒有特別不喜歡的語言或技術呢?我們可以使用一個特殊的φ係數來測量這個值。
這就突出了軟體生態系統的一些"競爭對手":Linux vs Windows,Git vs SVN,vim vs emacs以及R vs SAS。它們之間的關係大多數都不是相反的,而是反映瞭解決問題的兩種相似方法。很多人建議要從過去的流行技術過度到更現代的技術,SVN由Git取代,XML替換為JSON,VB替換為C#。這對程式設計師來說是非常有意義的,因為沒有人願意使用他們認為已經過時的東西。
那麼,作為程式猿的你,最討厭哪種程式語言呢?
-
3 # 板筋兒的日常
近日,全球著名的 IT 網站 Stack Overflow 根據數百萬開發者專案標籤的使用頻率,釋出了一份程式語言的調查報告,試圖找出最不受歡迎的程式語言。沒想到開發者最想規避的程式語言中,PHP、Objective-C 和 Ruby 等語言紛紛上榜。
說好的 PHP 是世界上最好的語言的呢?
開發者最討厭的程式語言
在 Stack Overflow 上,開發者可以建立屬於自己的“Developer Story”,用來記錄專案開發、獲得的成就等個人開發經驗,相當於簡歷,待發布之後也可以提升職場機遇。
將該資料作為衡量標準,並以特定的程式語言列表(並非是像 Android 這樣的平臺或是 JQuery 這樣的庫)進行篩選。
總體而言,語言的增長率與開發者“dislike”的頻率之間有一種關係。被標記為“dislike”標籤的程式語言佔比在 3% 以上的,使用率越來越少,而最少被標記為“dislike”的 R、Rust、Type 和 Kotlin 語言使用率都在快速上升。
2、那些開發者喜歡及不待見的技術
上述分析僅考慮程式語言,而不是作業系統、平臺或庫。那什麼是開發者最不喜歡的技術?
據調查報告顯示,普遍喜歡的技術則包括:機器學習、Git、Python 3.x、HTML5 和 CSS3 。
開發者最不喜歡的技術包括 Internet Explorer、Visual Basic、Flash、COBOL、Fortran 和 Pascal 。
值得強調的是,以上並非是對某一語言的歧視,而僅僅是衡量哪些技術在至少一部分開發人員的使用過程中,是讓他們感覺到舒服還是負面的。
3、獨立的標籤網路
我們可以將所有這些標籤組合成一個故事,將其組織成一個網路。在最近的一篇文章中,Julia Silge 展示瞭如何構建一個技術網路來代表整個軟體生態系統。
如果我們根據每個“dislike”標籤的對節點進行著色,我們可以瞭解生態系統的哪些部分比其他標籤更具爭議性。
透過將“Developer Story”標籤放在子生態系統中,我們發現有獨立的子系統的叢集:微軟(以C # 和 .Net 為中心)、PHP(WordPress 和 Drupal 環繞),和移動開發(特別是 Objective-C)。
作業系統的叢集內(右下),我們可以看到,系統如 OSX 和 Windows 被標記為“dislike”,但標籤如 Linux、Ubuntu 和 Unix 卻並非如此。
4、技術型的競爭之路
有意思的是,資料還體現了行業中存在的技術型競爭關係,像是 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 報告內容:
1、 年齡
本次調查物件的平均年齡在 30 歲左右。當然,不同國家之間的數值會有所不同。例如,日本的機器學習從業者的年齡中位數為 33 歲。
全球全職工作者佔比為 65.7%,中國為 53%, 其中,白俄羅斯的佔比最高,全職工作者佔比達到 75.5%。
2、學歷
正常情況下,在資料科學工作中,獲得碩士學位的人數比例最高。但那些收入高於 150K+ 的人大部分取得博士學位。擁有碩士學位的開發者,年薪約 5.5 萬美元。
3、全職薪資(年薪)
儘管在調查中發現,對於受訪者來說,“薪酬福利”的重要性不及“專業發展的機會”,但如果能瞭解到自己行業中的普遍薪資情況也是不錯的。調查發現,在美國,機器學習工程師的薪資是最高的。
在全球範圍內,機器學習工程師的薪資中位數是 55,441 美元,不過由於很多人沒有全職工作(收入為 0),所以這一數值還是存在一定誤差。
4、最常使用的資料科學方法
Logistic 迴歸是除了軍事和國安領域外,最常用的資料科學研究方法。它在軍事和國防安全領域以及神經網路領域使用更為廣泛。
5、工作中最常使用什麼工具?
Python 是資料科學家們最常用的語言,不過仍然有很大一部分資料科學家忠誠於 R 語言。
6、最常使用的資料型別
關係型資料是開發者在工作中最常用的資料型別,因為大多數產業工程師都較青睞關係型資料。而學術研究者和國防安全產業則更青睞於文字和影象。
Dirty Data (髒資料)是從業者遇到的最大障礙。資料科學家一般最常見的困擾就是需要對資料進行大量的預處理工程。理解不同演算法的能力不足也是困擾資料工作者的一大障礙。此外,缺乏一定有效管理和資金支援也是面臨的兩大外在困境。
Git 是他們最常用的程式碼共享和託管方式 ,佔比有 58.4%。但大公司的開發者更傾向於將程式碼保留在本地,透過電子郵件的方式來共享程式碼。而初創公司為了追求便捷可能更青睞於雲共享。
當你進入一個新的職業生涯時,瞭解別人成功的秘訣可以讓你少走很多彎路。以下是資料科學行業的前輩給出的幾條最有用的建議,希望對想要進入這個行業的人有一定幫助:
7、入門資料科學最推薦先學哪門語言?
每個資料科學家都堅信自己選擇的語言是正確的。比如完全使用 Python 或 R 的人,他們分別最先推薦學習的語言分別為 Python 和 R。但是,同時使用 R 和Python的人中,推薦使用 Python 的人數是推薦學習 R 語言的兩倍。
8、資料科學學習平臺
資料科學是個變化極快的領域,業內人員需要不斷更新知識體系,才可以在業內保持一定地位,不被時代淘汰。Stack Overflow Q&A、Conferences 和 Podcasts 是已從業者經常使用的學習平臺。
9、開源資料獲取平臺
沒有資料就沒有資料科學。當談到學習資料科學時,知道如何找到開放資料集用於實踐專案是相當重要的。dataset aggregators 正發展為資料科學社群成員中最頻繁使用的工具,排行第二的是谷歌搜尋。
說到找工作,更多的人可能是到指定技術方向的招聘網站上找,但是根據多年資料科學領域工作經驗的前輩們,直接聯絡招聘者或透過自己的人際圈進入這個領域才是他們的首選。(注意:該報告包含多個國家的資料,可能存在收集不夠全面的情況,僅供參考。)
Python 的 14 張思維導圖
1、總覽
2、基礎知識
3、資料型別
4、序列
5、字串
6、列表 & 元組
7、字典 & 集合
8、條件 & 迴圈
9、檔案物件
10、錯誤 & 異常
11、函式
12、模組
13、面向物件程式設計
-
4 # qzuser206755298
在程式設計師的眼裡,只有順手和熟悉的語言,沒有喜歡和討厭的語言。
每一種計算機語言都有它的長項和短項,都有它發展的歷史。由於不同時期的軟硬體特點,以及它要解決的問題,造成了它的特點。
拿BASIC語言來說,早期的硬體很昂貴,那麼它的功能也就那樣:能解決大家學習使用的一般要求,很多功能要實現就得使用內聯的彙編。大牛開了個玩笑,說它是初學者的指令程式碼什麼的,還不好翻譯。你在網上搜搜,到現在還有人這麼說它。
事實上,現在的Basic語言功能非常強大,方言也很多。我在年初時用BASIC寫了一個小程式,功能是從ERP的SQL SERVER資料庫查出所有原材料,然後按照CREO的材料檔案格式生成一組檔案。同時要求在處理完工作後自動退出,有進度條顯示,以前如果生成過要跳過,啟動執行速度要快。windows下,這不好做。
花了兩週時間用BASIC完滿完成了任務。最後編譯出的可執行檔案是六十多K,還帶了一個圖示。可執行檔案只帶一個配置檔案,不要別的動態庫的支援。
同樣的,每種語言都在發展,只用合適的,不要勉強自己用不合適的。
回覆列表
全球著名的 IT 網站 Stack Overflow 根據數百萬開發者專案標籤的使用頻率,釋出了一份程式語言的調查報告,試圖找出最不受歡迎的程式語言。沒想到開發者最想規避的程式語言中,PHP、Objective-C 和 Ruby 等語言紛紛上榜