Python

2020 年度 Python
開発者
アンケートの結果

2020 年度 Python
開発者
アンケートの結果

これは、 Python Software Foundation と JetBrains が実施した第 4 回目の公式年間 Python 開発者アンケートです。2020 年 10 月には約 200 カ国・地域から 28000 人以上の Python 開発者と愛好家がアンケートに参加し、言語とその周辺エコシステムの現状が明らかになりました。

2017 年、2018 年、2019 年、2021 年、2022 年、2023 年の Python 開発者アンケートの結果をご覧ください。

一般的な Python の使用状況

Python をメインの言語または第二言語として使用している割合

85%主要言語
15%第二言語

85% の回答者が Python をメインのプログラミング言語として使用しています。

Python と他言語の併用状況

> 100 %
メイン第二複数併用
2020
2019
42%/43%39%/40%36%/40%34%/37%27%/28%18%/19%10%/10% 9%/10% 8%/9% 8%/8% 6%/7% 4%/5%JavaScriptHTML/CSSBash / ShellSQLC/C++JavaC#PHPGoTypeScriptRRust
すべて表示

開発者が最もよく Python と併用している言語は JavaScript で、HTML/CSS、Bash/Shell、SQL も使用しています。5 人に 2 人の Python 開発者がこれらの言語のうち 1 つ以上を併用しています。

Python を第二言語として使用している開発者の中では、JavaScript と C/C++ が最もよく使用されている主要言語となっています。

ウェブ開発およびデータサイエンスで使用される言語

> 100 %
データサイエンス
ウェブ開発
43%/49%39%/46%37%/73%35%/62%34%/19%21%/16%17%/2%11%/9% 8%/13% 8%/19% 7%/13% 4%/2% 4%/6% 4%/4%11%/10% 8%/3%SQLBash / ShellJavaScriptHTML/CSSC/C++JavaRC#PHPTypeScriptGoVisual BasicRustKotlinその他なし

ウェブ開発の数値は、質問「Python を主に何に使用していますか?」で「ウェブ開発」を選択した回答者の数を表しています。データサイエンスの数値は、同じ質問で「データ解析」か「機械学習」を選択した回答者の数を表しています。

データ関連の業務に従事している Python 開発者のうち他の言語を一切使用していないのはわずか 8% で、Python のみを使用している Web 開発者はわずか 3% でした。ウェブ開発者の 75% が Python と JavaScript を併用していることは驚くに当たりません。

Python の使用目的

このセクションではユーザーが Python を使用する目的、従事している開発の種類、さまざまな用途の組み合わせを確認するための質問をしました。

どのような目的で Python を主に使用しますか?

54%仕事とプライベートの両方
26%プライベート、教育、またはサイドプロジェクト
19%仕事

Python は何を目的として使っていますか? 

> 100 %
メイン第二複数併用
2020
2019
55%/59%50%/51%40%/40%38%/39%36%/37%29%/31%27%/26%23%/25%19%/18%19%/21%13%/14% 9%/7% 8%/8% 7%/6% 5%/4% 7%/6%データ解析ウェブ開発機械学習DevOps / システム管理 / 自動スクリプトの作成ウェブパーサー / スクレイパー / クローラーのプログラミングソフトウェアのテスト / 自動テストの作成教育目的ソフトウェアプロトタイピングデスクトップ開発ネットワークプログラミングコンピューターグラフィックゲーム開発組み込み開発モバイル開発マルチメディアアプリケーション開発その他

アンケート回答者における学生の割合が増加したため(昨年の 10% から 13% に増加)、Python の使用状況が若干変化しています。教育目的が増加し、回答者が Python を使用して従事する他の活動がすべて減少しています。

次の活動に、どの程度関与していますか?

> 100 %
主活動
副次活動
趣味
62%23%15%49%27%24%48%34%18%45%39%17%43%26%32%43%47%10%41%45%14%41%27%33%40%39%21%39%30%31%39%28%33%35%30%34%35%28%37%28%38%34%26%16%57%68%12%20%ウェブ開発機械学習データ解析ソフトウェアプロトタイピング教育目的ソフトウェアのテスト / 自動テストの作成DevOps / システム管理 / 自動スクリプトの作成組み込み開発ネットワークプログラミングデスクトップ開発モバイル開発コンピューターグラフィックマルチメディアアプリケーション開発ウェブパーサー / スクレイパー / クローラーのプログラミングゲーム開発その他

Python を主に何に使用していますか?

メイン第二複数併用
2020
2019
27%/28%17%/18%13%/13% 9%/9% 7%/6% 4%/4% 4%/3% 3%/3% 3%/4% 3%/3% 1%/1% 1%/1% 1%/1% 1%/1% 0%/0% 5%/5%ウェブ開発データ解析機械学習DevOps / システム管理 / 自動スクリプトの作成教育目的デスクトップ開発ウェブパーサー / スクレイパー / クローラーのプログラミングネットワークプログラミングソフトウェアプロトタイピングソフトウェアのテスト / 自動テストの作成コンピューターグラフィック組み込み開発ゲーム開発モバイル開発マルチメディアアプリケーション開発その他

あなたは自分のことをデータサイエンティストであると思いますか?

いいえ
はい
その他
63%32%5%

データ解析と機械学習に従事している Python 開発者のうち 32% だけが自分のことをデータサイエンティストだと思っています。

多くの Python ユーザーが Python.org を好んで利用しているのに対し、データサイエンティストは 2 倍以上の割合で Anaconda を使用して Python をバージョンアップしています。

この質問は、データ解析と機械学習に従事している方にのみご回答いただきました。

Python のバージョン

Python 3 と Python 2 の比率

Python 2
Python 3
25%75%16%84%10%90%6%94%2017201820192020

各 Python バージョンの使用状況

> 100 %
Python 3
Python 2
57%/34%51%/32%40%/30%40%/17%37%/18%30%/24%27%/19%25%/16%19%/16%19%/19%10%/22% 8%/8% 8%/13% 5%/12% 4%/7% 7%/6%データ解析ウェブ開発DevOps / システム管理 / 自動スクリプトの作成機械学習ウェブパーサー / スクレイパー / クローラーのプログラミングソフトウェアのテスト / 自動テストの作成教育目的ソフトウェアプロトタイピングデスクトップ開発ネットワークプログラミングコンピューターグラフィック組み込み開発ゲーム開発モバイル開発マルチメディアアプリケーション開発その他

Python 3 のバージョン

3%Python 3.5 またはそれ以前
14%Python 3.6
28%Python 3.7
44%Python 3.8
12%Python 3.9

Python のインストールとアップグレード

> 100 %
34%33%19%17%15% 6% 5% 3% 1% 1% 1% 3%12%Python.orgOS 提供の Python(apt-get、yum、homebrew など)AnacondaDocker コンテナpyenvソースからビルド自分の Python アップデートはほかの人が管理しているクラウドプロバイダ経由の自動アップグレードActivePythonIntel Distribution for Pythonpythonzその他更新しません

Windows ユーザーが Python.org から Python をインストールする傾向にあるのに対し、Linux と macOS のユーザーは通常 OS 標準の Python、pyenv、Docker コンテナーのいずれかを使用しています。

Python 環境の分離状況

> 100 %
54%32%22%18% 8% 5% 3%22%VirtualenvDockerCondaPipenvPoetryVagrant / 仮想マシンその他なし

IDE と環境分離ツールの間には興味深い依存関係が見られます。

  • Jupyter Notebook および JupyterLab ユーザーのうち半数以上が Conda を選択しています。他のエディターを使用しているユーザーの中では、Conda は 20% のシェアしか獲得していません。
  • PyCharm Professional Edition は Virtualenv および Docker ユーザーの間で人気です。
  • VS Code と PyCharm は、Pipenv を使用する Python ユーザーの間で最大のシェアを誇っています。
  • Vim は Vagrant と Poetry を使用する Python ユーザーの間で人気です。

Python の機能

気に入っている Python の特徴

この結果は、「Python 言語の特徴の中で最も気に入っているものを 3 つ挙げてください」という公開質問に対する回答に基づいたものです

37%30%21%21%20%20%14% 9% 8% 7% 6% 5% 5% 5% 5% 4% 4% 3% 3% 2% 2%32%単純な構文、糖衣構文、習得が容易コードの記述と読み取りが楽、高水準言語リスト内包表記、ジェネレーター汎用性、あらゆる問題に対応できるライブラリ動的型付け、ダックタイピング強力な標準ライブラリ、組み込みのデータ構造、式、""バッテリー同梱"" 哲学 *大規模なコミュニティ、ライブラリのサポート、分かりやすいドキュメント、pepマルチパラダイム高速なプロトタイピング大規模なデータサイエンスエコシステム文字列の処理と書式設定の容易さリストと辞書可搬性クロスプラットフォームデコレーター並行性と並列性(asyncio、スレッド、マルチプロセス)インタープリタ型言語、コンパイル時間なしPython シェル、インタープリター、IDEコンテキストマネージャーラムダ関数インポートシステムその他 **

* 個別のクラスターに抽出された標準ライブラリ、組み込みのデータ構造、式は除外しています:

  • リスト内包表記、ジェネレーター
  • リストと辞書
  • デコレーター
  • Asyncio、スレッド、マルチプロセス
  • コンテキストマネージャー
  • ラムダ関数

** 1% 未満の回答者が指定したその他のトピックです。

希望する Python の機能

この結果は、「Python に追加して欲しい機能を 3 つ挙げてください」という公開質問に対する回答に基づいたものです

21%20%15%12%11% 9% 7% 7% 6% 5% 5% 4% 4% 3% 2% 2% 2% 1% 1%56%静的型付け、厳密な型ヒントパフォーマンスの改善並行性と並列性の改善パターンマッチング、switch ステートメント公式の Python コンパイラー、JIT コンパイラー標準ライブラリの改善*パッケージ管理の改善、パッケージインストーラーの標準化モバイル開発向けのライブラリとフレームワーク関数型プログラミングのサポート強化、複数行の匿名関数GUI ライブラリのサポート強化、tkinter の改善定数変数、private メソッド、データクラスの改善GIL の改善 / 除去他言語の演算子(None-aware 演算子、パイプ演算子など)の採用バージョン管理の改善、下位互換性インポート管理の改善、循環インポートの解決手動メモリ管理、ポインター関数 / メソッドのオーバーロード末尾再帰の最適化波括弧のサポート / インデントの代わりになるセミコロンその他 **

* 他のクラスターに抽出された標準ライブラリに対する改善は除外しています。

** 1% 未満の回答者が指定したその他のトピックです。

フレームワークとライブラリ

ウェブフレームワーク

> 100 %
46%43%12% 4% 3% 3% 2% 2% 2% 1% 6%27%FlaskDjangoFastAPITornadoweb2pyBottlePyramidCherryPyFalconHugその他なし

FastAPI は今回のアンケートで初めて選択肢に追加されましたが、3 番目に人気のある Python 用 Web フレームワークのようです。

データサイエンス向けフレームワークとライブラリ

> 100 %
62%56%46%33%31%25%19%18%17%12% 4% 2% 1% 4%27%NumPyPandasMatplotlibSciPySciKit-LearnTensorFlowKerasSeabornPyTorchNLTKGensimTheanoMXNetその他なし

NumPy ユーザーは他の Python 開発者とは異なり、主に Conda を使用して Python 環境を分離しています(前者が 22% であるのに対して 32% となっています)。

ユニットテストフレームワーク

> 100 %
49%28%13% 7% 4% 4% 4% 1%37%pytestunittestmockToxdoctestnoseHypothesisその他なし

ユニットテストフレームワークの使用と業務経験年数には高い相関性があります。経験年数の浅い開発者ほど、ユニットテストを実施しない傾向が見られます。

また、データ分析と機械学習に従事している開発者は Web 開発者や DevOps よりもよくユニットテストフレームワークを使用しているようです。ユニットテストフレームワークを最もよく使用している開発者は予想通り、ソフトウェアテストに従事して自動化テストを書いている開発者でした。

その他のフレームワークとライブラリ

> 100 %
54%32%22%19%16%16%13%11%10% 5% 5% 4% 4% 8%18%RequestsPillowAsyncioTkinterScrapyPyQTaiohttpPygameSixKivywxPythonTwistedPyGTKその他なし

AWS を選択した開発者の 72% が Requests フレームワークを使用しています。

Tkinter と Pygame のユーザーの多くは業務経験 1 年未満の若手開発者でした。

ORM

> 100 %
35%35%32%14% 5% 3% 1% 1% 1% 4%データベース開発はしないSQLAlchemyDjango ORMRaw SQLSQLObjectPeeweeTortoise ORMPonyORMDejavuその他

Flask を使用している Python 開発者の大部分は SQLAlchemy を好み、Django ユーザーは Django ORM を使用しています。

データベース

> 100 %
45%39%38%19%18%11% 6% 3% 2% 2% 1% 1% 1% 1% 6%18%PostgreSQLSQLiteMySQLMongoDBRedisMS SQL ServerOracle DatabaseAmazon RedshiftNeo4jCassandraDB2HBaseCouchbaseh2その他なし

PostgreSQL は Python 開発者に最も人気のデータベースであり、AWS ユーザーの間では 65% ものシェアを獲得しています。

ビッグデータツール

> 100 %
11% 9% 6% 5% 4% 2% 2% 1% 1% 1% 2%76%Apache SparkApache KafkaApache Hadoop / MapReduceDaskApache HiveApache BeamClickHouseApache FlinkApache TezApache Samzaその他なし

大部分のビッグデータツールのユーザーは JupiterLab を好んで使用しています。これは特に Apache Spark と Dask のユーザーに当てはまります。2 位は Jupyter Notebook となっていますが、Apache Kafka ユーザーに最も人気があるのは PyCharm Professional です。

テクノロジーとクラウド

上位のクラウドプラットフォーム

> 100 %
53%33%23%21%20%13% 5% 5% 4% 1% 8%AWSGoogle Cloud PlatformHerokuMicrosoft AzureDigitalOceanPythonAnywhereLinodeOpenStackOpenShiftRackspaceその他

Heroku と PythonAnywhere は業務経験 2 年以下の若手開発者に人気がありますが、AWS と DigitalOcean は経験年数の長い Python プログラマーにより人気があります。

クラウド(本番環境)内ではどのようにコードを実行していますか?

> 100 %
2020
2019
47%/47%43%/46%27%/25%25%/24% 2%/2%11%/11%コンテナで仮想マシンでPaaS でサーバーレスその他なし

依然としてコンテナでコードを実行するのが一般的ですが、仮想マシンを使用しているユーザーの比率は若干減少しており、2020 年には 43% にとどまりました。2018 年のシェアは 47% であり、最も一般的な選択肢でした。

どのようにクラウド向けの開発を行っていますか?

> 100 %
2020
2019
56%/56%40%/41%21%/22%18%/18%17%/17% 8%/9% 1%/1% 9%/8%ローカルで virtualenv を使って開発Docker コンテナで仮想マシンでローカルシステム インタープリターを 使ってリモート開発環境で直接本番環境でその他なし

Docker コンテナでクラウド開発を行っている人の大部分はテスターです。

Web 開発者は他のタイプの開発者と比較してリモート開発環境や仮想マシンで開発を行う傾向がかなり低くなっており、ローカルで virtualenv を使って開発することを好んでいます。

開発ツール

オペレーティングシステム

> 100 %
Linux

68%

Linux

Windows

48%

Windows

macOS

29%

macOS

BSD

2%

BSD

1%

その他

経験豊富な Python 開発者ほど Linux と macOS を開発環境に使用し、Windows を避ける傾向にあります。

継続的インテグレーション(CI)システム

> 100 %
23%21%12% 7% 2% 2% 2% 1%10%46%Gitlab CIJenkins / HudsonTravis CICircleCITeamCityBambooAppVeyorCruiseControlその他なし

2020 年には Gitlab CI がこれまで継続的インテグレーションシステム部門で首位だった Jenkins / Hudson を追い抜きました。

継続的インテグレーションシステムを最も幅広く使用しているユーザーはテスターです。ソフトウェア開発や自動化テストに従事している開発者の約 80% が CI システムを使用しています。

構成管理ツール

> 100 %
17% 9% 4% 3% 2% 3%69%AnsibleカスタムソリューションPuppetSaltChefその他なし

エディターと IDE

メインデータサイエンスウェブ
33%29% 8% 4% 4% 3% 2% 2% 2% 2% 2% 1%PyCharmVS CodeVimSublime TextJupyter NotebookAtomEmacsSpyderIDLEJupyterLabIntelliJ IDEANotePad++
すべて表示

最も人気のあるエディターと IDE を特定するため、「現在の Python 開発に使用しているメインのエディターは何ですか?」という単一回答形式の質問を行いました。2019 年に 0.5% 未満だった選択肢は「その他」オプションに集約されました。

PyCharm Community Edition と Professional Edition の合計シェアは 33% であり、これは昨年の結果と同じです。VS Code は引き続きシェアを伸ばしており、昨年よりも 5% 増加しています。そのいっぽう、Vim や Sublime Text のようなテキストエディターの大部分はシェアが若干低下しています。

Jupyter Notebook、JupyterLab、Spyder はデータサイエンス分野でより多くのユーザーを獲得しています。

VS Code ユーザーのシェアについては、データサイエンティストと ウェブ開発者でほぼ同じ数値を示しています。

PyCharm ユーザーのシェアについては、ウェブ開発者の数値はデータサイエンティストの役 2 倍になっています。PyCharm Professional Edition では特にこの違いが顕著に現れています。

Python 開発用のツールと機能

> 100 %
時々は使用する
まったく、またはほとんど使用しない
89%11%89%11%87%13%85%15%79%21%78%22%77%23%73%27%71%29%64%36%63%37%61%39%51%49%42%58%41%59%バージョン管理システムの使用エディターの自動補完機能の使用コードのリファクタリングプロジェクト用 Python 仮想環境の使用コードリンティングの使用コード用のテストの作成SQL データベースの使用デバッガーの使用オプションの型のヒントの使用リモートマシンでの コードの 実行/デバッグ、編集課題トラッカーの使用継続的インテグレーションツールの使用コードカバレッジの使用Python プロファイラーの使用NoSQL データベースの使用

この質問にリストされている作業のほとんどについて、より経験豊富なユーザーで顕著な変化が見られます。業務経験の長い開発者ほど、リスト内のテクノロジーを使用する傾向があります。ただし、この関係はオプションの型ヒントや自動補完には当てはまりません。コーディング経験が 3~5 年の開発者と比較すると、11 年以上の経験を持つ Python 開発者はこれらの作業を定期的に実施する傾向はかなり少なくなっています。

雇用と業務

チーム作業と単独作業の状況

48%チームで作業している
48%単独でプロジェクトに取り組んでいる
4%外部コンサルタント またはトレーナーとして携わっている

プロジェクトへの従事状況

42%多数のプロジェクトに従事
41%メインプロジェクト 1 つと複数のサイドプロジェクトに従事
17%1 つのプロジェクトにのみ従事

チームの規模

75%2~7人
16%8~12人
5%13~20人
2%21~40人
2%40人以上

雇用種別

62%13% 7% 6% 6% 4% 1% 2%会社または組織の正社員学生勤労学生自営業フリーランサーパートタイムの従業員退職中その他

会社の規模

7%13%18%24% 6%10%19% 3%私だけ2~10人11〜50人51〜500人501〜1000人1001〜5000人5000人以上わかりません

会社の業界

42% 7% 6% 5% 4% 4% 3% 2%情報技術 / ソフトウェア開発科学教育 / 研修会計 / 金融 / 保険医学 / 健康製造業銀行 / 不動産 / ローン融資販売 / 流通 / 事業開発
すべて表示

ターゲット業界

45% 5% 4% 4% 3% 3% 3% 3%情報技術 / ソフトウェア開発会計 / 金融 / 保険販売 / 流通 / 事業開発銀行 / 不動産 / ローン融資医学 / 健康製造業物流 / 輸送事業 / 戦略的管理
すべて表示

役職

> 100 %
72%19%19%18% 9% 7% 7% 6% 6% 5% 5% 4%14%開発者 / プログラマーアーキテクトデータアナリストチームリーダーテクニカルサポートシステムアナリストCIO / CEO / CTOプロダクトマネージャーQA エンジニアDBA(データベース管理者)ビジネスアナリストテクニカルライターその他

Python の経験

24%22%28%15%10%1年未満1〜2年3〜5年6〜10年11年以上

コーディングの業務経験

34%19%19%12%16%1年未満1〜2年3〜5年6〜10年11年以上

年齢層

10%40%31%12% 5% 2%18~20歳21~29歳30~39歳40~49歳50~59歳60歳以上

どの国 / 地域にお住いですか?

1% 未満の国 / 地域はすべて「その他」にまとめられています。

16%11% 7% 5% 5% 4% 4% 3% 3% 2% 2% 2% 2% 2% 1% 1% 1% 1% 1% 1% 1% 1%23%アメリカ合衆国インドドイツイギリスフランス中国ロシア連邦ブラジルカナダポーランドオランダスペインイタリアオーストラリアウクライナイスラエルチェコ共和国スウェーデン日本トルコメキシコスイスその他

実施方法と生データ

より詳細にデータを分析したいですか?匿名化されたアンケート結果をダウンロードして調査に役立ててください!調査結果や分析データを Twitter に投稿してください。投稿の際にはハッシュタグ #pythondevsurvey を付け、@jetbrains@ThePSF をメンションしてください。

このようなデータを分析する前に、以下の重要な情報に注意してください:

1

このデータセットには Python Software Foundation の公式チャンネルからの回答のみが含まれています。重複する回答や信頼性の低い回答を除外したこのデータセットには、python.org / PSF ブログ / PSF の Twitter / LinkedIn アカウント / Python 公式メーリングリスト / Python 関連のサブレディットでのアンケート推進を通して 2020 年 10 月と 11 月に収集した 28000 件以上の回答が含まれています。アンケート結果が特定のツールやテクノロジーに一方的に有利にならないよう、回答の収集には製品、サービス、またはベンダー関連のチャンネルは使用されませんでした。

2

データは匿名化されており、個人情報や地理的位置情報は含まれていません。また、回答者がコメント欄に記入した内容で個人が特定されないよう、自由回答式のフィールドはすべて削除されています。

3

アンケートの実施方法をより詳しく把握できるよう、データセット、アンケートの質問、アンケートのロジックをすべて公開しています。回答の選択肢はさまざまな方法で順序付けを行いました(アルファベット順、ランダム順、昇順)。それぞれの質問に対して回答の順序が指定されています。

アンケートの生データをダウンロード

Python Software Foundation と JetBrains を代表し、このアンケートにご参加いただいた皆様に重ねて御礼申し上げます。皆様のおかげで、Python コミュニティの全体像をより正確に描くことができています!

2017 年、2018 年、2019 年、2021 年、2022 年、2023 年の Python 開発者アンケートの結果をご覧ください。

最後までご覧いただきありがとうございました!

レポートはお役に立ちましたか?
ぜひこのレポートを友人や同僚と共有してください。

今後のアンケートに参加する:

私は私の個人データがこの目的で処理されることに同意します。

このアンケートに関するご質問や今後のアンケートに対するご提案がありましたら、surveys@jetbrains.compsf@python.org までご連絡ください。

© 2000—2021 JetBrains s.r.o. All rights reserved.