Python 3.0で大きく変わる言語仕様Programing Bible(2/2 ページ)

» 2008年10月22日 01時00分 公開
[Joab Jackson,SourceForge.JP Magazine]
SourceForge.JP Magazine
前のページへ 1|2       

変換と移行

 ヴァンロッサム氏は、Python 3.0の検討を始めた時点で移行の難しさについてあまり考えていなかったことを認める。「2000年ごろのコミュニティーは小さかったので、新しいバージョンをリリースしたら、みんながコードを修正して、それで終わりだと思ったのです」

 しかし、ユーザーコミュニティーで意見を募ると、コア開発者のもとにはスムーズな移行プロセスを求める苦言が集まり始めた。移行用のツールが必要だった。

 その役割を担うのが、最近リリースされたバージョン2.6のPythonだ。これは、Pythonの移行バージョンとして使用される。以前のバージョンのPythonで書いたコードはバージョン2.6に簡単にアップグレードできる。2.6のインタプリタは、バージョン3.0で無効になるコードがあると警告のメッセージを表示する。

 「ぜひともPython 2.6にアップグレードしてください。3.0に備えて変更する必要がある古臭いコードが見つかりますから」

 また、開発チームは、Python 2.6のコードをPython 3.0のコードに変換する移行ツール2to3も作成した。つまり、古いコードを2.6で実行し、警告メッセージが出なくなるまでコードを書き直してから、2to3を使ってコードをPython 3.0対応に変換することになる。

 もちろん、Pythonは動的言語であり、型を明示的に宣言しないため、移行ツールが役に立たない場合も多いが、printステートメントをprint関数に変更するなどのありふれたタスクには有効である。

 このツールがあるにせよ、ユーザーコミュニティーの移行の足取りは重いだろうし、Pythonを利用するビジネスのすべてが移行することはないだろうと、ヴァンロッサム氏も認める。

 例えば、アーツ・マルチ氏が勤務する印刷組版会社Page DNAでは、主力業務に20万行のPythonコードを利用している。マルチ氏によると、同社は自動変換ツールが改良されるまで数年待つつもりだという。「[コードをPython 3.0対応に変換するのは]とんでもない大仕事じゃないですか。3.0については話題にもなりません。少なくとも2、3年先ですね」

 そもそもアップグレードの必要があるのか疑いの目で見る人も多い。

 「Python 3.0の実装は、『現代のプログラミング言語が直面する』パフォーマンス、並列性の強化、一貫性のある新しいバンドルライブラリの提供などの問題に比較的わずかしか関心を向けてません」

 ボディー氏は、Python 3.0がほとんどの開発者によって必要なアップグレードであると判断されず、その結果、Windows Vistaが前世代のWindows XPを継ぐデファクトのWindowsにならなかったように、Python 3.0がデファクトのPythonとしてのステータスを失いはしまいかと危ぐする。

 現在、Python実装の筆頭はCPythonである。これはCで書かれたPythonインタプリタだ。ただし、ボディー氏によれば、このほかにJPython(Javaで書かれたPython)、IronPython(Microsoftの.Netの共通言語ランタイムで書かれたPython)、PyPy(Pythonで書かれたPythonインタプリタ)などが存在する。

 「Python 3.0は、ほかのPython実装に注意を向けた方がよいかもしれません。特に、それらがPython 3.0の互換性を優先事項として追ってない場合は」と、ボディー氏は提案する。

 とはいえ、コア開発者チームは、最終的には潮目が変わると確信する。「ほとんどの人は1年後に2.6を使ってると予想します。3.0を使うのは、最先端のものに無条件で飛びつく人だけでしょう。ただし、これから新しいプロジェクトを始めるなら、3.0を使うべきですね」

前のページへ 1|2       

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ