Software Design 2010年6月号が面白いです

表紙の Ubuntu のデッカイ文字にふらふらっとひかれて、本屋さんで何気なくぱらぱらページをめくってみれば、「はじめての関数型言語」ですとかelispでYコンビネータとか なんだか関数言語だらけの内容で、思わず買ってしまった Software Design の今月号。

Software Design (ソフトウェア デザイン) 2010年 06月号 [雑誌]

Software Design (ソフトウェア デザイン) 2010年 06月号 [雑誌]

Ubuntu 特集も面白かったのですが(おうちでクラウドとか)、関数型言語特集が抜群に面白い。見出しとか雰囲気とか、まるで「日経ソフトウエア」並のフレンドリーさ・読みやすさなのに、内容は濃ゆゆいのがたまりません。

「誰が書いたんだろう。」と思って見たら、書いてるの arton さん。ビックリ・意外・納得です。

この記事だけでも、今月は買いですにゃー。


* * *


ところで、「はじめての関数型言語」で気になった(=何故何故?・・と思った)のが二つあって。


ひとつは、プログラミング言語の分類の図が出てくるのですが、

オブジェクト指向パラダイムの仲間のなかで、なんで Smalltalk だけ仲間はずれ(しかも「手続き型」にされてる)なんだろうと思ったり。

手続き型に分類されるのは別にですが、RubyJavaC++ と比べて、「より手続き型」に分類されるのが「何故」と気になりました。

その中で比べたらかなーり Lisp っぽいのに...。すくなくとも Ruby とグループが分かれる理由はわかんない。もしかしてメッセージ式がいけないのかな。うーん。


もうひとつ 心に引っかかったのが、「Appendix:SQL――実は身近な関数型」というタイトル。

SQLって 強いて分けるなら 論理型言語じゃない? と思っていたので、SQL = 関数型言語と言い切りに ギョギョッとしてしまったり。

でも内容を読むと

RDBMS を操作する SQL は、あくまでも RDBMLに特化した言語(今風に言えばDSL)ですが、数学的な理論を背景に持つためか、その書き方、書く為の考え方は関数型ときわめて近い関係にあります。

のように書かれていて「関数型である」と言い切ってはいない、単に「おなじ宣言型言語の仲間ですよ」くらいのニュアンスで、これはタイトルだけの話なのかな?

なのでそれはクローズなのですが、今度は 論理型言語と関数型言語の境界ってどこら辺からなんでしょう、とか、そっちが気になってしまいました。


* * *


「はじめての関数型言語」は、読みながら、いろいろ考えが玉突きされてしまうのが愉しくって、凄いなぁと思います。

どの章もおもしろいけれど、一番面白かったのは4章でしょうか。インタビューは聞き手が重要だなぁとしみじみ。