BPStudy#26から1週間たってしまったのですが、今ごろになって浅海智晴さんによる記事を見つけました。
浅海さん、いらっしゃっていたのなら声かけてくれれば/せめてトラックバックいただければ、と思いましたが … 以下に少しだけ反応を:
流通するデータ構造をXMLではなくJSONにしている [...] 正確にはJSONの上位互換の独自アイデアのプロパティ付きJSONであり、意味論的にはXMLに近くなっている。
概念と表層構文は確かにJSON上位互換です。けど、シンタックスシュガーを剥ぎ取れば、通常のJSONにマーシャリング可能です。マーシャルした結果は、人間には読みにくいですが、任意のJSONツールで扱えます -- このために互換性を維持したのですよね。
「意味論的にはXMLに近くなっている」はまったくそのとおりで、「独自アイデアのプロパティ」を我々は単に「タグ」と呼んでいます。XMLのタグと意味/用法がほぼ同じなので。
さすが、ズバリ本質をついた表現ですね。ただし、「静的型付」を看板にするのは誇大かもしれません。静的解析でガンバルつもりですが、諸般の事情により静的に型安全を保証できないケースもあります。静的であれ動的(実行時チェック)であれ、ともかく手段を選ばず強い型付けを実現する、という方針です。
したがって、「JSON強烈型付純粋関数型Webコンポーネント糊言語」でしょうか。「烈」の字は単に雰囲気、意味はありません。
一般的には状態遷移する現実世界を純粋関数型言語で扱うためにはモナドといった道具立てが必要になってくるはずなので、この点をどのように対応していくのかというのが技術的に面白そうな論点である。
ここは、一番つっこんで欲しいツボですね :-) 通常ですと、モナドについてよく知っている人がモナド実装を書くのですが、Catyにおけるポイントは、モナドの知識を一切持たないプログラマに、結果としてモナドを書いてもらうようにすることです。
モナド法則の成立をソフトウェアにより保証する(法則を機械的に証明する)とかは、ちょっと現実性がないので、コンベンションやモラルに頼ることになりますけど。