第二屆Python開發(fā)人員年度調(diào)查出爐。調(diào)查內(nèi)容包括Python使用概況、開發(fā)類型、框架、庫(kù)和技術(shù)、Python3采用率、就業(yè)和工作等眾多方面。
Python開發(fā)人員年度調(diào)查來了!
2018 年秋,Python 軟件基金會(huì)和著名 IDE 開發(fā)商 JetBrains 聯(lián)合進(jìn)行了第二屆 Python 開發(fā)人員調(diào)查。和第一次調(diào)查一樣,本次調(diào)查旨在關(guān)注 Python 的最新趨勢(shì)并總結(jié) 2018 年 Python 開發(fā)的發(fā)展情況。
來自 150 多個(gè)不同國(guó)家的 20000 多名開發(fā)人員參與了此次調(diào)查,幫我們勾勒出一個(gè)更精準(zhǔn)、與時(shí)俱進(jìn)的 Python 社區(qū)全景圖,包括:
Python在全球各地的使用
開發(fā)類型
Python 3 的使用
Python 框架、庫(kù)和技術(shù)
開發(fā)工具
就業(yè)和工作等方面。
總結(jié)一下這份報(bào)告:
Python 3 的采用率正在快速增長(zhǎng),并且已經(jīng)達(dá)到 84%,而 Python 2 僅被 16%的 Python 用戶用作主要的注釋器。從 2017 年的 75%到 2018 年的 84%,這對(duì)于 Python 3 來說是一個(gè)巨大的飛躍。
數(shù)據(jù)分析在 Python 用戶中比 Web 開發(fā)更受歡迎,從 2017 年的 50%增長(zhǎng)到 2018 年的 58%
使用 Python 作為主要語(yǔ)言的所有開發(fā)人員中有一半也使用 JavaScript。Python 也經(jīng)常與 HTML / CSS,Bash / Shell,SQL,C / C ++ 和 Java 一起使用。
Flask 和 Django 是 Web 開發(fā)人員中最受歡迎的框架,占比相同(約 45%),把其他 Python Web 框架遠(yuǎn)遠(yuǎn)甩在后面。
NumPy,Pandas,Matplotlib 和 SciPy 是最受歡迎的數(shù)據(jù)科學(xué)框架和庫(kù)。機(jī)器學(xué)習(xí)專用庫(kù),如 SciKit-Learn,TensorFlow,Keras 等,也很受歡迎。
AWS 是 Python 開發(fā)人員最受歡迎的云平臺(tái),其次是 Google Cloud Platform,Heroku,DigitalOcean 和 Microsoft Azure。
2018 年,使用 DevOps 的受訪者數(shù)量明顯增加(與 2017 年相比增加了 8 個(gè)百分點(diǎn))。對(duì)于使用 Python 作為輔助語(yǔ)言的 Python 用戶而言,DevOps 已經(jīng)取代了 Web 開發(fā)。
PyCharm 及其兩個(gè)版本是最受歡迎的 Python 開發(fā)工具。有趣的是,VS Code 已從 2017 年的 7%擴(kuò)展到 2018 年的 16%,使其成為 Python 開發(fā)的第二大受歡迎的編輯器。其他流行的 Python 編輯器包括 Vim,Sublime 和 Jupyter Notebook。
令人驚訝的是,幾乎三分之二的 Python 開發(fā)人員選擇 Linux 作為他們的開發(fā)環(huán)境操作系統(tǒng)。
Python 使用概況
Python 作為主要語(yǔ)言 VS 次要語(yǔ)言
在我們的調(diào)查中,84%的 Python 用戶使用 Python 作為他們的主要語(yǔ)言,而 16%的用戶把 Python 作為第二語(yǔ)言。 在 2017 年,這個(gè)分布略有不同:79% 受訪者指出他們使用 Python 作為主要語(yǔ)言,21%作為次要語(yǔ)言。
有趣的事實(shí):
Python 作為主要語(yǔ)言的使用率比 2017 年的 79%高出 5 個(gè)百分點(diǎn)。
Python 與其他語(yǔ)言的使用
Python 用戶中有一半還使用 JavaScript。 2018 年的統(tǒng)計(jì)數(shù)據(jù)與 2017 年的結(jié)果非常相似,唯一顯著的區(qū)別是 Bash / Shell 從 2017 年的 36%增長(zhǎng)到 2018 年的 45%。Go 和 SQL 都增長(zhǎng)了 2 個(gè)百分點(diǎn),而 C / C ++、Java 和 C#等許多其他語(yǔ)言的占比降低。
與 2017 年一樣,使用 Python 作為輔助語(yǔ)言的用戶語(yǔ)言細(xì)分略有不同,使用 JavaScript 的開發(fā)人員略少(47%),但也有不少人使用 C / C ++(39%)、Java(35%)和 C#(19%)。
Python 開發(fā)類型
人們使用 Python 進(jìn)行什么類型的開發(fā),以及如何進(jìn)行結(jié)合?
使用 Python 的目的是什么?
60% 的用戶在家和工作中都會(huì)使用 Python,21% 的人將之用于個(gè)人、教育或輔助項(xiàng)目,19% 用于工作。
用 Python 干什么?
2018 年,使用 Python 做數(shù)據(jù)分析的用戶最多,其次是 web 開發(fā),再次為 DevOps/ 系統(tǒng)管理 / 編寫自動(dòng)化代碼、機(jī)器學(xué)習(xí)等。
值得注意的是,用 Python 來做數(shù)據(jù)分析的人比 Web 開發(fā)更多,從 2017 年的 50%增長(zhǎng)到 2018 年的 58%。機(jī)器學(xué)習(xí)也增長(zhǎng)了 7%。 這些類型的開發(fā)比 Web 開發(fā)增長(zhǎng)更快,Web 開發(fā)與前一年相比僅增加了 2 個(gè) %。
2018 年,將 Python 用于教育和多媒體應(yīng)用開發(fā)的占比和去年持平,而網(wǎng)絡(luò)編程、桌面開發(fā)、計(jì)算機(jī)圖形、游戲開發(fā)、移動(dòng)開發(fā)的占比同比有所下降。
與 2017 年一樣,Web 開發(fā)是唯一一個(gè)與使用 Python 作為主要語(yǔ)言和輔助語(yǔ)言的人之間存在較大差距(56%對(duì) 36%)的類別,而其他類型的開發(fā)差異要小得多。
有趣的事實(shí):
2018 年,有更多的受訪者表示他們使用 Python 的用途涉及 DevOps(與 2017 年相比增長(zhǎng)了 8%)。對(duì)于使用 Python 作為輔助語(yǔ)言的 Python 用戶而言,DevOps 已經(jīng)取代了 Web 開發(fā)。
對(duì)以下活動(dòng)的參與度
通過這個(gè)問題,我們?cè)噲D更深入地了解受訪者在之前的多項(xiàng)選擇題中選擇的各種開發(fā)類型。可以清楚地看到,Python 用于游戲開發(fā)主要是業(yè)余愛好,而 Web 開發(fā)、機(jī)器學(xué)習(xí)、數(shù)據(jù)分析和軟件測(cè)試主要是工作所需。
其中,93% 的用戶使用 Python 進(jìn)行軟件測(cè)試,90% 用戶進(jìn)行 DevOps,87% 用戶進(jìn)行 Web 開發(fā)都是出于工作需要。
最常使用 Python 干什么?(單選)
在這個(gè)問題中,受訪者只能選擇一個(gè)選項(xiàng)。結(jié)果表明,Web開發(fā)遙遙領(lǐng)先(27%),把數(shù)據(jù)分析(17%)遠(yuǎn)遠(yuǎn)甩在后面。但如果我們仔細(xì)觀察一下就會(huì)發(fā)現(xiàn),機(jī)器學(xué)習(xí)的占比有所增長(zhǎng)(11%)。如果我們將數(shù)據(jù)分析和機(jī)器學(xué)習(xí)整合到“數(shù)據(jù)科學(xué)”這一類中,這個(gè)數(shù)字將達(dá)到驚人的 28%。也就是說,用戶最常使用 Python 做數(shù)據(jù)科學(xué)相關(guān)的任務(wù)。
緊跟著是機(jī)器學(xué)習(xí)和 DevOps,2017 年和 2018 年的占比未發(fā)生變化,均為 9% vs 11%。
比較使用 Python 作為主要語(yǔ)言與次要語(yǔ)言的趨勢(shì),Web 開發(fā)兩者之間的差距最大(29% vs 17%)。數(shù)據(jù)分析和機(jī)器學(xué)習(xí)之間沒有顯著差異。
有趣的事實(shí):
DevOps / 系統(tǒng)管理 / 編寫自動(dòng)化腳本'已經(jīng)位列 Python 用戶使用其作為輔助語(yǔ)言的首位。這一發(fā)現(xiàn)與前一節(jié)中強(qiáng)調(diào)的 Bash / Shell 使用量增加有關(guān)。
與 2017 年一樣,Web 開發(fā)和數(shù)據(jù)科學(xué)仍然是 2018 年 Python 開發(fā)的主要類型。不過,我們注意到 Python 中的數(shù)據(jù)科學(xué)作為該語(yǔ)言的其他用途,其受歡迎程度的增長(zhǎng)速度要快得多,這可以從多選題“你使用 Python 做什么?”中看出來。
Python 3 采用率
Python VS Python 3
我們的問題是:”你最常用的是哪個(gè)版本的 Python?”。結(jié)果顯示,84%的用戶表示最常用版本為 Python 3 ,遠(yuǎn)超 Python 2 的 16%。從 2017 年的 75%到2018年的84%,Python 3 的受歡迎程度得到大幅提升。
其中,最受歡迎的 Python 3 版本是 Python 3.6,最受歡迎的 Python 2 版本是 Python 2.7。
有趣的事實(shí):
Python 3 的使用率繼續(xù)快速增長(zhǎng)。根據(jù) 2017 年的最新研究,75%的人使用 Python 3,使用 Python 2 的用戶比例是 25%。Python 2 的采用率正在下降,因?yàn)槠洳辉龠M(jìn)行積極開發(fā),沒有新功能,并且將會(huì)在 2020 年停止維護(hù)。
Python 3 的采用率從過年 2013 年的 22%,到 2018 年 10 月已攀升至 84%。
另一個(gè)有趣的發(fā)現(xiàn)是,只有 82% 主要用于 Web 開發(fā)的用戶使用 Python 3,而涉及數(shù)據(jù)科學(xué)的 Python 3 采用率上升至 90%。
可能原因:
可能導(dǎo)致這種情況的原因之一是有些開發(fā)人員在轉(zhuǎn)換到 Python 3 時(shí)仍然需要維護(hù)大量遺留代碼。另一方面,許多數(shù)據(jù)分析師和機(jī)器學(xué)習(xí)專家最近加入了 Python 生態(tài)系統(tǒng)并開始使用最新的 Python 3。
Python 安裝和升級(jí)
71%的受訪者從 python.org 或 OS 提供的包管理器(如 APT 和 Homebrew)安裝 Python。這與 2017 年的結(jié)果非常相似。有趣的是,與 2017 年相比,Anaconda 的占比增長(zhǎng)了 7 個(gè)百分點(diǎn)。這更加明確了數(shù)據(jù)科學(xué)比其他類型的開發(fā)類型受歡迎程度增長(zhǎng)更快。
是否使用以下工具隔離 Python 開發(fā)環(huán)境?(多選)
在開發(fā)或部署階段隔離 Python 環(huán)境很久以來是一個(gè)最佳實(shí)踐。毫無(wú)疑問,pipenv 和較低級(jí)別的 virtualenv 是創(chuàng)建和管理新的 Python 環(huán)境的兩個(gè)最常用的工具,64% 的受訪者表示會(huì)使用這兩個(gè)工具進(jìn)行 Python 環(huán)境隔離,31% 的用戶會(huì)使用 Docker,其次是 Conda、Vagrant/ 虛擬機(jī)和其他。令讓人驚訝的是,21%的 Python 用戶根本不使用以上工具。
Python 框架、庫(kù)和技術(shù)
這一部分強(qiáng)調(diào)了開發(fā)者使用的各種 Python 框架、庫(kù)和技術(shù)的流行度。
網(wǎng)頁(yè)框架(多選)
受訪者中 Flask 的使用量同比增長(zhǎng)了 15 個(gè)百分點(diǎn),因此,今年 Flask 意外地成為最受歡迎的 Web 框架。 而 45%的受訪者(2017 年為 41%)選擇了 Django,F(xiàn)lask 和 Django 加起來就已經(jīng)占據(jù)了 92% 的份額。
數(shù)據(jù)科學(xué)框架和庫(kù)(多選)
不出所料,最流行的數(shù)據(jù)科學(xué)框架和庫(kù)是:NumPy,Pandas,Matplotlib 和 SciPy。機(jī)器學(xué)習(xí)專用庫(kù),如 SciKit-Learn,TensorFlow,Keras 等,也非常受歡迎,這與作為 Python 開發(fā)主要類型的機(jī)器學(xué)習(xí)快速發(fā)展密切相關(guān)。
普通框架和庫(kù)
在普通框架和庫(kù)中,不出所料,超過一半的 Python 用戶使用了 Requests。Pillow 也非常受歡迎,1/5 用戶使用 asyncio。
最受歡迎云平臺(tái)(多選)
55%使用云平臺(tái)的 Python 用戶更喜歡 AWS。Google Cloud Platform 排在第二位,其次是 Heroku,DigitalOcean 和 Microsoft Azure。大約三分之一的受訪者不使用任何云解決方案。
除了上面列出的流行的云平臺(tái),我們發(fā)現(xiàn) OpenStack 和 Linode 各占 6%,OpenShift 占 3%,Rackspace 占 2%。
除了有關(guān)云平臺(tái)選擇的問題之外,我們還提出了一些其他問題,以了解 Python 開發(fā)人員如何使用云:
如何在云中(在生產(chǎn)環(huán)境中)運(yùn)行代碼? (多選)
在虛擬機(jī)上占比 47%,在容器中占比 40%,在 PaaS 上占比 28%,在 Severless 中占比 21%。
開發(fā)環(huán)境中使用云
56%- 本地虛擬環(huán)境35%-Docker 容器24%- 虛擬機(jī)17%- 本地系統(tǒng)注釋器17%- 遠(yuǎn)程開發(fā)環(huán)境9%- 直接在生產(chǎn)環(huán)境中
開發(fā)工具
操作系統(tǒng)
令人驚訝的是,近三分之二的受訪者選擇 Linux 作為他們的開發(fā)環(huán)境操作系統(tǒng)。請(qǐng)注意,這是個(gè)多選題,在這里沒有得出主要 OS 流行度的結(jié)論。
測(cè)試框架
pytest 在測(cè)試框架排名中領(lǐng)先,其次是 unittest。其他測(cè)試框架遠(yuǎn)沒那么受歡迎。出乎意料的是,35%的 Python 用戶不使用任何測(cè)試框架,并且可能沒有測(cè)試他們的代碼。在“創(chuàng)建隔離的 Python 環(huán)境的工具”部分中,我們發(fā)現(xiàn)大約五分之一的 Python 用戶不使用 Python 隔離這一最佳實(shí)踐。
數(shù)據(jù)庫(kù)
大多數(shù)人使用免費(fèi)或開源數(shù)據(jù)庫(kù),如 PostgreSQL,MySQL 或 SQLite MongoDB 和 Redis 等非關(guān)系型數(shù)據(jù)庫(kù)也非常受歡迎,因?yàn)榇罅康?Python 用戶正在進(jìn)行某種形式的機(jī)器學(xué)習(xí)或數(shù)據(jù)工程。
ORMs
兩個(gè)最流行的 ORM 是 SQLAlchemy 和 Django ORM,它們與兩個(gè)領(lǐng)先的 Web 開發(fā)框架:Flask 和 Django 的流行度相匹配。
使用以下哪種大數(shù)據(jù)工具?
機(jī)器學(xué)習(xí)工程師更有可能使用大型數(shù)據(jù)工具,這就是為什么 76%的受訪者表示沒有使用大數(shù)據(jù)工具。Spark 是大數(shù)據(jù)工具中的首選,其次是 Hadoop 和 Kafka。
經(jīng)常使用哪種持續(xù)集成(CI)系統(tǒng)? (多選)
將近一半 Python 用戶不使用任何 CI 方案。Python 世界中最受歡迎的三個(gè) CI 解決方案是 Jenkins,Gitlab CI 和 Travis。
配置管理
大多數(shù) Python 用戶不使用配置管理工具。在使用配置管理中,最受歡迎的無(wú)疑是 Ansible。
編輯和 IDE
為了找到最流行的編輯器和 IDE,我們提出了單選題:“你當(dāng)前 Python 開發(fā)使用的主編輯器是什么?”不到 1%的選項(xiàng)一并歸在 Other 下。
PyCharm 是最受歡迎的 Python 開發(fā)工具,PyCharm Professional 和 Community 版本的合計(jì)份額為 35%。有趣的是,VS Code 的占比從 2017 年的 7%上升到 2018 年的 16%,成為第二大受歡迎的 Python 開發(fā)編輯器。很可能由于 VS Code 的快速增長(zhǎng),許多其他編輯的用戶份額減少了。
Web 開發(fā)人員與數(shù)據(jù)科學(xué)家的編輯偏好略有不同。他們比數(shù)據(jù)科學(xué)家更喜歡 PyCharm,VS Code,Vim 和 Sublime 文本,而許多數(shù)據(jù)科學(xué)家更喜歡 Jupyter Notebook 作為他們的主要工具。
Python 開發(fā)工具和功能
我們找到了在 Python 中相對(duì)受歡迎的開發(fā)工具和功能:版本控制,代碼自動(dòng)完成,代碼重構(gòu),編寫單元測(cè)試以及使用 Python 項(xiàng)目的虛擬環(huán)境都位列 Top10。
其他流行的工具和功能還包括 SQL 數(shù)據(jù)庫(kù),調(diào)試和代碼 linting。NoSQL 數(shù)據(jù)庫(kù),Python 分析器和代碼覆蓋工具是最少使用的功能。
有趣的事實(shí):
類型提示作為一種可選技術(shù)似乎越來越受歡迎。59%的受訪者表示,他們經(jīng)?;蚺紶栐?Python 開發(fā)時(shí)使用類型提示。類型提示的使用排名高于代碼覆蓋和分析器工具,與 CI 解決方案采用率進(jìn)行 Python 開發(fā)旗鼓相當(dāng)。
鑒于在 2018 年調(diào)查中,受訪者中學(xué)生較少,而經(jīng)驗(yàn)豐富的開發(fā)人員較多,我們可以得出結(jié)論,在專業(yè)團(tuán)隊(duì)中工作時(shí)間越長(zhǎng),經(jīng)驗(yàn)越豐富,他們使用的工具和專業(yè)技術(shù)就越多。
就業(yè)和工作
就業(yè)現(xiàn)狀
超過一半(62%)的 Python 用戶全職工作,19%為學(xué)生,而只有 13%為自雇人士或自由職業(yè)者。與 2017 年相比,2018 年,學(xué)生人數(shù)明顯減少,就業(yè)人數(shù)更多。
工作崗位
這是個(gè)多選題,因此總百分比大于 100%。將近 3/4 受訪者為開發(fā)者,1/5 為數(shù)據(jù)分析家、架構(gòu)師或團(tuán)隊(duì)領(lǐng)導(dǎo)。在占比為 12% 的“其他”部分,最多的職位頭銜為數(shù)據(jù)科學(xué)家、DevOps、研究員和教師。
從事項(xiàng)目開發(fā)
只有五分之一的 Python 用戶只從事一個(gè)項(xiàng)目 ; 其余人的工作涉及許多不同的項(xiàng)目,或負(fù)責(zé)一個(gè)主要項(xiàng)目和若干次要項(xiàng)目。
團(tuán)隊(duì)合作 VS 獨(dú)立工作
有趣的是,將近一半的 Python 用戶獨(dú)立進(jìn)行項(xiàng)目開發(fā),4% 的用戶作為外部咨詢或訓(xùn)練師。
團(tuán)隊(duì)規(guī)模
約三分之一的開發(fā)者在規(guī)模很小的團(tuán)隊(duì)中工作,其中 74% 的團(tuán)隊(duì)規(guī)模為 2-7 人。團(tuán)隊(duì)規(guī)模的數(shù)據(jù)與去年相比沒有變化。
企業(yè)規(guī)模
25% 的受訪者在 51-500 人的企業(yè)中工作,這一部分占比最大,其次為 11-50 人和 5000 人以上企業(yè),占比均為 19%。
企業(yè)行業(yè)和業(yè)務(wù)分布
信息技術(shù) / 軟件開發(fā)占比最大,為 44%;“其他”一列中包括零售、能源和媒體。
目標(biāo)企業(yè) / 行業(yè)
Python 開發(fā)者的主要目標(biāo)企業(yè) / 行業(yè)同樣為信息技術(shù) / 軟件開發(fā),還包括財(cái)務(wù)、銀行、銷售、商務(wù)等,“其他”部分占比 12%。大部分自填的行業(yè)包括電信或能源,并提到了其他行業(yè)。
IT 行業(yè)經(jīng)驗(yàn)
與 2017 年相比,Python 用戶在 IT 行業(yè)的經(jīng)驗(yàn)更加多樣化,沒有特別占優(yōu)勢(shì)的群體,其中擁有 11 年以上經(jīng)驗(yàn)的用戶占比最大(25%),其次為 3-5 年經(jīng)驗(yàn)(22%),小于一年(19%)。
平均年齡
受訪者普遍年齡在 20 歲左右(39%),近三分之一是 30 多歲(31%),許多年輕人似乎也融入了 Python 社區(qū)(5%)。
全球社區(qū)
以下為全球 150 多個(gè)國(guó)家的 Python 開發(fā)者社區(qū)分布:
21% 美國(guó),12% 印度,6% 英國(guó),5% 德國(guó),4% 中國(guó),4% 法國(guó),3% 俄羅斯,3% 加拿大,3% 巴西,2% 西班牙,2% 波蘭,2% 澳大利亞,2% 意大利,2% 荷蘭,1% 烏克蘭,1% 捷克共和國(guó),1% 瑞典,1% 以色列,25% 其他。
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8353瀏覽量
132315 -
python
+關(guān)注
關(guān)注
55文章
4768瀏覽量
84378 -
數(shù)據(jù)科學(xué)
+關(guān)注
關(guān)注
0文章
164瀏覽量
10040
原文標(biāo)題:Python開發(fā)者年度報(bào)告:Python3采用率超84%,就業(yè)率高達(dá)62%
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論