staticおじさん

提供: MonoBook
移動先: 案内検索

staticおじさん(読み:すたてぃっくおじさん)とは、2010年に@ITに「実はオブジェクト指向ってしっくりこないんです![1]」と投稿して炎上したおじさんのことである。

概要[編集 | ソースを編集]

staticおじさんが爆誕した2010年ごろのIT土方界隈ではJavaを中心としたオブジェクト指向が主流であり「なんでもかんでもオブジェクト指向」という風潮があった。このためstaticおじさんは多勢に無勢でボロクソに叩かれる結果となり、さらにはプログラミングそのものの話を飛び出してオブジェクト指向推進派による学歴差別などに発展したすえに無事炎上した。

それからわずか数年後、staticおじさんの主張に「グローバル変数は使わない」「関数ポインタを多用する」というコーディング規約を加えた「関数型プログラミング」がJavaScript界隈を中心に爆発的に流行し、その流れに乗るかたちでこれら規約を半ば強制する仕様の「関数型プログラミング言語」も多数登場するなど世界的に一大ブームになった。

ちなみにstaticおじさんの主張と非常に酷似したものが、staticおじさんの登場より遥か昔、インターネットを支える中核技術である「IP」のRFC仕様書)にも「階層化の有害性」として書かれていたりする。また、海外でも同様の主張を面白おかしく書いた「Bjarne Stroustrup インタビュー」なる怪文書が出回り、こちらも大炎上した。

総論[編集 | ソースを編集]

つまるところ、オブジェクト指向関数型のどちらが正しいというものではなく、どちらも書き方を間違えればカオスになるということである。

少なくとも「オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。」という一見するとふざけた問題を真剣に考えられないプログラマを雇い、ある程度以上の規模のプログラムをオブジェクト指向風に書かせると高確率でデスマーチに突入するということだ。

基本設計をしっかりできるのであればオブジェクト指向でも問題ないし、むしろ学習コストの大きい関数型よりも効率的ではある。しかし、基本設計をまともにできない状態でオブジェクト指向を採用すると X Window Systemのような結末になる。

なにより一番恐ろしいのは「わたしは設計できる」と過信していることである。本当に設計できるかを確かめる意味でも「オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。」というふざけた問題をもう一度真剣に考えてみよう。

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]