2000/07/07
オブジェクト指向言語の話1
JAVAにしてもC++にしても流行の言語はオブジェクト指向言語です。構造化言語は廃れてしまいました。ではどうしてオブジェクト指向言語がどうして使われるようになったのでしょうか。
1995年にソフト業界は急激な変化をしました。これはWindows95(以後Win95)というOSが発売されたためです。Win95の何が凄かったかというと、それまでの主流機ではCUI、Character-User-Interfaceが使われていたのですが、Win95は主流機で動く初めての本格的なGraphical-User-Interface(GUI)OSだったのです(Macなどは既にGUI-OSでした)。これがどうして衝撃だったかといいますと、今までの設計技法がすべて粉々になるからです。例えば画面上に「こんにちは」と表示するプログラムを考えてみましょう。CUIではたった一行、printf ("こんにちは");(C言語の場合)で済みます。ところがGUIでは(コードは長いので書きませんが)ウィンドウを生成する、ウィンドウの画面(デバイスコンテキスト)を取得する、描画用のツールを取得する、フォントの色、属性、大きさ、種類などを設定する、背景色を設定する、描画位置を設定する、描画する、と、これだけの作業が必要です。ちょっとした作業でも大量なコードを書かなければならないという状況では、関数をいくら切っても何百個という関数を作ることになるだけで、コーディングの軽減にはなりません。再利用性の高い関数を作れば引数だけが異常に多くなり、かえって使いづらいなんて馬鹿げた状況に陥ったりもしました。構造化言語では「99%同じ処理」を行うにも関数を手直ししたりしなくてはならないのです。「同じような動作でもアプリケーションごとに全然別のコードを書かなければならない」構造化言語の弱点が見えてきたのです。これは困ります。GUIのおかげでユーザは増えたのに開発には手間がかかる、もっと簡単にプログラムが組めるようにしろ!と思うのは当然ですよね。人間は楽をしたい生き物ですから。そもそもGUI自体が人間がコマンドをいちいち覚えなくても済む、つまり楽をしたいために誕生したのですし。
ではどうすれば効率の良い開発ができるのでしょうか。明日に続きます。


 

Topへ