Staticおじさん

提供: MonoBook
2019年2月8日 (金) 06:11時点における221.171.20.52 (トーク)による版 (→‎総論)
ナビゲーションに移動 検索に移動

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

概要

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

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

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

総論

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

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

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

関連項目

参考文献