私がPythonistになれない理由

2007年6月1日 (金)

ソフトウェアの開発は、すべての開発ツールがひとつの環境に統合されている統合開発環境(IDE)で必ず行うもの、と私は思い込んでいた。

もちろんIDEの存在する前、十数年前まで、デバッグはいわゆるprintfデバッグというトレースデバッグだった。デバッグ文をC言語のprintf()関数でコンソールに出力、またはログ出力させるデバッグ法である。デバッガはよほどのことがなければ使用しなかった。アプリケーション開発にはそれで充分だった。

その後C/C++言語開発環境では、マイクロソフトのVisualC++(開発環境はVisualStudio)というIDEが登場した。これは非常に優れたIDEだった。いまでも一番優れている、と私は思う。

十数年前に登場したJava言語のIDEは、最初はJBuilder、そして今はEclipseというこれまた優秀なIDEに収斂していった。

そしていま、Javaの次世代言語は何か、ということが議論される時代になってきた。もちろんJavaは衰退しているわけではないが、もっと開発スピードアップの可能な言語が求められている。その次世代言語として、PythonとRubyが筆頭候補となっている。

先日私のPython事始で書いたように、私は最近Python言語を始めた。VisualStudio,JBuilder,Eclpiseという、優れたIDEを経験している私としては、将来を嘱望されているPython言語には同程度のIDEが存在するもの、と思い込んでいた。

どうもそうではないらしい。私はいま発売されているPython言語関連書籍をすべて買い求めて勉強したが、IDEについて記述はほとんど無し。Python付属の文字ベースデバッガについては記述はあったが、文字ベースデバッガでは私にとっては時代が逆に戻ってしまう。

ちょうどPythonのメーリングリストにもPython用IDEを探している投稿があったが、Pythonのメーリングリストのお歴々の反応は、「なぜIDEが必要なのかわからない」、「IDEではなく文字ベースで充分である。海外の著名なPython開発者もIDEは使用していない」だった。

それでは私の主義に反するので、私なりにいろいろ探した。結局、上記Java用IDEであるEclipseにPython用プラグインのPyDEVが最も適切、という結論になった。私はWEBアプリケーション開発が目的なので、Pythonプログラム以外にHTML,css,JavaScript,XML等を扱う必要があり、それらがすべて処理可能なIDEはEclipseのみだった。(Komodoは可能だが有料ソフト。EclipseとPyDEVはフリーソフト。)

ただ問題は残った。PythonによるWEB開発フレームワークであるTurboGearsを使用したときデバッグできないのである。ブレークポイントは設定できるが、実行してもそこで止まらないのである。

Pythonメーリングリストも参考にしていろいろ調べた結果、TurboGearsのデバッグにはリモートデバッグしか方法は無さそう、ということがわかった。アプリ側にデバッガコールの文を埋め込んでおき、その箇所が実行されたときデバッガとアプリが通信し、デバッガがアプリ側のスタックフレーム等にアクセスしてデバッグする、という方法である。このリモートデバッグはPyDEVプラグインにその機能は無い。上位のPyDEV EXTENSIONSにしなければならない。PyDEVはフリーソフトだがPyDEV EXTENSIONSは有料。残念だがこれしか方法は無い。この方法を採用することにした。

Pythonを主に開発する人、またはPythonオタクをPythonistと言うらしい。そしてPythonistである必要条件のひとつが、IDEを使わないで開発、またはIDE嫌い、だ。

というわけで、IDE主義者の私はPythonistになれないし、なりたくない。

そして、Windows上で動く優秀なPython用IDEが登場するまで、本格的なPython普及はあり得ない、と私は思っている。

 

QLOOK ANALYTICS