BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース JVM上のPython Webフレームワーク

JVM上のPython Webフレームワーク

ブックマーク

動的オブジェクト指向プログラミング言語Python(サイト・英語)は、かなり以前から存在する。その生涯の中にある、多くのWebフレームワーク(Pylons、TurboGears、CherryPy、Zope、Djangoなど)は、Ian Bicking(source)が指摘するように、開発者の選択を困難なものにしている。

とても長い間(それらのフレームワークの大半が存在するよりも長い間)、人々はPythonのWebフレームワークが増殖することに抗議してきました。
Django(サイト・英語)は最近、PythonとJavaの世界で勢いを増している。
Djangoは、迅速な開発と、きれいで実用的な設計を促進する、Pythonによる高度なWebフレームワークです。

Djangoは、目まぐるしいオンラインニュースの業務で2年以上、開発および利用され、集中するニュース編集室の締め切りと、それを書いた熟練したWeb開発者の厳しい要求という、2つのチャレンジに対処できるように設計されました。それは、ハイパフォーマンスで、洗練されたWebアプリケーションを、迅速に構築することを可能にします。 

Djangoは、可能な限りの自動化と、DRYの原則に忠実であることに、フォーカスしています。

JVMサイドには、Jython(サイト・英語)が存在する。

ハイレベルで動的なオブジェクト指向言語であるPythonの、100%純粋なJavaによる実装で、Javaプラットフォームとシームレスに統合されます。それは、Javaプラットフォーム上で、Pythonを実行することを可能にします。
Jythonは、バージョンが2.1から2.2になるまでに6年近くかかったが、ここ数ヶ月で2つの候補版ともう1つの安定版をリリースし、現在のバージョンは2.2.1だ。Jythonの開発者は、CPython 2.5に合わせて、さらにクリーンで一貫性のあるコードベースを提供するために、Jython 2.5の製作に懸命に取り組んでいる。
Jython 2.5の目標は、CPythonフレームワークのいくつかの機能、特に以下のようなWebフレームワークを手に入れることです。
  • Django
  • Pylons
  • TurboGears
  • Twisted

InfoQは先日、Pythonエバンジェリストで、Django on Jython(DoJ)のコントリビュータでもある、Jim Baker氏に今後の予定を聞くことができた。

Django on Jythonはいつごろリリースされますか?

今年です。それは、Jythonの次のリリースが前提となります。#2の計画を見てください。対照的に、Djangoは、(マイナーな)Jythonの非互換性を、多くの人々が発見してくれたおかげで、マイナーチェンジをするだけです。現在、私達が発見した問題のほとんどは、Djangoが、JythonではなくPythonで実行することを想定している箇所のテストでのみ、実際に発生します。たとえば、私達はJava(のConcurrentHashMap)を使っているので、ハッシュアルゴリズムがディクショナリの実装と同じだという想定は、正しくありません。それでもDjangoは、それらのテストプロセスの成果について、実際には心配していません。私達はいまだに、すべてのテストにパスする(必要の応じて修正される)ことで、これを保障することを計画しています。
Jythonのどのバージョンが必要とされますか?
Jythonプロジェクトで目標としているのは、CPython 2.5(あるいは一般にPythonと呼ばれるもの)と同等のJython 2.5です。これは実際に、とても速く進んでいます。私達は2.5のコンパイラを試験的に利用できますが、さらなる人々がテストすることで、ますます安定してきています。この「新しいコンパイラ」は、私が指導したGoogle Summer of Codeプロジェクトで開始されました。(Bruce Eckelはブログの投稿(source)で、これについて述べています。私達は実際には、9月中旬まで、それに当たりました!)私達は3月中旬のPythonカンファレンス(PyCon)(source)で、私達のいるところに基づく、特定の目標を設定するでしょう。Tobiasと私もまた、PyConで「Jythonのための新しいコンパイラ」)(source)という論文を発表します。
リリースに伴い、インストールは簡単になりますか?現在、あなたのブログの投稿(source)では、パッチの適用や、ファイルのコピーなどを、提言しています。
インストールは簡単になるでしょう!私の報告は単に、この目標にどれくらい近づくかを、示したものです。私はまた、EclipseやNetbeansのようなメジャーなIDEで、プラグインをサポートする予定ですが、これは後になるでしょう。
Djangoは、RubyにおけるRailsや、GroovyにおけるGrailsに、なろうとしているのですか?
Djangoは、表向きにはより強固なプラットフォームによる、それらのWebアプリケーションフレームワークに匹敵する機能性を提供します。DjangoはRoRと違い、マルチスレッド向けに書かれているので、複数のクラスローダを使うなど、Javaプラットフォームで動かすための多くのトリックは必要ありません。私達はこれまでに、PostgreSQLをサポートすると共に、MySQLでもいくらかの作業を行いました。私はDjangoのために、Oracleのバックエンドを書くのを手伝いました。私達はまた、Java DB(Derby)のサポートも計画しています。 
Jimはまた、Django on Jython(DoJ)を簡単に試すために、設定されたスタックを利用できることの有効性について述べた。
私は、Derby+Tomcatの設定されたスタックを、Django on Jython(DoJ)で利用できるようにしたいと思っています。これは、開発者がプラグインによって、EclipseやNetbeansなどのIDEから、正しくアクセスできるようにしなければなりません。その意味は、それらのIDEから直接、DerbyやTomcatを設定できるということです。それはまた、その他のコンテナやデータベースへの、明確なマイグレーションパスを提供します。おそらく、より重要なのは、Djangoのアプリケーションを構築するにしても、あるいは、タプル空間、ルールエンジン、PDFツール、またはJavaプラットフォームの重厚な基盤の一部を利用するにしても、DoJを簡単に試すためにセットアップできるということです。これは私の考える、DoJが真の価値を提供するところです。

さらなる情報は、以下のリンクを参照してほしい。

 原文はこちらです:http://www.infoq.com/news/2008/01/django_on_jython

この記事に星をつける

おすすめ度
スタイル

BT