最近耳にしなくなったけれど、デジタル・ディバイドという言葉があります。
意味は、情報技術を使える人と使えない人との格差のことですね。
オブジェクト指向・ディバイドとは・・・
これは僕が勝手に作った言葉で、コンピュータの技術者でオブジェクト指向が理解できる者とそうでない者が割とはっきりと分かれているような感じを受けることからこの名称が浮かんだ、というわけです。
近頃の技術者は最初からオブジェクト指向のプログラミング環境から入るので、もはやオブジェクト指向を理解していない人はいないのではないか? という考えもありますが、実際には慣習的にオブジェクト指向対応言語を使っているだけで、その本質を理解できていない技術者も多いのではないか、とも思います。
オブジェクト指向がブームになった頃はまるで宗教のように、誰々の学者派、みたいなものがあったり、そんな学者が書いたバイブルのような分厚い本が普通の書店でも売られていたりしていました。
そして、そんなバイブルを読んで理解できた人はそれだけでオブジェクト指向が使いこなせると勘違いして大きなプロジェクトで失敗してしまうこともありました。
オブジェクト指向は不幸にしてこのような尊大?な人たちの布教活動によって一般庶民である職人エンジニアの一部、いや、もしかするとその多くに嫌われることになってしまったように思います。
僕自身は学者の書いた本を少しは読んでも、それがすぐに応用できないお話ばかりでうんざりしていました。必然的にアカデミックな教科書ではなく、自分なりの解釈で自分なりに応用するようになっていました。
オブジェクト指向なんてクソ食らえ、と思っている人はある意味正しいのかもしれません。
ただ、実のところオブジェクト指向がなければ極端に生産性が落ちてしまい、僕自身が行う見積もり工数は2~10倍にも増えてしまうと思います。
オブジェクト指向がなぜクソ食らえ、なのか。言い方を変えれば、オブジェクト指向という宗教がクソ食らえであり、バイブルという存在がよろしくないという意味です。最初から全てが「べき」論であり、禁則だらけです。
しかし、現実に応用可能な実際のオブジェクト指向はべき論ではなく、こうした方がよりよいというお勧め論なのです。
何をもって完全なオブジェクト指向か、という議論はありますが、禁則を全て守る神のようなプログラミングができる言語があったとして(論者御用達の言語はあるようです)、それは生産性や実行効率、応用範囲の全てにおいて実用性が低いと思われます。それは既にそういった言語が一般に普及していないことでも証明されています。
非常に普及したC++言語は、その前身となったC言語にオブジェクト指向のプログラミングができるように仕様を追加した、という意味でのネーミングです。プログラマは必要に応じて従来型のプログラミングと理想的オブジェクト指向プログラミングの間で無意識に適切な方法が選択できるのです。
C++言語を蔑視するオブジェクト指向の関係者もいるようですが、現実世界の技術者にはむしろ理想的なプログラム言語だったのかもしれません。
0 件のコメント:
コメントを投稿