デザインパターンが云々
C++やJavaなどのOOPLでよく必要だと言われているデザインパターン
しかし、どうにも自分にはしっくりこない。
理由はいろいろ考えられるが
根本的に何かがおかしいというのが、最終的な理由なんだと思う。
では何がおかしいのかというとプログラミングという創作活動を行なうにあたって
パターンというのがそもそもおかしいと思える。
「プログラマは怠惰な方がよい」というニュアンスのことをよく言われるが
こののこころは、繰り返し作業などはすべて自動化するべきだといった内容だ
デザインパターンというものはまさにこれに反していると思える。
確かに先人たちが作った設計のセオリーは学ぶ価値があるとは思える。
(実際自分も勉強にはなったと思う)
しかし、それをみんながこぞってそれになぞらえて打ち込んでいるという状況
はどこか間違っている気がする。
それこそ自動化してしまえば生産性は向上するはずだ。
ただ、この作業の自動化が恐ろしく困難で解決ができないものだという
ことも容易に想像ができる。なぜならデザインパターンというものは組み合わせて
使ったりして毎回同じ形は結局しないからである。
こういった問題が発生するそもそもの原因はなんなのだろうか?
といった風に考えると、既存のプログラミング言語自体に問題があるように
思える。近代的な開発の状況を考えると複数人やメンテナンス性というものを
考慮する必要がある、といった理由でプログラムの本質そのものであるアルゴリズム以外
のことを記述する量が非常に多いのである。
OOPなどまさにその典型である。クラスを作りほかの所から分離や拡張を容易にする
といった名目でアルゴリズム以外の記述量が増えていると思う。
そのうちまた書くべきパターンが増えていくのだろうか?
可能性は十分にあるだろう。特に近年ではマルチスレッド型のプログラミングが常識になりつつ
ある、これに対するデザインパターンというものも考えられるのだろう。(内容はしらないが実際そういう本も書店にならんでいるようである)
近い未来に言語のパラダイムシフトがおこったりしないものだろうか
上記の問題を考えもつかないような方法で解決してくれるような。
ちなみにデザインパターンは一読の価値はあると思うので
読んでないとか知らない人はおすすめです。