プログラミング言語の生みの親の書籍を読もう
僕はプログラミング言語の生みの親が著した書籍を必ず読むようにしています。その理由は生みの親しか知らない言語機能の実装理由や意外な振る舞い、本来の使い方などが記されている場合があるためです。
「生みの親しか知らない」というのは語弊があるかもしれません。しかし伝え聞いた内容は、微妙にニュアンスが変わっていたり、端折られていたりする場合も想定されるため、やはり生みの親自身の書籍を読むのが確実です。本当の戦争体験を知りたいならそれを伝え聞いた子や孫ではなく、戦地に赴いた本人に聞かなければ実際の現場の臨場感や悲惨さが感じ取れないのと同じです。
現在の淘汰・拡張された言語仕様(最終バージョン)を知ることは確かに手っ取り早いですが、その本質(思想・源流)を知らなければ本当にその言語を理解したとは言えないと思うのです。
代表的なプログラミング言語の生みの親とその書籍は以下になります。
C言語
生みの親:B.W. カーニハン、D.M. リッチー(Brian W. Kernighan/Dennis M. Ritchie)
言わずと知れた、いわゆるK&R本です。C言語使いは必ず手に取る書籍でしょう。ちなみに初心者向けの本ではありません。ある程度C言語を知っている人が、知識固めのために読むような本です。(ページ数:361)
C++言語
生みの親:ビャーネ・ストラウストラップ(Bjarne Stroustrup)C++言語仕様のすべてが詰まった圧巻の書籍です。ある程度のプログラミング経験があり、C++の基本的な構文や標準テンプレートを一通り知っている人向けの本です。(ページ数:1360)
クラスって何?という方には同氏のC++入門書であるC++によるプログラミングの原則と実践を先に読むのが良いでしょう。(但しこちらも1000ページ以上あります)
Java言語
生みの親:ジェームズ・ゴスリン、ケン・アーノルド(James Gosling/Ken Arnold)
良書ですが残念ながらJavaバージョン5.0対象である第4版までしか出ていません。(ページ数:767)
JavaScript言語
生みの親:デイビッド・フラナガン(David Flanagan)
JavaScriptの仕様が網羅された良書です。かなりの分量があります。初心者にも分かりやすく丁寧にあらゆる機能が解説されています。(ページ数:840)
これを読んだ後にJavaScriptと完全互換かつ、静的型付け機能を実装したオブジェクト指向言語であるプログラミングTypeScript ―スケールするJavaScriptアプリケーション開発にステップアップすることがお勧めです。
PHP言語
生みの親:ラスマス・ラードフ(Rasmus Lerdorf)
無名関数(ラムダ式)など最近の記述方法にも対応しているPHPの定番書です。初心者でも安心して読めるように丁寧に解説されています。PHP資格の公式テキストにもなっています。(ページ数:416)
Python言語
生みの親:グイド・ヴァンロッサム(Guido van Rossum)
チュートリアルですが、初学者がPythonを学ぶには最適の本と言えます。(ページ数:260)
これを読んだ後に、オライリージャパンの入門 Python 3や実践 Python 3を読むのが王道でしょう。
公開日:2020年11月25日