Gaucheをはじめてみませんか?

2008年5月16日(金)
吉田 裕美

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の持つ「シンプルでありながらパワフル」という特徴を本連載を通じて、感じ取っていだければ幸いです。

 では、早速インストールしていきましょう。

CADのベンチャー企業を経て、独立し有限会社EY-Officeを設立。Java、Ruby、PerlなどでWebアプリを中心に開発を行ってきたが、現在は、教育に注力し「問題解決型の教育」に奮闘中。「Gauche-Trac(http://www.ey-office.com/gauche)」に今回の記事のサポートページを作りましたのでご活用下さい。HP:http://www.ey-office.com。Blog:http://d.hatena.ne.jp/yuum3

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています