SICPの勉強 Lecture 2B-1
37:40からの質問への答えがすごい。
Q: What does this "delayed decision through abstraction layers" do to the maxim of "do your design before any of your code"?
A: Well that's someone's axiom, and I bet that's the axiom of someone who hasn't implemented very large computer systems very much
まあそれはそうだよな。と思いつつ、ウォーターフォールが完全に主流になっている大多数のシステム開発を、よくここまでバッサリと斬れるものだなー。
レクチャーの主眼は、オブジェクト指向にも通じる抽象レイヤの重要性。ちゃんとモデル化して、より高い抽象性のプログラミングを行うときは、その下の具体的な実装には決して触らないようにする。整数から有理数からベクトルから線、と真下の抽象レイヤの概念のみ使って定義していく。