uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

継続ベースWEBアプリサーバとは何か

今日の社内勉強会のテーマは継続ベースのアプリケーションサーバ/フレームワークKahua」についてのものでした。例によって、独断言い切り型の感想です。

これって要するに、「普通のSchemeプログラムと同じようにWebアプリを書きたい」というだけではないか。つまり、「Webページの表示を普通の関数呼び出しで実現したい」のだろう。

しかし、WEBアプリにおけるページ表示の呼び出し関係は一般に非線形的(非スタック的)である。つまり、Webアプリをscheme的に普通に書こうとすると、非線形的である制御=継続を駆使したものに、必然的になってしまう。

そういう意味では、Webアプリを、継続を持たない言語で記述するほうにもともと無理がある、ともいえるのかもね。

KahuaWicketがWebアプリというものを「Javaのオブジェクトの相互作用」で一貫して書き下そうとした試みであるのと好対照かもしれません。つまり、Schemeという言語の概念モデリング能力を徹底的にWebアプリに「トップダウン」に適用したもの、として。

RIFEとかJettyも継続機能を持ってるらしいのですが、Javaのコードはどういうものになるんでしょうかねー。

_