Python 3.0で大きく変わる言語仕様:Programing Bible(2/2 ページ)
UsenetではCとJavaに次ぐ人気のPython。次期バージョンとなる3.0では、細かな部分で過去の資産をばっさりと捨て去る予定となっている。ほかのPython実装の動き次第では、バージョン3.0は後に大きな変革のバージョンだったと呼ばれるものになるかもしれない。
変換と移行
ヴァンロッサム氏は、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を使うべきですね」
関連記事
- Pythonを用いたCGIスクリプティング入門
CGIスクリプティングの世界を席巻している言語がPerlなのは確かだが、Perlより優れているはずのツールも幾つか存在している。本稿ではPythonを用いたCGIスクリプティングの世界を簡単に紹介しよう。 - プログラマーの生産性を高める新たな言語「D」
CやC++が持つ性能の高さとRubyやPythonのような最近のプログラミング言語が持つプログラマーの生産性の高さを併せ持った言語「Digital Mars D」が登場した。 - Eclipse+PyDEV=Python統合開発環境
PyDEVは、EclipseでPythonやJythonのプログラムを開発するためのプラグイン。これを使うと、Eclipseが第一級のPython統合開発環境になる。 - Yahoo!、Python開発者センターを立ち上げ
Yahoo! Developer NetworkのPython Developer CenterではPythonのさまざまな使い方を示すハウツーが提供されている。
Copyright © 2010 OSDN Corporation, All Rights Reserved.