12月10日、Engineering at Metaで「2024年の型付きPython: 広く採用されているが、使いやすさの課題は残る(Typed Python in 2024: Well adopted, yet usability challenges persist)」と題した記事が公開された。
Pythonの型ヒントとは、下のコード例のように、変数や関数の型を明示できる機能であり、2015年9月にリリースされたPython3.5から利用可能になった。
# floatを引数に取り、strを返す関数
def surface_area_of_cube(edge_length: float) -> str:
return f"The surface area of the cube is {6 * edge_length ** 2}."
だが、型の指定は必須ではないことや、既存のライブラリに型情報が不足していることも多く、完全に普及しきっているとは言い難い。この記事では、そんな型付きPythonの普及状況、開発者の意識、課題、そして今後の改善提案について詳しく紹介されている。
1. 調査の概要
2024年の夏、Meta、JetBrains、Microsoftの3社は共同で、Pythonの型ヒント(type hint)の利用状況を調査するための大規模なアンケートを実施した。対象者はPythonの開発者コミュニティの1,083名で、調査はX(旧Twitter)、LinkedIn、RedditなどのSNSプラットフォームを通じて行われた。調査は7月29日から10月8日まで行われ、開発者のプロファイル、利用ツール、型付きPythonへの感情、使用の実態に関するデータが収集された。
2. 主な調査結果
● 型付きPythonの普及状況
- **88%**の回答者が「常に」または「頻繁に」Pythonコードに型ヒントを使用していると回答。
- 型ヒントの採用を促進している要因は以下の通り。
- IDEのツールサポート
- ドキュメントの改善
- バグの事前検出
- ただし、型の利便性と複雑なパターンの表現能力には依然として課題が残っている。
3. 開発者の利用環境
● 開発分野
Pythonは汎用的なプログラミング言語であるため、以下のような多様な分野で型ヒントが利用されている。
- スクリプト/自動化
- ウェブ開発
- データ分析
- AI/機械学習
- DevOps
- 教育
個人プロジェクトでも**66%の開発者が型ヒントを使用しており、これは職業的な開発者(78%**)と比較するとやや低いが、依然として高い割合である。
4. IDEと型チェッカーの選択
● 人気のIDEと型チェッカー
- VS Code + Mypyの組み合わせが最も人気。
- PyCharm + Mypyが次いで人気。
- 67%の開発者がMypyを使用し、38%がPyrightを利用している。
● その他の利用ツール
- EmacsまたはNeoVIMのユーザーは全体の**11%**を占める。
- Pydanticもよく使われており、62%の開発者がPydanticを使用している。
5. 型ヒントに対する評価と課題
● 開発者が評価する点
- 補完の改善(59%)
- バグの事前検出(49.8%)
- ドキュメントの改善(49.2%)
型ヒントはコードのリファクタリングを容易にし、設計上の問題に気付かせてくれるため、開発者にとって有益な機能である。
「実際のバグを見つけてくれる。型指定が難しい場合、設計の欠陥があることが多い。」
● 直面している課題
- 型システムの複雑さ(29件の回答)
- 型チェッカーのパフォーマンスの遅さ(22件の回答)
- 型チェッカー間の一貫性の欠如(21件の回答)
特に、複雑な動的機能を型で表現することの難しさや、人気ライブラリの型アノテーション不足が課題として挙げられた。
「多くのライブラリが型アノテーションを欠いており、コードの解析が妨げられ、実行時エラーの原因になっている。」
「動的な機能を表現するために多くの工夫が必要であり、最終的には完全に正確な型表現は難しいことが多い。」
6. 型ヒントを使わない理由
回答者のうち**29%**(321名)の開発者は、型ヒントを使わない理由について次のように回答した。
- 「私のプロジェクトでは必要ない」と考える開発者が11%。
- これらの開発者の60%が「常に」または「頻繁に」型ヒントを使用しているが、この割合は全体の平均(88%)よりも28ポイント低い。
7. Pythonのメンテナやツール開発者への提言
調査の結果、Pythonの型システムとツールの改善に関して、開発者から次のような要望が挙げられた。
- 型チェックツールの一貫性向上
- 動的および複雑なパターンのサポート
- 実行時の型チェック機能の強化
- ドキュメントの可用性と発見性の改善
Python 3の型付けに関する公式ドキュメントが最も多くの開発者に利用されているが、特に高度な型機能に関するドキュメントが不足しているとの意見が多く寄せられた。
まとめ
2024年の型付きPythonの調査から、型ヒントの利用が着実に増加していることがわかった。特に、補完機能の向上、バグの早期発見、リファクタリングの容易化が評価されている。しかし、動的機能の表現の難しさや型チェッカーの一貫性のなさは、依然として課題である。Pythonのメンテナやツール開発者は、標準化とドキュメントの改善を求められており、開発者の声を反映する形での改善が望まれている。
詳細は[Typed Python in 2024: Well adopted, yet usability challenges persist]を参照していただきたい。