読書感想文コンピュータ編その他の言語
書名ふつうのHaskellプログラミング
ふつうのプログラマのための関数型言語入門
監修者 山下伸夫 http://www.sampou.org/
著者 青木峰郎 http://i.loveruby.net/ja/
発行日2006年6月8日
発売元ソフトバンク クリエイティブ株式会社
サイズA5判、392頁
定価2800円+税
ISBN4-7973-3602-1

このところJavaのプログラム開発に明けくれているのだが、 そういう生活をしていると無性に他のプログラミング言語の本が読みたくなる。 そう思っているとき、急に最近2冊のHaskell本が出た。 というか、日本語でのHaskell本はまだこの2冊しかないので、全部入手してしまった。

どちらから読んでもそれほど差はないように思えたのだが、 普通のパソコン初心者としては、やはり「ふつうの」という枕詞につられて、 この本を読んでしまった。それに、本書の著者紹介を見ると、 「ふつうの文系プログラマ」と書かれており、ごく普通のプログラマ、 それも文系のプログラマが書いた本なら、 だれにでもわかる入門書になっているのではないかと思われた。

しかし、主著のなかに、『Rubyソースコード完全解説』なんてのがあるので、 以上のことにちょっと疑問も沸いて来たが、著者自身が普通と主張しているので、 普通なのだと思うことにしよう。(私もふつうのパソコン初心者なので)

どこまでも『ふつう』を主張したがるようで、まえがきも『ふつうのまえがき』 になっていた。そのなかに、 「この本を読んだあとで生活がHaskell一色になってしまう人はまずいでしょう」 という文があって、非常に納得した。今、Haskellでのプログラム開発の仕事は 極めて、いや極度に少なく、Haskellプログラマとして生活するのは困難だと思う。 そういう意味で、「まずい」という表現には納得してしまった。

しかし、そこまで言い切るかと思って見直したら、「まずいでしょう」 ではなくて「まずいないでしょう」だった。つまり、 「この本を読んだあとで生活がHaskell一色になってしまう人はまずいないでしょう」 であった。まえがきから早とちりしているようだと、 どこまで読めるか不安になってしまった。

しかし、読み始めると、Haskellは難しい、とくにHaskell好きの人は 難しく書いてしまうという噂とは違い、普通の入門書的な書き方で着々と 説明してくれて、とても読みやすいのであった。

しかし、第2部Haskellの全貌の最後の章である『第11章 モナド』は 急に難しくなっていると思う。章の扉のことばに、 「本章ではHaskell最大の難関と言われるモナドについて解説します。」 とあるのだが、実際難関であった。 モナドという概念がいまいちというか、あまりというか、全然というか とにかくきちんと把握することは初心者にはできなかった。

30ページで難しい概念を1つ説明するのは甚だ難しいのではないかと思う。 ここは、モナドの解説にだけ絞った解説書が欲しいところだ。 C言語の場合、ポインタだけを解説した本が多数あるが、 それと同様な感じで、『ふつうのHaskellモナド完全征覇』が欲しい!

ということで、もっと詳しいモナドの解説はないものかとネットを彷徨ってみたら、 『モナドのすべて』というのが、本書の監修者のサイトにあった。

ついでに、Haskellプログラムの短いサンプルはどこかに転がっていないかなと思って 探したら、OSS-WEBの 今日の1行の中にかなりあるようであった。

さて、本書の帯には、 「Haskellの考え方と仕様を学び、プログラマとしてのスキルアップを目指す。」 とあったのだが、これについて考えてみよう。 プログラミング言語の本は非常に沢山でているが、その多くはJavaやC,C++などである。 PHP, Python, Ruby, Lisp, Scheme などの本もあると思われるが、それらは結局 Java,C,C++と大差がない。今迄の言語と違う思想、哲学を持とうと思ったら、 Haskellは良いのではないかと思う。 異なる思想、哲学を理解した上で、今迄通りのプログラミング言語を使うのは、 今迄のプログラミング言語を別の視点から見ることにもなり、 間違いなくスキルアップになろう。 ただし、下手にやると、頭が混乱するだけだと思うので、 プログラミング初心者は注意されたし。 (既存プログラミング言語を捨て、Haskell教徒となるもの1つの生き方?)

Haskellは今迄は密教となっていたのだが、 急に2冊の和書が出て、密教で無くなると良いのだが。 そのためにも、モナドのわかりやすい解説書が望まれる。

2006年6月4日


読書感想文コンピュータ編その他の言語