Smalltalkのコードが追いやすい理由
を受けて、いつもの連想ゲームなエントリー。
OOPのコードが追いにくいのは動的なフローであるからです。そしてそれは契約に基づくプログラミングでは「結果を返してくれる何か」と抽象化して委譲するのでそこより先のフローに立ち入りません。
つまり、デバッグ時以外ではこの動的フローを強く意識せずともプログラムは書けるわけで、動的フローが身についていないままデバッグの段で動的フローに触れることになると、「OOPは役に立たない。コードの可読性を損なうだけで百害あって一利なしだ!」と憤慨することになりかねないのです。
なるほどー。抽象的でない方が取っつきやすいですから、ビギナーへのハードルは OOP の方が高い?のかもしれません。
でも、絶望するのは未だ早いです*1。そういう人には Smalltalk がよろしいかと。もう、全ては動的であることを受け入れてしまって、今、そこにあるオブジェクトを、見れる/さわれる/変えられる! 環境ならば、動的なフローだってちっとも追いにくくないのです。
コメント欄にで、
東方算程譚で先に書いてしまったけど、オブジェクト指向のコードを「読む」のが原因だと思います。
オブジェクト指向のコードに限らずコードは読むものではなくて頭の中で動かすものだと私は思うのです。
とあるけれど、それを頭の外でやってくれるのが Smalltalk の素敵なところ。
Smalltalk にふれると、OOPって簡単なものに思えてくるから不思議。言語よりもあのUnix の「ファイル」の変わりに「オブジェクト」がある OSモドキ環境が、簡単に思える大きな力になっている風に感じます。だから、OOP が広く普通の人のものになるには、ああいう環境とペアであるべきなのかもしれない、とか電波なことを言ってみたり。