言語・実行環境 種別:言語 成熟度 安定 学習コスト 低

Python

読みやすさを優先した動的型付け言語。データ処理・自動化・AI分野の共通語

分野「言語・実行環境」:プログラムを書くための「言葉」と、それを動かす仕組み。 この分野で最初に触るツールとして挙げている。 分野の役割とつながりは分野の解説へ。

別名:CPython、py、Python 3

できること

Python ができないこと

  • 標準の CPython で、複数スレッドによる CPU 処理の並列実行(GIL により1スレッドずつ)
  • ブラウザ上での実行(WebAssembly 経由の実験的手段を除く)
  • 単一の実行ファイルとしての軽量な配布(同梱ツールはあるがサイズが大きく起動も遅い)
  • コンパイル時の型エラー検出(型ヒントは実行時に検査されない。別途型検査器が必要)

制約

先頭の行が、このツールで最も先に当たる制約。値はすべて出典の一次情報で確認したもの。

項目 影響 出典 検証日
スレッド並列の上限(GIL) (主要制約) CPython では同時に1スレッドしか Python バイトコードを実行しない。I/O 中は解放される CPU 負荷の高い処理をスレッドで並列化しても速くならない。multiprocessing か、GIL を解放する拡張(NumPy 等)を使う。3.13 以降はビルドオプションで GIL 無効化が可能だが既定ではない docs.python.org
バージョンのサポート期間 毎年10月に新版。バグ修正2年+セキュリティ修正3年の計5年 5年で EOL になるため、長期運用ではメジャー更新の計画が必要。依存ライブラリが新版に追従するまで数か月遅れることが多い peps.python.org
小数の表現 float は IEEE 754 倍精度(2進浮動小数) 0.1 + 0.2 が 0.3 にならない。金額計算は decimal モジュールを使う docs.python.org

典型的な落とし穴

  • 仮想環境(venv)を作らずにグローバルへ pip install すると、プロジェクト間で依存が衝突する
  • OS 同梱の Python(macOS や Linux のシステム Python)を使うと、OS 更新で壊れることがある。別途インストールする
  • 可変オブジェクト(リスト・辞書)を関数の既定引数にすると、呼び出し間で状態が共有される
  • 実行速度は C や Go の数十分の一になることがある。ボトルネックはライブラリ(NumPy、pandas、Polars)に任せる前提で設計する

コスト

課金モデル
無料
跳ねる条件

PSF ライセンスで無償、商用利用も制限なし

出典
docs.python.org  検証

代替手段と差分

代替 何が違うか
TypeScript TypeScript はコンパイル時に型を検査し、ブラウザとサーバーの両方で同じ言語を使える。データ処理と AI のライブラリは Python が厚く、Web 画面は TypeScript が厚い
Go Go は単一バイナリで配布でき、並列処理が言語機能として軽い。書く量は増えるが実行速度と配布の容易さで勝る。CLI や常駐サーバーなら Go

このツールを代替として挙げているページ: Node.jsGoPlaywrightTypeScriptRust

選定判断

データ処理・自動化スクリプト・AI 連携・学習用途では第一候補。配布が単一バイナリである必要がある場合、CPU 並列が要る場合、ブラウザで動かす場合は他言語を選ぶ

「とりあえず書いて動かす」までの距離が最短の言語で、データ処理(pandas、Polars)、機械学習(PyTorch、scikit-learn)、自動化の分野でライブラリが最も厚い。

制約の中心は実行速度と並列性である。重い処理は自分で書かず、C で実装されたライブラリに委ねるのが前提の設計になる。この前提が成り立たない領域(ゲームエンジン、組み込み、高頻度取引)では最初から候補に入らない。