前々から気になっていた書籍『コーディングを支える技術』を読んだ。買ったまま積んでいたせいで、気付かず2冊目(物理)を購入してしまった……。反省しなければ。
世の中にはたくさんのプログラミング言語があります。そしてプログラミングに関する概念も、関数、型、スコープ、クラス、継承など、さまざまなものがあります。多くの言語で共通して使われる概念もあれば、一部の言語でしか使われない概念もあります。これらの概念は、なぜ生まれたのでしょうか。本書のテーマは、その「なぜ」を理解することです。
そのために本書では、言語設計者の視点に立ち、複数の言語を比較し、そして言語がどう変化してきたのかを解説します。いろいろな概念が「なぜ」生まれたのかを理解することで、なぜ使うべきか、いつ使うべきか、どう使うべきかを判断できるようになるでしょう。そして、今後生まれてくる新しい概念も、よりいっそう理解しやすくなることでしょう。
本書は、プログラミング言語にそれぞれ存在する「文法」や「概念」が、どんな課題を抽象化して解決するために生まれてきたのかを論考・解説している書籍である。
よく「プログラミングの初学者向け」のような文脈で語られることの多い本書であるが、初学者から中級者まで、どんな学習フェーズに居る人にも勧められる本であると僕は思う。
著者がPythonとPerlに明るい影響もあってか、両プログラミング言語からのサンプルコードが多めであるため、これらを業務などでよく書くプログラマにも受け入れられる一冊であると思われる。素直で堅いためか、Javaからの引用もそこそこある。特に型やスコープといったシステムが発明された歴史は面白く読める。
2018年に改訂するとしたら、型推論やOptionalなども含めると、もっと面白い書籍になるんじゃないだろうか。
最近のツッコミ
参号館 日記(ariyasacca)