~/VibeHandbook
無料 PDF

言語

python.org

Python

概要

中身を告げられずに箱を手渡されたと想像してください。開けてみるまで何が入っているかわかりません。Pythonはデータをそのように扱います。変数に何を入れるかを前もって宣言させず、プログラムが動いている最中にどんな種類の値かを判断します。これが「動的型付け」という言葉の意味です。Pythonは高水準で動的型付けの言語で、読みやすさと膨大なエコシステムが高く評価されています。どこでも動き、ほとんど擬似コードのように読め、データサイエンス、機械学習、スクリプティング、バックエンドサービスのデファクトの共通語となっています。

強み

  • 緩やかな学習曲線と、有名なほど読みやすい構文。
  • 巨大なライブラリエコシステム(PyPI。Pythonのパッケージ置き場)— numpy、pandas、requests、FastAPI、そしてほぼすべてのAI/MLフレームワーク。
  • つなぎ込みコード、自動化、プロトタイピング、データ処理に最適。
  • インタラクティブな探索のための、強力なREPL(入力するとその場で結果が返る対話型プロンプト)とノートブックの文化。

トレードオフ

  • 純粋なCPUバウンドの処理は遅く、GIL(一度に一つのスレッドしか許さないロック)が真のマルチスレッドを制限する。
  • 誰もチェックしない用紙の書き間違いを思い浮かべてください。用紙を実際に提出するまで、誰も気づきません。Pythonも同じです。型エラー(たとえば数値を文字として扱うなど)に気づくのは、たいていそのコード行が実際に動くときで、それ以前ではありません。つまりこうしたエラーを実行時に捕捉します。ただし、型ヒントとmypyやpyrightのようなチェッカーを追加すれば話は別です。
  • 依存関係と環境の管理(pip、venv、poetry、uv)が、繰り返し摩擦の原因になる。
  • スタンドアロンのバイナリをパッケージ化して配布するのがやっかい。

使いどころ

素早く動きたいときにPythonを選びましょう。データパイプライン、MLモデルの学習と推論、自動化スクリプト、社内ツール、そして純粋な実行速度よりも開発速度が勝るWeb (アプリケーション・プログラミング・インターフェース)などです。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)]