1 つめの理由はOOP の仕組みが複雑なことです。

 オブジェクト指向以前のプログラミング言語の仕組みは比較的単純でした。演算子、グローバル変数とローカル変数、条件分岐、繰り返し、サブルーチン(または関数)あたりを押さえておけば、たいていのプログラミング言語の仕組みは理解できました。これらはCPU やメモリに直結する仕組みのため、コンピュータの動作をイメージして理解しやすいものでした。

 しかしOOP には、たくさんの仕組みが加わっています。基本的な仕組みをざっと挙げるだけでも、クラスとインスタンス、インスタンス変数、メソッド、コンストラクタ、可視性、継承、スーパークラスとサブクラス、ポリモーフィズム、パッケージ、例外、ガベージコレクションなどがあります。これらの仕組みの名称の多くは風変わりで、コンピュータ内での動作もイメージしづらいため、プログラミング初心者がすべてを理解して使いこなせるようになるまでには相応の時間がかかることでしょう。



fizkes/Shutterstock.com
fizkes/Shutterstock.com