Python 3.0の功罪は

 Webアプリで使われるプログラミング言語Pythonがバージョン3.0となってリリースされた。困ったことにバージョン2との互換性がないということである。このままバージョン2と3の系列は別々に存在していくのか、すでに公開されているWebアプリなどは、書き換えが必要になってくるのだろうか

「Python 3.0」の正式版がリリース-Python 2シリーズとは非互換(ZDNet Japan)

 プログラミング的には機能や関数が追加されたりして便利になっていいことなのだろうが、すでにWebアプリが公開されて運用されているものにとっては、即座にはともかく、近い将来的にサーバーを入れ替えたり、Webアプリを他のサーバーに移植したりするときに問題が起きてきそうな気がする。サーバーが新しくなった場合にそのディストリビューションにデフォルトで含まれている言語のバージョンが異なっていたりすることがある。自分で管理できるサーバーならば、言語のバージョンをダウングレードしたりすることもできるだろうが、間借りしているだけのサーバーだとそうもいかない。

これらの変更は全般的に、Pythonによる開発を単純化し、時とともに堆積した不要に複雑化した部分を取り除くものだという。しかし、Pythonの開発チームは、ほとんどのPythonベースの既存アプリケーションで、変更が必要となると以前から説明していた。

 以前、PHPによるWebアプリを自宅のFedoraの上で作り、ちゃんと動いていたものを、とある所の正規のRedhat Enterprizeサーバーに移植して動かそうとしたら、エラーばかりでピクリとも動かない。ネットの環境が違うからかと思ってセキュリティ関係のところをいろいろ調べたが状況は変わらない。やっと気が付いてみたら、Fedoraで開発したときはPHP5を使っていたが、その運用中のRedhat EnterprizeではPHP4のままだった。同じ内容でもPHP5ではPHP4から関数の名前が変わっていたのである。入力やアップロードも受け付けるWebアプリだっただけに、こういう微妙な部分は、結果オーライだとセキュリティホールにもなりかねない。


 さて日常的には軽いWebアプリはPHPをいじることが多いのだが(日本ではLightWeight Language(LL)の中では人気の1番)、Pythonにはやや特別な関心を持っていた。それはGoogleのアプリがPythonが使われていることが多いからであった。ややプロ向きの言語といえるかもしれない。そして現在Googleクラウドとして公開されている、Google App Engineで開発に使える言語はPythonだけになっているからである。近い将来的には使える言語が追加されていくだろうが、そのこともあってニワカPython使いになろうとしているところでもある。感覚的にはPerlによるCGIに近い。そこにこのPythonの新バージョンであるから、Google App Engineでのバージョンはどうなるのだろうか。ただでさえ、LLやJavaやら関わらなければならない言語の数は多いのに、同じ言語でもバージョンの違いに気遣わなければならないのは、ちょっと辛そうではある。