今日は研究室全体の集まりがあった。他の研究室と合同でやっていて、その全体で集まったのだ。なんと一ヶ月と半分がたっていた。ずいぶん長いこと集まっていなかったものだ。まあ、はっきり言ってみんながやっている卒論のテーマは、それほど難しいものではない。卒論の文章は別として、プログラムだけなら、僕なら3日で書けると思う。もちろん、オブジェクト指向うんぬんとかいう話を別にすれば、だが。
指導教官の関係で、その同級生たちはかなり特殊な方針で問題に取り組んでいる。科学の原則(?)として、なるべく不変的な法則を見出すべし、というのがあったりする。たった一言で自然のすべてを語るのが科学の理想なのだ。だからこそ、短い式ですべての物体や光について述べた相対性理論の評価が高かったりする、のだと思う。
にもかかわらず、その同級生たちは、なるべく問題を限定する方向で取り組んでいる。この問題だけでなく、こんなことやあんなこともこう考えれば分かる、というのを目指すのが論文の方向性のはずなのだが、その同級生たちはとにかく問題を限定するよう指導されているのだ。英語の問題を作っているのだが、とにかく余計な機能は一切つけない、きわめてシンプルなシステムを作ろうとしている。
これは、世の中で一般に言われるオブジェクト指向の考え方に反するものだ。一度書いたプログラムを何度でも再利用したり、変更に強いプログラムを書いたり、というのができないことがオブジェクト指向の生まれた背景であり、それをするのがオブジェクト指向の目標の1つである。しかし、そんなことは必要ない、今取り組んでいるこの問題を解決すれば終わりだ、という発想でプログラムを書いているのだ。
もちろん、一般に言われていることに反するからと言って、すべて悪いとは限らない。世の中一般に言われていることに疑問を呈するのも、考えるということだ。オブジェクト指向プログラミングのテキストにも載っていることだが、柔軟性を追及しすぎたプログラムは扱いにくい場合が往々にしてある。変更の必要がないと思われる部分まで抽象化し、具体的な実装を別にしているために全体の構造がつかみにくくなる場合があるのだ。もちろん、程度の問題であって、ある程度は抽象化すべきだ。だが、すべての処理を完全に決め付けてしまって、このプログラムではこれしかできない!というような考え方をするのも方法の1つではある。使いづらいプログラムになるが、開発が楽だからだ。もちろん、社会で通用する方法ではないだろうが。難しい技術など何もいらない。やりたいことを頭からズラッと書いていけばいいのだ。
さて、明日は自分の研究室だけで集まることになる。資料、書きあがるのだろうか。まだほとんど手をつけていないのだが。よく分かってもいない設計を延々とやるより、とりあえず書き始めてしまったほうがいいような気もする。教授の方針なんて置いておいて、まずは書いてしまうのも手かもしれない。