プログラマーが(少なくとも2回は)読むべき技術論文 (2011年)
2011年に公開された本記事では、ソフトウェア開発者がキャリアを通じて少なくとも2回は読むべき重要な技術論文10本を紹介している。プログラミング言語設計、分散システム、並行処理、アルゴリズムなど多岐にわたる分野の古典的論文を取り上げ、それぞれの論文が現代のソフトウェア開発に与えた影響と、読むことで得られる洞察について解説している。
背景メモ
マイケル・“fogus”・フォーガスは、ThoughtWorksでClojureや関数型プログラミングを牽引した開発者・著者。この2011年のブログ記事では、彼が厳選した「プログラマーが最低2回は読むべき10本の技術論文」を紹介している。論文は、GC(ガベージコレクション)実装の古典(Baker)、並行処理の難しさを説く「Go To文は有害だ」論争の要約(Dijkstra)、分散システムの限界を証明する「CAP定理」(Brewer/Gilbert-Lynch)、協調的マルチタスクOSの設計(Specification and Verification of a Simple OS — Karger)、データ永続化の不変性モデル(MVCC — Bernstein/Goodman)、コンパイラ最適化の定番(CytronらによるSSA形式的制御フロー)、実用的エラーハンドリング戦略(Cargillの「Exception Handling: A False Sense of Security」)、メッセージパッシングの言語設計(SteeleのActorモデル論文)、ボトムアップ処理の枠組み(Kayの「The Early History of Smalltalk」)、そしてSQLによる問題解決(Celkoの「SQL for Smarties」由来の思考法)まで多岐にわたる。フォーガスは「1回目で意味を理解し、2回目で批判的に読め」と主張。記事公開から10年以上経った今も、システム設計の基礎を知るための羅針盤として参照され続けている。