田中哲『APIデザインケーススタディ』面白くはあるのだが……

田中哲『APIデザインケーススタディ』を読んだ。

まず、書かれている内容は面白い話ばかりだった。ぼくは著者のファンなのでという贔屓目はあるかもしれないが。だが、本としてはどうだろうか……?と思った。

本のなかみとしては、プログラミング言語RubyにおけるさまざまなライブラリのAPIを実際に設計した著者が、どのような経緯の末にこのような設計になっているかを解説している。

この本のウリは、その内容の詳細さと丁寧さにあると思う。こういうクラスにこういうAPIが用意されている、それはなぜかというと……といった話がほぼすべてなのだが、世の中というのはそうそう簡単にいくわけではない。他のプログラミング言語ではどのように振る舞うのか、挙動はわかりやすいのか、Rubyでとくに発生するほかの問題とはどうすり合わせるのか……。二律背反する状況では、実際にどのように使われることが多いかも加味して決めなければならない。ときには複雑かつ歴史的な事情を知る必要もある。

こうした複雑な事情が手際よく説明され、そうした個別の場面でどのような指針をたてて先に進んだのか、ということが提示されているのがこの本の価値だ。ここが面白いというのは確かだし、複雑な事情は普遍的なもので、Rubyというプログラミング言語と切り離しても技術エッセイとして面白く読める。

が……あまりにもケーススタディの列挙でしかないところが本書のつらいところでもある。

著者もこの点は認識しており、じっさいにあとがきでも指摘している。プログラミング言語やAPIに冠する良いデザインというものに対する適切な指標というものを人類はまだ手にしていない。だからこそ、さまざまな試行錯誤の結果をケーススタディとして提示することに意味がある。また、一般論や原則のようなものをあまり強く打ち出さずにケーススタディで踏みとどまっているのは、著者の誠実さのあらわれでもある。

がしかし、と思ってしまう。

たとえば本の構成。この本はIO、ソケット、時刻、といった機能ごとに章立てがされている。これを「わかりやすい名前をつける」「隠れたモードを持たない」といった、課題となっているものごとにシャッフルしたほうが、あるいは良かったのかもしれない。そうすることで、読者には良いデザインへの指針がおぼろげながら提示されるような空気が醸成できたのかもしれない。

まあ読みづらくなるだけかもしれないし、なんとも言えないのだけれど。