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
- What is Kahua?
- What is a continuation-based application server?
- What else?
- S-expressions as fundamental data type
- Object database oriented in gauche object system
- Supports incremental development
- Multipurpose application server
- About Kahua project
- About this site.
- Contact
- Glossary
What is Kahua?
Kahua is a continuation-based application server or framework written in Gauche, which is one of the scheme implementation.
It is developed and maintained by Kahua project. Also it is licensed under the modified BSD license
What is a continuation-based application server?
When you develop Web application in the customary way, you need to store state explicitly as session object that is a sort of global variable.
This is the pragmatic way to use the stateless protocol, HTTP. On the other hand, you need to manage state constantly. (What a nightmare!!)
In the continuation-based application developing environment, you can obtain the state of certain point within the logic as continuation, anytime you want. This will allow you to free from keeping and managing state and to concentrate on application logic.
Though there are some continuation-based frameworks, Kahua proves its worth by its written language, Gauche. Scheme provides continuation, static scope, and infinite extent and so on in the language core.
What else?
Kahua has following four characteristics.
S-expressions as fundamental data type
To exploit the character of Scheme, S-expression is applied in every scene. By S-expression, data and procedure are integrated elegantly, so that you can program declaratively even dynamic web page.
Object database oriented in gauche object system
Gauche, the written language of Kahua, has CLOS like powerful object system. Kahua extend this feature to data storage. Object is automatically stored in the database (You can set MySQL or PostgreSQL instead of file system for the backend.).
Additionally, when you change class definition, stored object is renewed automatically. Finally you are free from thinking about storing objects and you can concentrate on application logic.
Supports incremental development
You can evaluate certain Scheme code by connecting directly to working application server, what we call worker. You don't need to stop worker to evaluate and this feature brings dynamic and incremental development into reality.
Multipurpose application server
In these times, Web application is the practical factor. However, you can develop rich client which Kahua protocol speaks and use in front-end.
About Kahua project
Kahua project is one of the open source projects that develop Kahua itself and Kahua application service.
Everybody can join Kahua project. Mailing List is available from here. Also there is the chat room of Gauche in Lingr and you can chat with some members from Kahua project.
About this site.
This site is build up with and operated by kahua-web, that is one of the Kahua applications.
Contact
The contact information is available from here.
Glossary
- Kahua
Kahua means foundation, base, ground, platform in Hawaiian language.
- Gauche
Gauche is an R5RS Scheme implementation developed by Kawai, Shiro. Native multilingual support, fulfilling bundled libraries and extended binding are some of its characteristics. You can use Gauche instead of Perl, Ruby, Python and other light weight languages.
- Scheme
Scheme is a programming language and is one of the dialects of Lisp.It has very simple language specification.
- Lisp
Lisp is a programming language. All program code is written as s-expressions. The most widely-known Lisp dialects are Common Lisp and Scheme. There is a lisp for extending the Emacs editor, called Emacs Lisp.
- S-expression
S-expressions are used for both code and data in Lisp. It is beyond XML by its versatility, extensibility, flexibility.