ここ2、3年で多くの言語がJava Virtual Machine(JVM)へ"ポート"され、中にはJVM上だけで動かすために作られた言語もある。Ruby(JRuby)、JavaScript(Rhino)、Groovy、Python(Jython)などがそうだ。特にPythonはJythonのおかげもあり、この1年ほどでJVMに対する大きな推進力を得てきた。
JythonはPythonプログラミング言語をJVMで実行できるように設計された実装系だ。その歴史は10年と少しになるが、当初ははっきりって活気がなかった。Jython陣営で多くのことが進んだのは最近になってからで、それによりPythonはJVMへの足場を固めてきている。InfoQはJythonプロジェクトのリードであるFrank Wierzbicki氏にJythonおよびJVM上のPythonの状況について話を聞いた。
この1年ほどJythonの周辺はより盛り上がっているようですが、それはなぜだとお考えでしょう?
以前のどのバージョンよりもCPythonと互換性をもったJython 2.5がリリースされたことが大きいと思います。これまでよりもずっと多くのPythonアプリやPythonフレームワークを動かすことができるようになりました。Django、Pylons、Py2Webは正常に稼働しますし、SQLAlchemyも0.6ならJythonで動くことになります。(数例だけあげますが)Twisted、TurboGears、GrokもJythonで動くように開発が進められています。Jyhonで実行すればJavaライブラリがPythonネイティブのものであるかのように利用することができます。
Jythonの開発においてSun Microsystemsはどのような役割を果たしているのでしょう?
Sunは私がJythonにフルタイムで取り組むことを許してくれています。私はこれまでNetBeansチームがPythonやJythonをNetBeans IDEにとっての最重要事項にすることを手助けしたり、Jython、Django、PylonsがGlassFishで動くようにもしてきました。もちろんこれらのチームもJythonを自分たちの作業の一部として扱い貢献してくれています。
Jython 2.5での変更点で一番重要なものはなんですか?
2.5での焦点はJythonをPythonの素晴らしくモダンでCPython互換の実装にすることでした。私たちはできるかぎり多くのPythonフレームワークやアプリケーションを動くようにチャレンジしています。パフォーマンスのチューニングにはそれほどの時間をかけることができていませんが、次はその点についてを考えています。CPythonと比べてもいい線を行くくらいにパフォーマンスを良くしたいと思います。
Jython 2.6へ向けてのロードマップはどうなっていますか?
今はパフォーマンスに重点をおいていますが、多くの機能も追加しようとしています。たとえばJavaライブラリとの連携を改善するよう計画しています。具体的にいうと、"jythonc"と呼ばれるJython 2.2.x以前からのツールがあるのですが、これはある種のJavaとの連携を実装してjar(Javaの配布フォーマットのひとつです)にパッケージするのに便利なものです。しかしjythoncの内部設計のために、新しいPythonの機能のいくつかをサポートすることができないのです。そのためリプレースする必要があるとみています。また、より多くのアプリケーションやフレームワークがJythonで動くことを確かなものにするつもりです。いずれはJythonで動かないアプリがあったら、それはアプリにバグがあると言えるようになりたいですね。
Python3k(Python 3.0)に対応したJythonも出る予定ですか?
それはほぼ間違いありません。3.0は未来のPythonであり、つまりはJythonの未来でもあります。まだ本格的には取り組みを開始していませんが、2.6のリリース後はそのことを真剣に考えるようになると思います。2.6を待っているのはPython 2からPython 3に移行するためのツールにまずは2.6が必要だからです。
Jythonがより多くのエンタープライズアプリケーションで採用されるとお考えですか?
Jythonで動かすPylonsやDjangoをWARファイルに入れて本番運用しているという人たちについて聞いたことがありますし、ある環境ではCPythonのデータベースアクセスよりもJDBCを使ったJythonの方が良く動くということを発見した会社がいくつかあるとも聞いています。2.5がモダンPythonであるということは多くの場合において良い選択肢となる理由になるでしょう。世間の人たちがJythonが生まれてどれだけになるか知っているかは分かりませんが、最初のリリースは1998年の7月で、当時はJavaとは関係ないJVM向けのプログラミング言語でした。そのため企業はJythonを長く使ってきたのです。たとえばJythonはIBM WebSphereやOracle WebLogicの両方で管理用スクリプト言語となっています。
JVMにおけるPythonの状況についてどのように見ていますか?
JVM上のPythonは順調に進展していると思います。John Rose氏によるDa Vinci MachineプロジェクトはJVMを動的言語にとってより良い場所にすることに力を注いできました。この取り組みの方法はJDK 7にも取り入れられ、またその成果を私たちも利用できるようになればJythonのパフォーマンスを劇的に向上させるのに大いに役立つでしょう。その成果を利用できるようなJythonを私の方で試作しているところです。
Jythonプログラミング言語で多くの取り組みがされているのに加え、この言語についてのリソースもいろいろと出ている。言語自体の新しい本、WebSphereをJythonで管理するための本、オンライン書籍、ポッドキャスト、PyConでの話やチュートリアルなどがそうだ。JVM上のPythonについて知りたいことがある方は上記文章中のリンクやJythonのホームページをチェックしていただきたい。
追加のリソース: