この記事を読むのに必要な時間:およそ 1.5 分
みなさんはPythonの「バージョン3000」について聞いたことがあるでしょうか。
「Python 3000」とは,Pythonの次期バージョンである3.0につけられた愛称です。もともと「西暦3000年に完成予定」という,Pythnonista特有の毒のあるジョークからつけられた愛称でした。世紀をまたぐ壮大なジョークから受ける印象とは異なり,当初の予定通り最初のアルファ版がつい先月,2007年の8月末にリリースされました。
Python 3.0を一言で言い表すなら「現実路線」です。無理をせず,開発者コミュニティにも移行に関わる大きな痛みを強いず,現実的かつスムーズに,Pythonという言語を進化させる。それがPython 3.0が目指しているゴールといえます。
Python 3.0の主な変更点
Python 3.0では,以下のような変更が行われる予定です。
- ・割り算演算子の変更
- 整数÷整数で浮動小数点数が返るようになります。
- ・文字列型の変更
- 文字列型が変更不可能(immutable)なUnicodeベースの型になります。
- ・組み込み型,リテラルの追加
- 変更可能(mutable)な8ビット文字列bytes型,変更不可能な8ビット文字列str8型,2進数型などが組み込み型に追加されます。また,set型をリテラルで表記できるようになります。
- ・組み込み型のメソッドを一部削除
- 文字列型のfind(),辞書型のhas_key()など,より一般的な代替物があるようなメソッドが削除されることが予告されています。
- ・一部組み込み関数の削除
- apply(),input()などが削除される予定です。
- ・print文を組み込み関数に
- print(x, y, z)のように利用することになります。
- ・標準モジュール名の変更,再構成
- 一部命名規則にそぐわないモジュールの名称が変更されます。また,モジュールの再構成と再配置が予定されています。
後方非互換性を含む仕様変更
Pythonはこれまで,できる限り「後方互換性」を守る形でバージョンアップを進めてきました。バージョンアップしても既存のスクリプトをそのまま使える,ということはPythonの大きな強みでした。しかし,後方互換性という「しがらみ」があるがために「不整合」や「ほころび」が残ってしまっていることも事実です。Python 3.0では,そのような不整合やほころびについて,後方互換性を崩すことをいとわず仕様変更が行われます。
たとえば,Python 3.0では,これまでのPythonで「文」だったprintという命令が組み込み関数に変更になります。これまで「print "foo"」という行を書いて文字列を表示していたのを,3.0からは「print("foo")」のように関数呼び出しの形で書き直す必要があります。
print文のように,特定の処理を実行する命令が「文」として存在することについては,さまざまな人々が異論を唱えてきました。たとえば,2.xまでのprint文で出力先を標準出力以外に変更するには「print >> somefile , "foo"」のように書かなければなりません。表記として奇妙ですし,3.0の「print("foo", file=somefile)」という仕様の方がずっとスッキリしています。後方互換性を崩す仕様変更の大部分は,このようにPythonの言語としての一貫性を強める目的で実施されます。
移行方法とリリーススケジュール
2007年8月にリリースされたPython 3.0のαバージョンは,いわば「プレα」の状態にあります。言語のコアに関して,想定された機能のうち大部分を実装し終えた状態です。今後,不具合を取り除き,さらに標準モジュールの移植を進めて正式リリースにいたるはずです。Python 3.0の正式リリースは2008年に予定されています。
Python 3.0の実装とともに,Python 2.6というバージョンの実装も進められています。Python 2.6には,3.0に実装される一部機能を実装するほか,「3.0以降モード」が搭載されることが予定されています。Python起動時にオプションを付けると,3.0で利用できない機能を利用したときにアラートが出る,という機能のようです。また,2.6では標準モジュールをPython 3.0に対応するための開発も行われるようです。
既存のPythonユーザは,3.0に先だってリリースされる予定の2.6を使いながら,徐々に3.x系への移行を進めてゆくことになります。また,3.0リリース後も少なくともひとつの2.x系メジャーバージョンがリリースされることが予告されています。このようにして,既存ユーザを緩やかに3.x系に誘導する,というのがPythonの移行戦略のようです。
Pythonのリリース予定

将来性のある言語 Python
Pythonはすでに世界中で使われている言語です。日本国内でも徐々に認知が広がり,国内の開発者が業務でPythonが利用される機会も増えてくることでしょう。そのような場合に考えなければならないのが言語の「将来性」です。Pythonは,リリーススケジュールや機能追加,変更が明確に示されています。
Pythonは5年,10年と使い続けることができるプログラミング言語です。GoogleやMicrosoftといった成長企業がPythonを選び,支援する理由が,Pythonの将来性にあると筆者は思っています。