~/VibeHandbook
$39

言語

python.org

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.txtpyproject.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)]