「Staticおじさん」の版間の差分
imported>Administrator |
Administrator (トーク | 投稿記録) |
||
(4人の利用者による、間の12版が非表示) | |||
1行目: | 1行目: | ||
− | '''staticおじさん''' | + | {{小文字}} |
+ | '''staticおじさん'''(読み:すたてぃっくおじさん)とは、2010年に@ITに「実は[[オブジェクト指向]]ってしっくりこないんです!<ref>http://el.jibun.atmarkit.co.jp/minagawa/2010/04/post-ebc4.html</ref>」と投稿して炎上したおじさんのことである。 | ||
− | + | ==概要== | |
+ | staticおじさんが爆誕した2010年ごろの[[IT土方]]界隈では[[Java]]を中心とした[[オブジェクト指向]]が主流であり「なんでもかんでもオブジェクト指向」という風潮があった。このためstaticおじさんは多勢に無勢でボロクソに叩かれる結果となり、さらには[[プログラミング]]そのものの話を飛び出して[[オブジェクト指向]]推進派による学歴差別などに発展したすえに無事[[炎上]]した。 | ||
− | + | それからわずか数年後、staticおじさんの主張に「[[グローバル変数]]は使わない」「[[関数ポインタ]]を多用する」という[[コーディング規約]]を加えた「[[関数型プログラミング]]」が[[JavaScript]]界隈を中心に爆発的に流行し、その流れに乗るかたちでこれら規約を半ば強制する[[仕様]]の「[[関数型プログラミング言語]]」も多数登場するなど世界的に一大ブームになった。 | |
ちなみにstaticおじさんの主張と非常に酷似したものが、staticおじさんの登場より遥か昔、[[インターネット]]を支える中核技術である「[[IP]]」の[[RFC]]([[仕様書]])にも「[[階層化の有害性]]」として書かれていたりする。また、海外でも同様の主張を面白おかしく書いた「[[Bjarne Stroustrup インタビュー]]」なる怪文書が出回り、こちらも大炎上した。 | ちなみにstaticおじさんの主張と非常に酷似したものが、staticおじさんの登場より遥か昔、[[インターネット]]を支える中核技術である「[[IP]]」の[[RFC]]([[仕様書]])にも「[[階層化の有害性]]」として書かれていたりする。また、海外でも同様の主張を面白おかしく書いた「[[Bjarne Stroustrup インタビュー]]」なる怪文書が出回り、こちらも大炎上した。 | ||
− | つまるところ、[[オブジェクト指向]]と[[関数型]] | + | ==総論== |
+ | つまるところ、[[オブジェクト指向]]と[[関数型]]のどちらが正しいというものではなく、どちらも書き方を間違えればカオスになるということである。 | ||
+ | |||
+ | 少なくとも「[[オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。]]」という一見するとふざけた問題を真剣に考えられない[[プログラマ]]を雇い、ある程度以上の規模の[[プログラム]]をオブジェクト指向風に書かせると高確率で[[デスマーチ]]に突入するということだ。 | ||
+ | |||
+ | 基本設計をしっかりできるのであればオブジェクト指向でも問題ないし、むしろ学習コストの大きい関数型よりも効率的ではある。しかし、基本設計をまともにできない状態でオブジェクト指向を採用すると [[X Window System]]のような結末になる。 | ||
+ | |||
+ | なにより一番恐ろしいのは「わたしは設計できる」と過信していることである。本当に設計できるかを確かめる意味でも「[[オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。]]」というふざけた問題をもう一度真剣に考えてみよう。 | ||
+ | |||
+ | ==関連項目== | ||
− | |||
*[[階層化の有害性]] | *[[階層化の有害性]] | ||
*[[Bjarne Stroustrup インタビュー]] | *[[Bjarne Stroustrup インタビュー]] | ||
*[[オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。]] | *[[オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。]] | ||
− | == 参考文献 == | + | ==参考文献== |
{{reflist}} | {{reflist}} | ||
+ | |||
+ | [[category: プログラミング]] |
2024年3月13日 (水) 01:22時点における最新版
staticおじさん(読み:すたてぃっくおじさん)とは、2010年に@ITに「実はオブジェクト指向ってしっくりこないんです![1]」と投稿して炎上したおじさんのことである。
概要[編集 | ソースを編集]
staticおじさんが爆誕した2010年ごろのIT土方界隈ではJavaを中心としたオブジェクト指向が主流であり「なんでもかんでもオブジェクト指向」という風潮があった。このためstaticおじさんは多勢に無勢でボロクソに叩かれる結果となり、さらにはプログラミングそのものの話を飛び出してオブジェクト指向推進派による学歴差別などに発展したすえに無事炎上した。
それからわずか数年後、staticおじさんの主張に「グローバル変数は使わない」「関数ポインタを多用する」というコーディング規約を加えた「関数型プログラミング」がJavaScript界隈を中心に爆発的に流行し、その流れに乗るかたちでこれら規約を半ば強制する仕様の「関数型プログラミング言語」も多数登場するなど世界的に一大ブームになった。
ちなみにstaticおじさんの主張と非常に酷似したものが、staticおじさんの登場より遥か昔、インターネットを支える中核技術である「IP」のRFC(仕様書)にも「階層化の有害性」として書かれていたりする。また、海外でも同様の主張を面白おかしく書いた「Bjarne Stroustrup インタビュー」なる怪文書が出回り、こちらも大炎上した。
総論[編集 | ソースを編集]
つまるところ、オブジェクト指向と関数型のどちらが正しいというものではなく、どちらも書き方を間違えればカオスになるということである。
少なくとも「オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。」という一見するとふざけた問題を真剣に考えられないプログラマを雇い、ある程度以上の規模のプログラムをオブジェクト指向風に書かせると高確率でデスマーチに突入するということだ。
基本設計をしっかりできるのであればオブジェクト指向でも問題ないし、むしろ学習コストの大きい関数型よりも効率的ではある。しかし、基本設計をまともにできない状態でオブジェクト指向を採用すると X Window Systemのような結末になる。
なにより一番恐ろしいのは「わたしは設計できる」と過信していることである。本当に設計できるかを確かめる意味でも「オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。」というふざけた問題をもう一度真剣に考えてみよう。