Gaucheをはじめてみませんか?
Gaucheとは
本連載では、今注目のプログラミング言語「Gauche」について解説しながら、簡単なWebアプリを作っていきます。Gaucheとは、ハワイ在住の日本人ハッカー「川合 史朗」さんが作ったLispの一種である、Schemeの処理系です。オープンソースで開発されています。
Gaucheの特徴は、Perlのように気軽に使える軽い処理系でありながら、正規表現、CommonLisp風オブジェクトシステムなど、Scheme標準にはない拡張機能や豊富なライブラリを持ち、実用的なプログラミングが行える点です。
最近「Gauche」に関する本も出版され、「第4回:都内大手3書店の3月ベスト3発表!(http://www.thinkit.co.jp/article/49/4/2.html)」でも紹介されているように売れ行きも好評です。それは、なぜでしょうか? 筆者はLisp、特にSchemeの持つ「シンプルでありながらパワフル」という特徴がプログラマを引きつけるからではないかと思います。
LispとGauche
読者の皆さんはLispのコードを目にした時、「何て変な言語だろう?」「どうやってこんな言語でプログラミングをするんだろう?」と思った方が多いのではないでしょうか。
筆者がLispを知ったのは、大学の卒業研究でLispの処理系を作ることになったのがきっかけです。研究は先生の書かれた論文をもとにした実装で、処理系は主にアセンブラで書きました。いざ処理系が動き出し、Lispコードを動かす段になりましたが、その当時は、本に書かれた例題以外のコードがなかなか書けませんでした。
しかし、Lisp処理系はとてもシンプルであり、ガーベッジコレクションなどの面白いアルゴリズムも備えていて、筆者はLisp処理系の虜になったことを覚えています。就職してからは、筆者はJavaやRubyでのWeb開発がメインでLispに直接ふれることはありませんでした。
そんなある日、ネット上の情報からKahua(http://www.kahua.org/)というGaucheで書かれたWebフレームワークを知りました。Kahuaは「継続」という概念をベースにしたフレームワークです。
通常のWebアプリケーションでは、ブラウザからのリクエストに対して処理を行い、レスポンスを戻すという流れを1つの単位としてプログラミングしていきます。したがって図1のように複数ページにまたがる処理を書く場合、処理はページ単位に細切れで書き、ページ間で渡す情報はセッションに格納するという煩雑なプログラムになります。
しかし、「継続」を用いるとページとは無関係に一連の流れをプログラミングすることで、簡単にWebアプリケーションを書くことができます。「継続」はScheme(Lisp)の持つパワーの1つと言えるでしょう。このようなGaucheの持つ「シンプルでありながらパワフル」という特徴を本連載を通じて、感じ取っていだければ幸いです。
では、早速インストールしていきましょう。