Python
概要
Pythonは高水準で動的型付けの言語で、読みやすさと膨大なエコシステムが高く評価されています。どこでも動き、ほとんど擬似コードのように読め、データサイエンス、機械学習、スクリプティング、バックエンドサービスのデファクトの共通語となっています。
強み
- 緩やかな学習曲線と、有名なほど読みやすい構文。
- 巨大なライブラリエコシステム(PyPI)— numpy、pandas、requests、FastAPI、そしてほぼすべてのAI/MLフレームワーク。
- つなぎ込みコード、自動化、プロトタイピング、データ処理に最適。
- インタラクティブな探索のための、強力なREPLとノートブックの文化。
トレードオフ
- 純粋なCPUバウンドの処理は遅く、GILが真のマルチスレッドを制限する。
- 動的型付けは、型ヒントとmypyやpyrightのようなチェッカーを追加しない限り、型エラーを実行時にしか捕捉しない。
- 依存関係と環境の管理(pip、venv、poetry、uv)が、繰り返し摩擦の原因になる。
- スタンドアロンのバイナリをパッケージ化して配布するのがやっかい。
使いどころ
素早く動きたいときにPythonを選びましょう。データパイプライン、MLモデルの学習と推論、自動化スクリプト、社内ツール、そして純粋な実行速度よりも開発速度が勝るWeb APIなどです。AIやデータに関連するあらゆるものにとって、最も無難なデフォルトです。
バイブコーディングとの相性
AIアシスタントはPythonで群を抜いて強力です。学習データで最も多く表現されている言語なので、生成されるコードは通常、慣用的でそのまま動きます。AIをうまく導くには、使いたいライブラリとバージョンを正確に指定し(例:「FastAPIとPydantic v2を使って」)、自分とモデルの双方が地に足をつけられるよう型ヒントを求め、バージョンのずれを避けるために最初にrequirements.txtやpyproject.tomlを要求しましょう。各ステップを次に進む前に検証できるよう、小さなテストや実行可能なif __name__ == "__main__"ブロックを追加するようアシスタントに指示しましょう。
from collections import Counter
def top_words(text: str, n: int = 3) -> list[tuple[str, int]]:
words = (w.lower() for w in text.split())
return Counter(words).most_common(n)
print(top_words("the cat the dog the bird")) # [('the', 3), ('cat', 1), ('dog', 1)]