Web Development

2024 年 Django の現状

Read this post in other languages:

Django 開発の最新トレンドを知りたいですか?

PyCharm は Django Foundation と連携して世界中 4,000 人以上の Django 開発者を調査し、その回答を基にフレームワークの使用に関するトレンドを解析しました。

このブログ記事では、次のような主な結果をご紹介します。

  • Django 開発者の 3 人に 1 人が Flask または FastAPI も使用している。
  • ほとんどの開発者がフルスタック開発と API 開発の両方に Django を使用している。
  • Django 開発者の 61% が非同期テクノロジーを使用している。
  • その他にも多くのインサイトがあります!

これらの結果を詳しく確認し、インフォグラフィックによる図説も利用しながら Django 開発のその他のトレンドを発見しましょう。

バックエンド: Django 開発者 3 人に 1 人が Flask または FastAPI も使用している

Django の他にどのウェブフレームワークを使用していますか?
どのウェブフレームワークを最もよく使用していますか?

Django は依然として 74% の開発者が最もよく使用しているフレームワークとなっていますが、昨年の 83% からはわずかに低下しています。 FastAPI はその人気度をかろうじて維持し、25% の回答者が使用していると答えました。 その一方、Flask の人気はわずかに落ちています(2022 年は 29%、2023 年は 26%)。

Django を主に扱うウェブ開発者の 33% は Flask または FastAPI も使用しており、多様なバックエンドスキルを示しています。

正社員の開発者の大半(49%)が複数のプロジェクトに同時に携わっていると報告したことを考慮すると、これは目的ごとに異なるツールを選択していることを示している可能性があります。

  • Django – 「Batteries Included」(バッテリー同梱でそのまま使える)の哲学があり、比較的大規模で複雑なウェブアプリに向いています。
  • Flask – 比較的単純なアプリケーション(特に静的サイト)またはマイクロサービスに向いています。
  • FastAPI – アプリケーションに多数の IO 呼び出しが含まれる場合(特にリアルタイムウェブアプリケーション)を中心に API エンドポイントの作成に使用されます。

3 つのフレームワークをすべて使用している開発者が全 Django 開発者の 11% しかいないということは、そのほとんどが Flask と FastAPI を同様の目的に使用しており、非同期機能の存在を理由に FastAPI にシフトしている可能性があります。

Django が Flask と FastAPI とどう違うのか知りたいですか? Django と Flask および Django と FastAPI の詳細な比較をご覧になり、どのフレームワークがあなたのニーズに最適であるかをご確認ください。

API の開発: ほとんどの開発者がフルスタックと API 開発の両方に Django を使用している

Django を何に使用していますか(フルスタックまたは REST API)?

今年のアンケートでは、Django がフルスタック(74%)と API 開発(60%)で一般的であり、正社員の開発者の間では API の使用が好まれる傾向にあることが分かりました。 正社員の開発者は REST API 開発に Django を使用する傾向が強いですが(平均の 60% に対して 65%)、フルスタック開発にはあまり使用していません(平均の 74% に対して 68%)。

htmx の人気が高まる中、このトレンドはフルスタック開発に Django を使用するように変化する可能性があります。

興味深いことに、DRF はサードパーティパッケージの中ではトップの座を保持していますが、高速かつ型付けが可能なことで知られる Django Ninja が伸び続けているため、人気が落ちています。 Django Ninja は API の作成で非常に一般的なもう 1 つの選択肢である FastAPI と同様に高いパフォーマンスと同期機能を提供しますが、Django エコシステムに属するため、学習曲線がより短くなっています。

API を扱っていますか? こちらのチュートリアルを読み、Django REST フレームワークで API を構築する方法をご覧ください

Async: Django 開発者の 61% が非同期テクノロジーを使用している

どの非同期テクノロジーを使用していますか?

Django 開発者の間では非同期テクノロジーの使用への移行が明確に進んでおり、現在ではその 61% がプロジェクトに非同期テクノロジーを導入しています(昨年の 53% から上昇)。

非同期プログラミングを念頭に作成された FastAPI は、現在では非同期処理を使用する全 Django 開発者の 21% によって使用されています。 Django の非同期ビューもより多くの回答者から使用されていますが(14%)、非同期タスクにおいては FastAPI が依然としてより高い人気を得ています。 今後の Django 5 リリースでは非同期処理のサポートが拡充される予定ですので、Django で非同期処理を使用することへの関心がますます高まる可能性があります。

フロントエンド: Django 開発者の好みが htmx、Alpine.js、Tailwind CSS に変化している

Python の他にどのプログラミング言語を使用していますか?

フロントエンドに関しては依然として JavaScript が最も一般的な言語となっており、開発者の 68% が使用していると答えていました。 とは言え、その絶対的なシェア(2021 年と 2022 年で 75%)は徐々に TypeScript に追いつかれており、TypeScript のシェアは 2021 年の 19% から 2023 年の 28% に大幅に増加しています。 この人気の上昇は静的型付け機能に基づいていると思われます。この機能を使用すると開発プロセスの早い段階でエラーを捕捉できるため、より堅牢で管理しやすいコードを得られます。

どの JavaScript フレームワークを使用していますか?

Django のプロ開発者が他の競合フレームワークよりも JavaScript フレームワークを依然として使用しているのは明らかであり、Vue、jQuery、React の使用率はそれぞれ 26%、35%、42% となってはいますが、全体的な使用率は年々下がってきています。

htmx(2022 年の 16% から 2023 年の 23% に増加)と Alpine.js(6% から 10% に増加)などの比較的新しいフレームワークは急速に人気を集めており、モダンなユーザーインターフェースに関してはより単純なツールに移行していることが分かります。 Adam Johnson が開発した専用の django-htmx パッケージがあります。

htmx に関する Dennis Ivy のコメント:

「ここに HTMX の名前が挙がっていることを喜んでいます。 私は HTMX の大ファンというわけではありませんが(通常は React を使用しています)、本格的な JS フレームワーク/ライブラリに移行しなくても若干の柔軟性が必要な多くの Django プロジェクトには最適だと思います」

どの CSS フレームワークを使用していますか?

Bootstrap は引き続き下落傾向にある一方、Tailwind CSS はその人気が過去 2 年で 2 倍になり、大きく伸びていることが分かります。 Bootstrap よりも Tailwind CSS を使用する傾向が高まっているということは、ウェブプロジェクトでのスタイル付けに対してよりカスタマイズ可能であまり規範的でない手法が必要とされているようです。 パッケージ作成者である Tim Karmanin のこちらの記事で、Django で Tailwind CSS を使用するための導入ガイドをお読みください

Tailwind CSS に関する Dennis Ivy のコメント:

「Tailwind-Django の使用率が高まっているのは喜ばしいことです。 ネイティブ統合やこの分野での教育コンテンツが増えることを願っています」

データベース: Django 開発者の 75% が PostgreSQL を好んで使用しており、50% が Redis をキャッシュの処理に使用している

どのデータベースバックエンドを使用していますか?

Django エコシステムでは、PostgreSQL が 開発者の主なデータベース(76%)となっており、ウェブアプリケーションには堅牢な SQL ベースのシステムが好まれていることが分かります。 MariaDB(10%)や MongoDB(8%)などの NoSQL データベースへの関心も大きく、データベースの世界が多様化していることが表れています。

正式な Django のサポートがないにもかかわらず、スキーマレスの拡張可能な MongoDB が上位のデータベースに含まれています。これは、より柔軟でドキュメント指向のデータベースを取り入れたいという開発者の意思を反映するものです。

MongoDB をお使いですか? こちらのステップバイステップガイドで Django と MongoDB の接続方法をご覧いただけます。

MongoDB に関する Dennis Ivy のコメント:

「Mongo が他とは違った手法を採用しており、Django との互換性がないことを考慮すると、この数字には驚くばかりです。 この 8% の回答者の熟練度が気になります。 比較的新米の開発者か、実験的なプロジェクトに携わっている開発者なのではないかと思います。

MongoDB チームのメンバー数名と話した後、この統合に関する私の考えを記事にまとめることができました」

どのキャッシュバックエンドを使用していますか?

キャッシュの面では Redis が依然としてウェブアプリの応答性を強化するのに最も一般的なソリューション(54%)でした。Memcached(20%)も上昇しています。

オーケストレーション: Django 開発者の 50% 以上がコンテナーオーケストレーションを使用している

どのコンテナーオーケストレーションサービスを本番環境で使用していますか?

人気のあるサービスの間では Amazon ECS/Fargate(19%)がその使いやすさと AWS との統合を理由に首位の座を得ており、AWS エコシステムの開発者にとって順当な選択肢となっています。

セルフマネージドの Kubernetes(14%)はインフラストラクチャに対する柔軟性と制御や、プライベートおよびパブリッククラウドの間を簡単に移行して共有する機能を求めている開発者から人気を得ています。 Amazon EKS(12%)と Docker Swarm(12%)が人気なのは、その管理性と拡張性のバランスの良さがさまざまなデプロイのニーズに対応できるためである可能性があります。

Kubernetes インフラストラクチャをご利用ですか? Kubernetes に Django アプリをデプロイする方法に関するこちらのガイドをお読みください。

CI システム: GitHub Actions が業界をリードしている

どの継続的インテグレーションシステムを使用していますか?

CI 分野における GitHub Actions の伸び(2021 年の 35% から 2023 年の 45%)は、それがすでに GitHub をソースコードの管理に使用している開発者にとって利便性が高いことを明確に示しています。 このツールはシンプルな上にパイプライン管理に簡潔な YAML ファイルを活用できるため、GitHub のエコシステム内でソフトウェアワークフローを容易かつ効率的に直接自動化できます。 さらに、より大規模なジョブを実行するのに十分な処理パワーまたはメモリが備わっているため、開発者のニーズを満たすカスタムハードウェア構成を使える柔軟性もあります。

IaC: Django 開発者の 39% がインフラストラクチャのコード化を使用している

どのインフラストラクチャのコード化ツールを使用していますか?

回答者の 39% がインフラストラクチャのコード化ソリューションを使用していることは、自動化とコードによるインフラストラクチャ管理のトレンドが伸びていることを明確に示しています。 比較的大規模なプロジェクトでは、IaC によって信頼性、複製可能性、および拡張性により優れたインフラストラクチャ環境を提供できます。 Terraform はコードプロビジョニングエンジンとして最も一般的に使用されているインフラストラクチャで、全回答者の 20% が他のオプションよりも好んでいます。

興味深いことに、オープンソースソリューションである Pulumi は回答者の 5% が選択していました。 これは Pulumi がリリース当初からインフラストラクチャの管理用に任意のプログラミング言語を使用できる柔軟性を備えていたことが理由だと思われます。 このため、Pulumi はあらゆるバックグラウンドの開発者と DevOps エンジニアが広く使用しやすくなっています。 Terraform は 2022 年に CDK を通じて似たようなオプションを提供し始めました。

Django 開発者の職業と経験に基づくインサイト

Django の学習リソース

次のうち、どれを使用して Django 開発の情報を得ていますか?
次のうち、どれを Django の学習に好んで使用していますか?

正社員の開発者が Django を学習する目的で YouTube を視聴している割合は比較的低く(平均 39% に対して 39%)、この目的には AI ツールはあまり使用されていません(平均 25% に対して 22%)。

チームリーダーは Django News ニュースレター、Hacker News、Reddit、さらには X(旧 Twitter)を利用して Django 開発の最新情報を入手するのが一般的です。 友人からの学習頻度が比較的高いとも報告しています(平均 11% に対して 16%)。

ジュニアプロ開発者は教育にも Django エコシステムの最新動向の把握にも YouTube と StackOverflow をはるかに多く使用しています。 シニアプロ開発者よりも新しい AI ツールを使用する学習方法を好む傾向にあります(平均 25% に対して 38%)。

その他

  • 正社員の Django 開発者は仕事でのみ Django を使用する割合が高くなっています(平均 17% に対して 23%)。
  • チームリーダーおよび正社員開発者全体が最も好んでいる主要コンポーネントはマイグレーションの機能ですが、認証、テンプレート、さらにはクラスベースのビューなどのコンポーネントはあまり好んでいません。
  • メインのエディターに関しては、チームリーダーは VS Code(平均 29% に対して 31%)よりも PyCharm(平均 29% に対して 31%)と Vim(平均 7% に対して 12%)を好む傾向があります。

PyCharm で Django アプリの開発を始める

Django をお使いですか? PyCharm は最高クラスの Django 用 IDE です。 Django 固有のコードインサイト、コード補完、およびハイライト機能を使用すると、より素早くコーディングできます。 プロジェクト内の移動操作も簡単です。 ワンクリックでデータベースに接続し、TypeScript、JavaScript、およびその他のフロントエンドフレームワークで作業できます。 PyCharm は初期状態で Flask と FastAPI もサポートしています。

PyCharm を無料で試す

アンケート回答者に関する情報

重複する回答や信頼性のない回答が除外されたデータセットには 2023 年 9 月~10 月に収集された約 4,000 件の回答が含まれています。

地域的な分布

どの地域を拠点としていますか?

回答者の 44% はヨーロッパ、19% は北米、17% はアジアを拠点としています。

年齢による分布

あなたの年齢層を教えていただけますか? 

回答者のほとんどは 21~49 歳です。 全回答者の 38% が 31~39 歳であるのに対し、21~29 歳は 30% です。

コーディングの業務経験

コーディング業務の経験年数は通算何年ですか?

回答者の大半は 11 年以上のコーディング業務経験を有しています。 アンケート参加者の 24% には 3~5 年のコーディング業務経験があり、19% は 6~10 年間のプロ開発者としての経験があります。 プロとしての開発年数が 2 年未満の開発者はアンケート回答者の 25% を占めています。

職務

あなたの職務は何ですか?

回答者の 79% は職務に開発/プログラミングまたはソフトウェアエンジニアが含まれると答えています。 回答者の 16% はチームリーダーです。 回答者の 10% は職務にデータ解析、データエンジニアリング、またはデータサイエンスが含まれると答えています。

このデータセットには Django Software Foundation の公式チャンネルからの回答のみが含まれています。 回答は djangoproject.comDSF の X(旧 Twitter)アカウントなどの公式 Django チャンネルでのアンケートのプロモーションを通じて収集されており、JetBrains チャンネルの関与は一切ありません。 アンケート結果が特定のツールやテクノロジーに一方的に有利にならないよう、回答の収集には製品、サービス、またはベンダー関連のチャンネルは使用されませんでした。

詳細については、 2023 年 Django 開発者アンケートの全アンケートデータをご覧ください。

オリジナル(英語)ブログ投稿記事の作者:

Ryuji Owan

Valeria Letusheva

image description