Python
Pythonは1991年にグイド・ヴァン・ロッサムさん(Guido van Rossum)が公開した汎用プログラミング言語です。「読みやすく、シンプルに書ける」を最優先に設計され、WebアプリケーションからデータサイエンスまでIT分野全体で広く使われています。前身はオランダCWIで開発されていた教育向け言語ABCであり、インデントによるブロック構造と動的型付けという核心的な特徴はそこから受け継がれています。
名前の由来
Pythonの名前はヘビの「パイソン」ではなく、イギリスのコメディ番組「モンティ・パイソンのとびっきりウンヌン (Monty Python's Flying Circus)」に由来しています。グイドさんがこの番組のファンだったことから命名されました。
プログラミング言語の名前にコメディ番組を選ぶという選択は、Pythonコミュニティに受け継がれる「楽しさ」の文化を象徴しています。Python公式ドキュメントには「spam」「eggs」「ham」といったモンティ・パイソン由来のサンプル変数名が登場し、公式の絵文字やスタンプにも遊び心があります。
1989〜1991年: Pythonの誕生
1989年12月、オランダの国立数学・情報科学研究所(CWI — Centrum Wiskunde & Informatica)でグイドさんはクリスマス休暇の個人プロジェクトとしてPythonの開発を始めました。当時グイドさんはCWIで教育向け言語ABCの開発に携わっていましたが、ABCには拡張性の制約がありました。「ABCの良い部分を引き継ぎつつ、もっと柔軟で実用的な言語を作ろう」という発想からPythonは生まれました。
1991年にPython 0.9.0が公開されました。初期バージョンですでに例外処理・関数・モジュールシステムを備えており、後のPythonの姿が明確に示されていました。
Pythonが成功した背景には、グイドさんが教育用言語ABCから学んだ失敗の教訓がありました。ABCは「正しい書き方は1つしかない」という厳格さを貫いたため、拡張が難しく、実用的なC言語ライブラリとの連携もできませんでした。Pythonはこれを逆にし、モジュールによる拡張・C言語との連携・UNIX環境との親和性を設計の核心に据えました。
グイドさんの設計哲学
Pythonの設計哲学は『The Zen of Python(パイソンの禅)』として文書化されています。Pythonの対話モードでimport thisと入力すると19の格言が表示され、PEP 20として正式に採択されています。
| 格言 | 言語設計への影響 |
|---|---|
| Readability counts.(読みやすさは正義) | インデントによるブロック構造の強制。コードを書く時間より読む時間の方が長い、という現実への対応 |
| Explicit is better than implicit.(明示は暗黙に勝る) | selfの明示的な記述。import *の非推奨。型ヒントの導入 |
| There should be one obvious way to do it.(明確な方法は1つ) | Perlの「やり方はひとつじゃない(TMTOWTDI)」と対極にある設計哲学 |
| Simple is better than complex.(単純は複雑に勝る) | 言語機能を増やすことより、シンプルに保つことを優先 |
| Errors should never pass silently.(エラーは黙って見過ごすな) | 例外を発生させる設計。エラーを隠蔽しない |
グイドさんは長年「BDFL(Benevolent Dictator For Life — 慈悲深い終身独裁者)」として最終的な設計判断を一人で下す役割を担っていました。この肩書きはユーモアを交えた敬称です。2018年、PEP 572(walrus演算子『:=』の導入)をめぐる議論を契機にグイドさんはBDFLを退任し、現在は5名の「ステアリングカウンシル」による合議制で運営されています。
Pythonの系譜
PythonはABCを直接の祖先に持ち、Lisp・Modula-3・Perl・Iconなど多数の言語から要素を取り入れています。
| 影響元 / 関連言語 | Pythonとの関係 | 取り入れられた要素 |
|---|---|---|
| ABC | 直接の祖先。グイドさんがCWIで携わった言語 | インデントによるブロック構造、動的型付け、対話モード |
| C言語 | CPython実装言語。拡張APIの基盤 | モジュールシステム、C拡張API、標準ライブラリの実装 |
| Modula-3 | 例外処理の設計に影響 | 例外処理の構文、パッケージのインポート方式 |
| Haskell | 関数型機能に影響 | リスト内包表記の構文 |
| Lisp | 関数型機能に影響 | lambda、map()、filter()、reduce() |
| Perl | テキスト処理に影響 | 正規表現サポート(reモジュール) |
| Icon | ジェネレータに影響 | ジェネレータとyield構文 |
主要な歴史的マイルストーン
1989〜1994年: 誕生から1.0まで
1989年12月にCWIのクリスマス休暇の個人プロジェクトとして開発開始。1991年にPython 0.9.0公開、1994年にPython 1.0がリリースされました。lambda・map()・filter()・reduce()がすでに含まれており、関数型プログラミングの影響が初期から見られます。
2000年: Python 2.0 とリスト内包表記
Python 2.0でリスト内包表記が導入されました。Haskellの構文から影響を受けたこの記法は、Pythonコードの簡潔さを象徴する機能として定着しています。ガベージコレクションも追加され、メモリ管理が改善されました。
2001年: Python Software Foundation設立
Python Software Foundation(PSF)が設立され、一人のプログラマーの個人プロジェクトから、コミュニティ主導の言語運営体制へと移行しました。
2008年: Python 3.0 — 後方互換性を断った大改革
Python 3.0は意図的に後方互換性を断った大規模な改訂です。主な変更点は以下の通りです。
| 変更点 | Python 2 | Python 3 |
|---|---|---|
| 文字列のデフォルト | バイト文字列 | Unicode文字列 |
文(print "hello") | 関数(print("hello")) | |
| 整数除算 | 3/2 = 1(切り捨て) | 3/2 = 1.5(実数) |
range() | リストを返す | イテレータを返す |
この互換性の断絶により、Python 2からPython 3への移行には12年の歳月(2008〜2020年)を要しました。多くのライブラリが依存していたためです。最終的にPython 2のサポートは2020年1月1日に終了し、現在はPython 3が唯一の現役バージョンです。
2018年: グイドさんのBDFL退任
PEP 572(walrus演算子:=)をめぐる議論の過程でグイドさんはBDFLを退任。現在は5名の「ステアリングカウンシル」による合議制で言語の方向性が決められています。一人の天才が始めた個人プロジェクトが、世界的なコミュニティ運営へと成熟した事例です。
2023年〜: Python 3.11〜3.12の高速化
Python 3.11ではインタプリタの実行速度が前バージョン比で平均25%向上し、Python 3.12でもさらなる改善が続いています。「Pythonは遅い」という課題への継続的な取り組みが実を結んでいます。
現代の使われ方
2026年現在、Pythonは複数の領域で第一選択肢となっています。
データサイエンス・機械学習
NumPy・pandas・scikit-learn・TensorFlow・PyTorchという強力なエコシステムにより、この分野ではPythonが事実上の標準言語になっています。研究者が論文のコードをそのまま共有できるため、学術界とのフィードバックループも機能しています。Pythonのインターフェースで書かれた処理が内部でC言語やFortranで動くという構造が、「書きやすさ」と「実行速度」を両立させています。
Web開発
Django(Instagram・Pinterest等で利用)・Flask・FastAPIが主要なWebフレームワークです。Djangoはフルスタックフレームワークで管理画面の自動生成・ORM・認証を一通り備え、FastAPIはPythonの型ヒントを活用した高速なAPI構築に特化しています。
自動化・スクリプト
標準ライブラリだけでファイル操作・正規表現・JSON処理・HTTP通信をカバーできるため、外部ライブラリなしに実用的な自動化スクリプトが書けます。devOps・CI/CD・テスト自動化の分野でも広く使われています。
教育
構文がシンプルで読みやすく、エラーメッセージが比較的わかりやすいため、世界中の大学でコンピュータサイエンス入門コースの言語として採用されています。「入門から実務まで同じ言語」という連続性が特徴です。
よくある誤解
「Pythonは遅い」という誤解
Pythonのインタプリタ自体はC言語と比べると速くありません。しかし、NumPy・pandasといった主要ライブラリの計算コアはC言語やFortranで書かれており、Pythonはそれを呼び出すインターフェースとして機能します。計算が重い処理はC言語の速度で実行されるため、「Pythonアプリは遅い」という結論にはなりません。Python 3.11以降ではインタプリタ自体も高速化が進んでいます。
「PythonはAIの言語」という誤解
PythonはAI・機械学習の分野で支配的ですが、それはPythonの特性がAIに向いているからではなく、NumPy・TensorFlow・PyTorchといった研究者コミュニティのエコシステムがPythonを選んだ結果です。Pythonは汎用言語であり、Web開発・スクリプト・教育・科学計算と多分野で使われています。
「インデントが厳格で書きにくい」という誤解
インデントでブロックを表す構文は、最初は不慣れに感じることがあります。しかしこれはPythonの設計哲学「Readability counts.」の具体化です。インデントを強制することで、どのエディタでPythonコードを書いても「読みやすいコード」が書かれやすくなります。タブとスペースの混在はエラーになるため、エディタの設定でスペース4つに統一しておくと問題は起きません。
「Python 2のコードはまだ動く」という誤解
Python 2のサポートは2020年1月1日に終了しています。新規に書くコードはPython 3で書くべきであり、Python 2向けのコードは修正が必要です。既存の環境でPython 2が動いている場合でも、セキュリティ修正が提供されないため、アップグレードを検討する必要があります。
関連用語
- Guido van Rossum(グイド・ヴァン・ロッサム) — Pythonの設計者。オランダ出身。CWIでABCの開発に携わった後、1989年にPythonの開発を開始。2018年までBDFLとして言語の最終決定権を持っていた
- BDFL(Benevolent Dictator For Life) — 慈悲深い終身独裁者。グイドさんがPythonの仕様に関する最終判断者だったことを指す。2018年の退任後は合議制のステアリングカウンシルに移行
- CPython — C言語で書かれたPythonの標準実装。
pythonコマンドで通常起動するのがこれ。他に高速化実装のPyPyやJVM上で動くJythonなどがある - PEP(Python Enhancement Proposal) — Pythonの機能追加・変更を提案・議論するための文書形式。PEP 8はコーディングスタイル規約、PEP 20はThe Zen of Python、PEP 572はwalrus演算子
- The Zen of Python — Pythonの設計哲学を19の格言にまとめたもの。Tim Petersさん著、PEP 20として採択。
import thisで表示できる - ABC — Pythonの直接の祖先である教育向け言語。CWIで開発。インデントによるブロック構造と動的型付けをPythonに引き継いだ
- PyPI(Python Package Index) — Pythonのパッケージリポジトリ。
pip installでパッケージをインストールできる - GIL(Global Interpreter Lock) — CPythonの実行制御機構。同一プロセス内で同時に動作できるPythonスレッドを1つに制限する。マルチスレッドのCPU並列処理を制限する要因として知られる。Python 3.13以降でオプション無効化が可能になった
- NumPy — 多次元配列・行列演算ライブラリ。C言語で実装された計算コアにより高速。科学計算・機械学習ライブラリの基盤
- Django — フルスタックWebフレームワーク。管理画面自動生成・ORM・認証機能を内蔵。Instagram・Pinterest等で使用