Web applications for communication and collaboration

Google Code Blog: Better performance in App Engine with new Lisp language Clojureにおいて、Google App Engineで稼働するアプリケーションの開発言語としてClojureを選択したユースケースが紹介されている。GAEがサポートしているプログラミング言語はJavaとPythonのみだが、Java仮想マシンで動作するプログラミング言語であればJavaバージョンで利用できる。

ClojureはLispの地方言語のひとつ。Java仮想マシンで動作し、インタプリタとしてもコンパイルして直接Javaバイトコードを生成してJava仮想マシンで動作させることもできる。紹介されている内容によればClojureを採用することでJavaで開発した場合の30%のコード量で、Pythonで開発した場合と比べて50%のコード量で済んだとされており、開発効率の高さが主張されている。

  • Clojureの提供する関数プログラミングは生産性が高い
  • Clojureはシンプルなデータ構造で強力な機能を提供する
  • GAEでClojureを使うことはとても自然

関数言語は開発効率が高いと言われるが、WebアプリケーションやWebシステム開発のサーバサイドではJavaやPHPといったプログラミング言語が採用されることが多い。ClojureはJava仮想マシンで動作し、ダイナミック言語としての側面もコンパイル言語としての側面ももっており、さらにJava仮想マシンで動作するため動作するプラットフォームが広いという特徴がある。Google Code Blog: Better performance in App Engine with new Lisp language ClojureはClojureの適用事例として興味深い。