PR

人を「staticおじさん」と呼ぶ心理

 もっとも、オブジェクト指向プログラミングや関数型プログラミングがただの道具であることは意外に忘れられがちです。

 きちんとしたプログラマであれば、これらが良いソフトウエアを作るための道具だということを理屈としては理解しているでしょう。一方、感覚としては、例えば「オブジェクト指向以前のダメな考え方」と「優れた特徴を持つオブジェクト指向」がきれいに分かれているようなイメージを無意識のうちに持ってしまうこともあります。いつの間にかオブジェクト指向を「無条件に価値があるもの」と思ってしまっているのです。

 そうした意識が端的に表れていると私が思うのが「staticおじさん」という言葉です。オブジェクト指向プログラミングを理解しようとしない古いタイプのプログラマを揶揄するのに主に使われます。Javaのstaticメソッドはインスタンスを生成しなくても使えるため、オブジェクト指向を理解していない人がstaticメソッドを使いたがることからこう呼ぶようです。

 たしかに、そう呼ばれるような人はまずオブジェクト指向プログラミングをきちんと学ぶべきだと思いますし、そんな人に振り回されるのはたまったものではないという気持ちもわかります。しかし、「staticおじさん」のような言葉を使いたくなったときには、「果たして自分はどれだけオブジェクト指向を深く理解しているのか」と振り返ることも必要だと思うのです。

 同じように、関数型プログラミングも無条件に価値があるわけではありません。一時期、関数型がブームのように騒がれ、「オブジェクト指向は古い、これからは関数型だ」と言わんばかりに、関数型言語を導入したシステム構築が先進事例として取り上げられることもありました。しかし、オブジェクト指向プログラミングと同様に、関数型プログラミングも方法論の一つでしかありません。

 「オブジェクト指向である」「関数型である」というところで議論が止まってそれ以上深まらないのは、結局のところオブジェクト指向や関数型の本質を理解している人が少ないからではないのか。そう考えて、これら2つを徹底的に解説する特集「オブジェクト指向のウソ、関数型のウソ」を日経ソフトウエア2014年11月号に掲載しました。