2016-01-26(火) [長年日記]
■ APIデザインケーススタディ ~Rubyの実例から学ぶ。問題に即したデザインと普遍の考え方 (WEB+DB PRESS plus)(田中 哲)
読み始めたのが約一ヶ月前だけど、けっして難しくないのでもっと早く読まないとあかんね……。
rubyistになら「akrさんがRubyのAPI設計に関する本を出したよ!!」って言えばそれ以上の説明なしでマストバイという理解を得られるんだけど、他の言語の人にはなんて言うかねぇ。
スジの通った指針はあるものの、基本的にこれまでRubyがぶち当たってきた設計上の難問についてその解決の過程を提示していくというケーススタディ本なので、教科書的な技術書ではない。というかその難問登場→解決の繰り返しにまるで冒険小説を読んだ時のような読後感があっておもしれぇなぁと思った。つまるところ、プログラミングってぇのは血沸き肉踊る冒険なんだよ。
序盤のIOやソケットは、旧いC言語世界の住人がRubyの世界とうまく折り合いをつけられるようにする話だ。旧世界の習慣をそのまま適用できるように地ならしをする序盤から、徐々にRubyらしい改変を加えていって世界に広がりを出していく構成がうまい。最大の「泣かせどころ」はタイムゾーンのあたり。涙なくして読めない。数の扱いではRubyならではの拡張が足を引っ張り、実世界との亀裂に落ち込んでしまったり。つまりちゃんと失敗事例もある。
本書はそんな「Ruby」という世界を舞台にした冒険の書なわけだけど、他の世界(言語)にはその世界のルールがあって、そこでは別の物語が綴られるだろう。でも、本書に記される基本指針は他の世界でも通用するものばかりだ。他の世界に住む人にもいいガイドブックになるのは間違いない。