2010年3月5日金曜日

オブジェクト指向はプログラマに苦痛を与える道具なのか

本職でプログラマをやっていたときに、オブジェクト指向でプログラムを組むのはトレースしにくいのでやめるようにと言われたことがありました。 そのときに聞いた別の理由として、オブジェクト指向はただの流行り物で使うだけ無駄、またコードの量も増えてデバッグしにくいという事も言っていました。

当然、コードも従来の方法で書きます。 特長として
  • 関数間のデータのやりとりはグローバル変数
  • オブジェクト指向で言うインスタンスを生成するときは、関数の外側で定義する
  • 上記で定義したインスタンスもどきは使う側で管理する
  • 引数を使うと見にくいので、出来るだけグローバル変数で渡す
  • 関数の再利用はせずに、エディタで文字列置換して再利用?する。
上記の様なスタイルでした。 グローバル変数が異常に多くなっているため、変数を仕様書に記述して管理を行っていました。 当然、ケアレスミスによるバグが多かったりしました。

今考えると、その職場は新しい技術に対して覚える気持ちが無い職場だったように思います。 今日、立ち読みした本に「難しい」という言葉はやる気が無いという意志を無難に伝える良い言葉という皮肉がありました。 意味は、新しい技術が出てきたときに「難しい」と言えば覚えなくて済むといった感じです。

で、タイトルの「オブジェクト指向はプログラマに苦痛・・・」ですが、私は快楽を与える道具だと思っています。 一度、クラス化してしまえば、クラスの内側については気にしなくて良いという利点があります。 実世界でテレビやラジオを使うのに中身を意識する必要が無いのと同様に、他人や過去の自分が作成したクラスに関しては外部の仕様だけを把握していれば使えてしまいます。 デバッグも一度行っていれば、クラスの内側については行う必要がありません。

また、仕様書も簡単な外部仕様書のみを共有すれば良いので、仕様書のページ数も削減されると思います。 これからプログラムを覚える人は是非、オブジェクト指向で行きましょう。

0 件のコメント:

コメントを投稿