| 原作者 | ジェームス・タウバー、Google |
|---|---|
| 開発者 | ルーク・レイトン、アンソニー・C・ライジング、キース・ボス |
| 初回リリース | 2007年3月 |
| 安定リリース | 0.8.1a [1]
/ 2012年5月9日 |
| リポジトリ |
|
| 書かれた | Python、JavaScript |
| オペレーティング·システム | Windows、OS X、Linux の場合 |
| 利用可能 | パイソン |
| タイプ | Ajax フレームワーク、デスクトップおよび Webウィジェット ツールキット、コンパイラ、ウィジェット セット |
| ライセンス | Apache ライセンス 2.0 |
| Webサイト | pyjs.org |
Pyjs(2012年5月以前はPyjamas [2])は、PythonでクライアントサイドのWebアプリケーションやデスクトップアプリケーションを開発するための機能豊富なWebアプリケーションフレームワークです。作成されたアプリケーションは、 Webブラウザで実行することも、スタンドアロンのデスクトップアプリケーションとして実行することもできます。
これには、スタンドアロンのPythonからJavaScriptへのコンパイラ、Ajax フレームワーク、ウィジェット ツールキットが含まれており、これらのコンポーネントを使用することで、開発者は JavaScript を記述することなく、すべての主要な Web ブラウザーで実行できる包括的なアプリケーションを作成できます。Pyjs は、Google Web Toolkit (GWT)をJavaからPythonに移植したものです。[3]
発達
pyjs を使用すると、開発者はJavaScriptではなくPythonでWeb アプリケーションを作成できます。アプリケーションは JavaScript にコンパイルされます。また、最新の JavaScript 対応 Web ブラウザーのドキュメント オブジェクト モデル (DOM)へのアクセスを提供するAjax ライブラリとウィジェット セット[4]も含まれています。Ajax ライブラリとウィジェット セット ライブラリは、Python と JavaScript のハイブリッド ミックスです。Google Web Toolkit と同様に、pyjs はそのライブラリではなく、単なる別の Ajax フレームワークでもありません。Ajaxフレームワークは、事前に準備された特定の機能を提供することに厳密に制限されており、ほとんどがカスタマイズされた JavaScript で記述されています。GWT と pyjs はどちらも JavaScript コンパイラーであるため、開発者は使い慣れた言語 (それぞれ Java または Python) で作業して、完全にゼロから、または既存の利用可能なウィジェットに基づいて独自のカスタム ウィジェットを作成できます。それでも、最新のブラウザー全体をターゲットにすることができます。したがって、Web 開発者に既製の Ajax フレームワークを提供するのではなく、pyjs は独自のフレームワークを作成する自由を提供します。
デザイン
pyjs コンパイラはプログラミング言語 Python で記述されており、コンパイルされるプログラムの抽象構文ツリーをたどりながら入力を JavaScript にコンパイルします。コンパイラはスタンドアロンですが、pyjs の主な用途は Web 開発であるため、Web アプリケーションを構築するための追加のインフラストラクチャがあります。
DOM.py [5]モデルライブラリは抽象化レイヤー(JavaScriptコードスニペットの上に薄いPythonレイヤー)であり、これを使用することで、ターゲットブラウザプラットフォームの完全なドキュメントオブジェクトモデルにアクセスできます。他のコンパイラと同様に、JavaScriptスニペットはインラインアセンブラとして扱われます。
さらに、DOM.py モデル ライブラリの上には、追加の抽象化レイヤーである ui.py [6]があり、これは Web 開発者にとって最も便利なレイヤー、つまりデスクトップ アプリケーション開発者が使い慣れているウィジェットの完全なスイートを提供します。現在、利用可能なウィジェットのリストには、Google Web Toolkit 1.2 で利用可能だったウィジェットの完全なセットと、GWT 1.5 から転送されたいくつかのウィジェットが混在しています。
コンポーネント
主要な Pyjs コンポーネントは次のとおりです。
- pyjs Python から JavaScript へのコンパイラ
- プログラミング言語 Python を JavaScript に変換します。
- Python組み込みおよび標準エミュレーションライブラリ
- Python 標準ランタイム ライブラリでよく使用されるモジュール、組み込み、クラスの JavaScript 実装 (文字列、リスト、辞書、タプル、セット、getattr、map、filter、range など、基本的な例外処理、基本的な datetime、基本的な math モジュールなど)。
- pyjs DOMライブラリ[5]
- ブラウザのDOM を操作するためのモジュール。
- pyjs Web UIモジュール[6]
- Web ブラウザがデスクトップウィジェット エンジンであるかのようにウィジェットを作成するためのモジュール。
- pyjs デスクトップポート
- MSHTML (Trident)、Gecko ( XULRunner )、またはWebKitで、純粋な Python として pyjs アプリケーションを実行するためのサポート。Pyjs Desktop は概念的には GWT の「ホスト」モードに近いですが、アプリケーションはデバッグ ツールとしてのみ使用されるのではなく、pyjs Desktop でライブでデプロイできる点が異なります。
pyjs デスクトップ
pyjsに付属するウィジェットセットライブラリ[4]はPyQtやPyGTKに非常に似ているため、pyjsの移植版が作られ、pyjs Desktopと呼ばれています( 2012年5月以前はPyjamasDesktop [7]と呼ばれ、バージョン0.6より前は別々にホストされていました[8])。このプロジェクトはWebkit、XULRunner、またはMSHTMLを基盤技術として使用し、pyjsはこれらのブラウザエンジンを通じてアプリケーションのDOMモデルを操作します。pyjsとpyjs Desktopを組み合わせることで、Webとデスクトップで動作するクロスプラットフォーム、クロスデスクトップ、クロスブラウザ、クロスウィジェットのアプリケーションを作成できます。[9] [10]
参考文献
- ^ 「リリース 0.8.1a」。2012年5月9日。 2018年7月22日閲覧。
- ^ インフラストラクチャ、エンドポイント、プロセスの変更、pyjamas-dev メーリング リストでの Lex による説明 (2012 年 5 月 3 日)
- ^ pyjs README
- ^ ab ui モジュールのクラス階層
- ^ ab DOMモジュール
- ^ ab uiモジュール
- ^ PyjamasDesktop の歴史、Python Wiki
- ^ 「パジャマデスクトップ」。
- ^ Pyjamas - デスクトップおよび Web 向け Python アプリケーション、Luke Kenneth Casson Leighton (2008 年 8 月 30 日)
- ^ パジャマでコーディング: デスクトップと Web 向けアプリ Luke Kenneth Casson Leighton (2008 年 11 月 7 日)
外部リンク
- Pyjsホーム
