Kahua Release
- Release Note
- Download
- Current Version 1.0.7.3 (2008-05-08)
kahua-web Release
- kahua-webとは
- Release Note
- Download
- Current Version 0.3.1 (2007-06-12)
Security Advisory
Event Log
Documentation
For developers
Site info
Related Site
Kahuaとは
Kahuaは、Scheme言語処理系Gaucheを使って書かれた、継続ベースのアプリ ケーションサーバ/フレームワークです。Kahuaプロジェクトによって開発が行 われ、 修正BSDライセンス の下でオープンソースソフトウェアとして公開されています。
継続ベースって?
あるアプリケーションロジックを記述する場合、Webアプリケーションでは、状 態をセッションオブジェクトという一種の大域変数に明示的に保存する手法が 主流でした。これは、本質的にステートレスな(状態を持たない)プロトコルで あるHTTPを使う上では単純で現実的な手法でしたが、同時にプログラマが常に 状態の保持を意識する必要があり煩雑でした。
継続ベースの開発環境では、ロジックの中の任意の場所の状態を「継続」とい う形で抽象化していつでも取得することができます。開発者は状態の保持や整 合性の確保に気をとられることなく、中心となるロジックに集中することがで きます。
継続ベースのフレームワークはKahua以外にもかなりの数が出現しています。し かし、言語コアに継続や静的スコープ、無限エクステントといった機能を備え たSchemeにおいてこそ、継続ベース開発の真価が発揮できるのです。
Kahuaの特徴ってそれだけ?
Kahuaには、継続ベースのアプリケーションフレームワークである以外に、以下 のような特徴があります。
S式が基本データ形式
Schemeの特徴を活かし、基本のデータ形式としてあらゆる場面でS式を採用して います。S式によって、データと手続きとをエレガントに統合することができ、 動的なWebページも命令的にではなく、宣言的に記述することができます。
Gaucheのオブジェクトシステムを活かしたオブジェクトデータベース
Kahuaの基盤となっているGaucheは、CLOS likeな非常に強力なオブジェクトシ ステムを備えていますが、Kahuaはそれをデータストレージにまで拡張します。 オブジェクトは自動的にディスク上のデータベース(ファイルシステムの他、 MySQLやPostgreSQLをバックエンドにすることもできます)に自動的に保存され ます。また、クラス定義を変更すると、保存されているオブジェクトは自動的 にその変更に追随して更新されます。開発者は、オブジェクトの保存に神経を 使うことなく、中心となるロジックに集中することができます。
動的でインクリメンタルな開発のサポート
動作中のアプリケーションサーバ(ワーカと呼びます)に直接接続し、任意の Schemeコードを評価することができます。これにより、ワーカを止めることな く、動的かつインクリメンタルに開発を進めることができます。
汎用アプリケーションサーバ
時節柄Webアプリケーションが主な用途になりますが、Kahuaプロトコルをしゃ べるリッチクライアントを開発してフロントエンドに使用することもできます。
Kahuaプロジェクトとは
KahuaプロジェクトはKahuaそのものやKahuaを用いたアプリケーションサービスを 開発しているオープンソースプロジェクトです。Kahuaプロジェクトにはどなた でも参加できます。まずはMailing Listを覗いてみてください。 また、Kahuaプロジェクトのメンバーは LingrのGauche部屋 でしばしば雑談しています。時々KahuaやGaucheの濃い話も飛び出しますので、 こちらも覗いてみてください。
このサイトについて
このWebサイトは、Kahuaのアプリケーションであるkahua-webによって 構築、運用されています。
お問い合わせ
以下をご参照ください。
用語解説
- Kahua(かふあ)
ハワイ語で基盤、基礎、土台、広場(集会場)、何かを産み出す母体。
- Gauche(ごーしゅ)
川合史朗氏によって開発されたオープンソースのScheme言語処理系。国際化(マルチバイト)対応、充実した同梱ライブラリ、拡張バインディングの開発のしやすさ、バランスのとれた機能を特長とする。Perl、Ruby、Pythonなどの代わりに使える汎用スクリプト言語でもある。
- Scheme(すきーむ)
プログラミング言語。非常にシンプルな言語仕様を持つ。Lisp言語の一種。
- Lisp(りすぷ)
プログラミング言語。S式を基本データ形式とする。代表的なLisp言語の種類はCommon Lisp、Scheme。広く使われているエディターEmacsにもEmacs Lispが組み込まれるなど多数の応用実績がある。
- S式(えすしき)
Lispの基本データ形式。汎用性、拡張性、柔軟性でXMLを凌駕する。