Kross

Kross（クロス）は、Linux用デスクトップ環境であるKDE Software Compilation 4 (KDE 4) に搭載されているスクリプトフレームワークである。本来はKOffice用に設計されていたが結果的にはKDE 4の公式フレームワークとなった。ユーザーが自らが選択するスクリプト言語で最大限のスクリプトの力を提供することを目的に開発された。Krossを使うことで開発者は、KDEプラットフォームを視野に入れながら、アプリケーションに複数のスクリプト言語を優先順位を付けることなくサポートさせることが容易になる。

Krossスクリプティングプラットフォーム自体はスクリプト言語ではなく、既にシステム上にあるスクリプト言語をKDEにサポートさせることを目的としている。現在サポートされている言語はPython、Ruby、JavaScript、Falconプログラミング言語の4つである。また他のスクリプト言語も容易に追加できる。

デスクトップアプリケーションもしくはデスクトップ環境のスクリプティングを可能にする他のアプローチと比較して、Krossには以下のような利点がある。
 ユーザーは自分の好きなスクリプト言語を使うことが出来る。
 アプリケーションの開発者は各スクリプト言語の仕様を知る必要が無い。
 プラグインにより他のスクリプト言語を容易に追加できる。

 他のスクリプトプラットフォームとの比較 
 SWIG: Simplified Wrapper and Interface Generator 
 サポートしているスクリプト言語はSWIGより少ない。
 KrossはQtの上に開発されており、Qt関連のモジュールをラッピングすることなくそれらにアクセスできるhttp://www.kexi-project.org/wiki/wikiview/index.php?Scripting#Why_not_SIP_SWIG_ (accessed 2007-05-16)。
 Krossをサポートするアプリケーションは、SWIGをサポートするアプリケーションよりも少ないコードで済む。
 SWIGではアプリケーションのコンパイル時において、サポートされるスクリプト言語が確定される。つまり、サポートされる言語のコードもしくは、アプリケーションの言語に合った共有ライブラリをアプリケーションにあらかじめ組み込んでおかなくてはならない。一方でKrossではアプリケーションを起動する際まで確定する必要は無い。

 AppleScript 
AppleScriptのオープン・スクリプティング・アーキテクチャ (OSA) と比較すると、
OSAはIPC (Apple event) により、各スクリプトがそれぞれのプロセスを有することが出来るが、Krossではスクリプトはメインアプリケーションと同じプロセスを共有することになる。それゆえ、Krossと異なり、OSAにおいてスクリプトは既に起動しているアプリケーション同士の橋渡しとなり得る。
（ちなみに、あるスクリプトが複数のアプリケーションのコードに同時にアクセスする際、IPCが必ずしも必要となるわけではない。スクリプトは、アプリケーションをライブラリとしてリンクさせることが出来る。例：SWIGによるライブラリ）
Krossはスクリプタに好きな言語でスクリプトを書かせられるのに対し、AppleScriptは他のスクリプト言語の枠内で呼び出すことが出来る一つの言語である。
 多くのmacOSアプリケーションではGUIツールキット (Cocoa) を選択するだけで、ボタンやメニューのクリック、またはスクリーンリーダー等のアクセシビリティソフトウェアに与えられたデータにアクセスするといった基本的なスクリプトが実行できるのに対し（Dogtail等のGUIテストツールも同様）、Krossではアプリケーションに追加されるコードは明示化される必要がある。

Krossは現在、信用性が疑わしいスクリプトであっても動作を制限しない。Krossの開発者であるSauerはThe Road to KDE 4: New KOffice Technologies、（例えば実験的なJavaプラグインを用いる際には）サンドボックスを適切に用いるか、署名されたスクリプトを用いて信頼性を高めるよう勧めている。

 Krossを用いているアプリケーション 
KWord
KSpread
Krita
Kexi
SuperKaramba
Plasma
Kopete

 脚注 

 外部リンク 



Krossホームページ（開発者向けドキュメント）
Kross開発者のインタビュー
Krossチュートリアル
akademy 2006 conferenceにおけるKrossの紹介
Kross名前空間リファレンス

Category:KDE
Category:スクリプト言語
Category:ソフトウェア開発ツール
Category:オープンソースソフトウェア