InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

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

作者 Craig Wickesser , 翻訳者 佐野 徹郎 投稿日 2008年2月4日

セクション
運用/インフラ,
デベロップメント,
設計/アーキテクチャ
トピック
Java ,
Webフレームワーク ,
オープンソース
タグ
Jython ,
Python ,
Django

動的オブジェクト指向プログラミング言語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

特集コンテンツ一覧

GAE開発の落とし穴

Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します

イベントレポート:「Coqチュートリアル#1」

去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。

Javaの未来についてのNeal Gafter氏とのディスカッション

Choosing Options

Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。

Google Dartのエッセンス:アプリケーションの構築、スナップショット、Isolate

GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式

CSPベースのモデル検査ツール「Process Analysis Toolkit」

本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。

Jenkinsによる継続的インテグレーションのススメ(4) ~CloudBeesでJenkinsをサービスとして使う~

前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。

書籍『抽象によるソフトウェア設計-Alloyではじめる形式手法-』の紹介

Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。

Windows デバイスで開発するタッチユーザーインターフェイス

スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。