staticおじさん(読み:すたてぃっくおじさん)とは、2010年に@ITに「実はオブジェクト指向ってしっくりこないんです![1]」
と投稿して炎上したおじさんのことである。
staticおじさんが爆誕した2010年ごろのIT土方界隈ではJavaを中心としたオブジェクト指向が主流であり
「なんでもかんでもオブジェクト指向」という風潮があった。
このためstaticおじさんは多勢に無勢でボロクソに叩かれる結果となり、さらにはプログラミングそのものの
話を飛び出してオブジェクト指向推進派による学歴差別などに発展したすえに無事炎上した。
それからわずか数年後、staticおじさんの主張に「極力static変数は使わない」「関数ポインタを多用する」
というコーディング規約を加えた「関数型プログラミング」がJavaScript界隈を中心に爆発的に流行し、
その流れに乗るかたちでこれら規約を半ば強制する仕様の「関数型プログラミング言語」も多数登場するなど
世界的に一大ブームになった。
ちなみにstaticおじさんの主張と非常に酷似したものが、staticおじさんの登場より遥か昔、インターネットを
支える中核技術である「IP」のRFC(仕様書)にも「階層化の有害性」として書かれていたりする。
また、海外でも同様の主張を面白おかしく書いた「Bjarne Stroustrup インタビュー」なる怪文書が出回り、
こちらも大炎上した。
https://monobook.org/wiki/%E3%82%B9%E3%82%BF%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E3%81%8A%E3%81%98%E3%81%95%E3%82%93
なぜ「staticおじさん」は叩かれたのか?
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/02/08(金) 15:18:48.58ID:pS5scTjj2019/02/10(日) 12:28:37.10ID:rK2pFdNZ
再帰使ったことないな。どんな時に使いたくなる?
呼び出し側で管理できるようにして繰り返し呼ぶ方がコードから処理がイメージしやすくていい気がするんだが。
まあコード量が少なくなるのと謎の美しさは感じるけど。
呼び出し側で管理できるようにして繰り返し呼ぶ方がコードから処理がイメージしやすくていい気がするんだが。
まあコード量が少なくなるのと謎の美しさは感じるけど。
2019/02/10(日) 12:29:11.59ID:rK2pFdNZ
>>47
なるほど
なるほど
2019/02/10(日) 12:30:17.50ID:Q/s8Bwot
>>48
階層の深さが可変のツリー構造になってるデータを探索する時とかに使う
階層の深さが可変のツリー構造になってるデータを探索する時とかに使う
2019/02/10(日) 12:31:26.00ID:cscIJSF5
末尾再起最適化を言語が保証してるのは前提として、いちいち末尾再起にするためにガチャガチャ汚ならしく変形するのが無常過ぎる。
例えばフィボナッチなんかは普通に再起書けば定義がそのまま動いているようでとても美しい。
メモ化入れてもそこまで汚くはならない。
しかし末尾再起のために変形すると一気に定義から離れる。
読むとき頭で変換しながら読むことになる。
ちっとも美しくない。
それなら最初からループで書いたほうが万が一にもスタック溢れないんだからいいわ。
例えばフィボナッチなんかは普通に再起書けば定義がそのまま動いているようでとても美しい。
メモ化入れてもそこまで汚くはならない。
しかし末尾再起のために変形すると一気に定義から離れる。
読むとき頭で変換しながら読むことになる。
ちっとも美しくない。
それなら最初からループで書いたほうが万が一にもスタック溢れないんだからいいわ。
2019/02/10(日) 12:32:03.94ID:DNUQi1GG
業務で再帰使ったことないわ
2019/02/10(日) 12:38:01.57ID:O8DkeQeo
将棋とかの思考ルーチンって再帰になってるのかな?
2019/02/10(日) 12:40:20.34ID:Q/s8Bwot
この再帰の話、全員が想定してる言語や状況が違いすぎて絶対に話がまとまらないやつだなw
2019/02/10(日) 12:41:15.72ID:O8DkeQeo
関数型 → 再帰
2019/02/10(日) 13:18:03.20ID:9lfcYoyL
>>52
ステップ数増やせるもんな
ステップ数増やせるもんな
2019/02/10(日) 13:33:45.38ID:n6QJeawT
再帰は階層構造を扱う時はほぼ必須だと思うけど、逆にそれ以外の用途はあまり思いつかない
2019/02/10(日) 13:44:32.23ID:DNUQi1GG
>>56
いや単純に使う場面がなかった
いや単純に使う場面がなかった
2019/02/10(日) 14:53:51.09ID:BEjmBSJ8
ループは再帰の糖衣構文だから何でも再帰で書けるんだけど
再帰構造を扱うとき以外は普通にループしたほうがいい、ってかそうでないと糖衣に包んだ意味がない
再帰構造を扱うとき以外は普通にループしたほうがいい、ってかそうでないと糖衣に包んだ意味がない
60デフォルトの名無しさん
2019/02/10(日) 15:05:17.60ID:tULdsfrx2019/02/10(日) 15:09:21.60ID:O8DkeQeo
フィボナッチで再帰は安直でマシンパワーの無駄使いの見本
ループでヤレ
ループでヤレ
2019/02/10(日) 17:24:48.45ID:KoYwv+8z
スマホのこのクソIME 再帰くらい変換しろやクソッ!候補にも出てこんぞ!
2019/02/10(日) 18:43:05.58ID:h0ljrL+B
1. ループは速い
2. 再帰にすると遅い
3. 末尾再帰になっていて処理系が対応していれば、
内部的にループに変換するので1と同じ速度になる
2. 再帰にすると遅い
3. 末尾再帰になっていて処理系が対応していれば、
内部的にループに変換するので1と同じ速度になる
2019/02/10(日) 20:55:34.15ID:c1xIq/Nm
SQLおじさんよりは実害ないからいい
2019/02/11(月) 10:51:41.00ID:vMTyjZUq
データ構造そのものが再帰構造になってるなら大人しく再帰を使う
せっかく階層を持ってるのに全部並列に並べてループ回してたら余計なコードが死ぬほど増えて何もいいことない
それ以外で使ったことはないし使おうと思ったこともない
せっかく階層を持ってるのに全部並列に並べてループ回してたら余計なコードが死ぬほど増えて何もいいことない
それ以外で使ったことはないし使おうと思ったこともない
2019/02/11(月) 12:10:58.33ID:27p6nxD6
別にデータ構造に振り回される必要ないと思うけどな。ループで処理した方が見通しよければそれでいい。まあコードが死ぬほど増えるなら避けた方がいいだろうけど。
67デフォルトの名無しさん
2019/02/11(月) 12:57:42.78ID:yN+iMh1T データ構造に振り回される
68デフォルトの名無しさん
2019/02/11(月) 12:58:12.86ID:yN+iMh1T www
2019/02/11(月) 13:02:33.29ID:qWYAdfL4
>>67
俺もワロタ
俺もワロタ
2019/02/11(月) 13:30:29.70ID:K/18SmCD
>>66
そこで高階関数ですよ!
そこで高階関数ですよ!
2019/02/11(月) 13:44:22.53ID:gYwRR98A
おれそんなに変なこといったか?
2019/02/11(月) 14:11:53.79ID:K/18SmCD
別に一般的な意見では?以下関数プログラミング実践入門より引用:
再帰関数は、物事を数学的に捉えた定義通りに書けることが多いためわかりやすいのですが、Haskellに慣れてくると直接的に再帰関数を書くのは避けるようになっていきます。
それは、再帰関数は便利であるのと同じくらい、危険でもあるからです。
停止しない再帰関数をうっかり書いてしまうこともあるでしょう。
とくに再帰関数を直接書くということは、時に必要となるものの、アセンブラを直接書くような低級な行為と認識されます。
データの構造に依存し、それを気にしたプログラミングを要求されるからです。
理想的にはデータの構造を気にせずに、全体に丸々変換をかけられるような関数だけを組み合わせて望む処理を書きたいのです。
そのために、再帰関数を直接利用せずにどうするかというと、次節で説明する高階関数をうまく利用するようになっていきます。
リストなど多くの再帰的に定義されたデータ構造に対しては、それを便利に利用するための計算パターンが用意されており、それらの計算パターンは高階関数として与えられています。
自分で再帰を書くのではなく、再帰部分は高階関数がやってくれるようになっています。
再帰関数は、物事を数学的に捉えた定義通りに書けることが多いためわかりやすいのですが、Haskellに慣れてくると直接的に再帰関数を書くのは避けるようになっていきます。
それは、再帰関数は便利であるのと同じくらい、危険でもあるからです。
停止しない再帰関数をうっかり書いてしまうこともあるでしょう。
とくに再帰関数を直接書くということは、時に必要となるものの、アセンブラを直接書くような低級な行為と認識されます。
データの構造に依存し、それを気にしたプログラミングを要求されるからです。
理想的にはデータの構造を気にせずに、全体に丸々変換をかけられるような関数だけを組み合わせて望む処理を書きたいのです。
そのために、再帰関数を直接利用せずにどうするかというと、次節で説明する高階関数をうまく利用するようになっていきます。
リストなど多くの再帰的に定義されたデータ構造に対しては、それを便利に利用するための計算パターンが用意されており、それらの計算パターンは高階関数として与えられています。
自分で再帰を書くのではなく、再帰部分は高階関数がやってくれるようになっています。
2019/02/11(月) 14:30:20.19ID:vMTyjZUq
そもそもこのスレではみんなの想定する「再帰」という言葉の定義からして違いそうなのは伝わってくる
2019/02/11(月) 14:50:55.95ID:OckTJWpB
永遠に噛み合わない水掛け論やってないでStaticおじさんの話をしてやれよ
2019/02/11(月) 15:30:45.56ID:+dKi1IbA
(言うほど噛み合ってないか?)
2019/02/11(月) 16:08:34.92ID:wLhY3x2i
>>72
これも当てはまる
ループ処理は、物事を数学的に捉えた定義通りに書けることが多いためわかりやすいのですが、Haskellに慣れてくると直接的にループ処理を書くのは避けるようになっていきます。
それは、ループ処理は便利であるのと同じくらい、危険でもあるからです。
停止しないループ処理をうっかり書いてしまうこともあるでしょう。
とくにループ処理を直接書くということは、時に必要となるものの、アセンブラを直接書くような低級な行為と認識されます。
データの構造に依存し、それを気にしたプログラミングを要求されるからです。
理想的にはデータの構造を気にせずに、全体に丸々変換をかけられるような関数だけを組み合わせて望む処理を書きたいのです。
そのために、ループ処理を直接利用せずにどうするかというと、次節で説明する高階関数をうまく利用するようになっていきます。
リストなど多くのループ処理に定義されたデータ構造に対しては、それを便利に利用するための計算パターンが用意されており、それらの計算パターンは高階関数として与えられています。
自分でループを書くのではなく、ループは高階関数がやってくれるようになっています。
これも当てはまる
ループ処理は、物事を数学的に捉えた定義通りに書けることが多いためわかりやすいのですが、Haskellに慣れてくると直接的にループ処理を書くのは避けるようになっていきます。
それは、ループ処理は便利であるのと同じくらい、危険でもあるからです。
停止しないループ処理をうっかり書いてしまうこともあるでしょう。
とくにループ処理を直接書くということは、時に必要となるものの、アセンブラを直接書くような低級な行為と認識されます。
データの構造に依存し、それを気にしたプログラミングを要求されるからです。
理想的にはデータの構造を気にせずに、全体に丸々変換をかけられるような関数だけを組み合わせて望む処理を書きたいのです。
そのために、ループ処理を直接利用せずにどうするかというと、次節で説明する高階関数をうまく利用するようになっていきます。
リストなど多くのループ処理に定義されたデータ構造に対しては、それを便利に利用するための計算パターンが用意されており、それらの計算パターンは高階関数として与えられています。
自分でループを書くのではなく、ループは高階関数がやってくれるようになっています。
2019/02/11(月) 16:33:22.35ID:K/18SmCD
>>76
雑すぎる…
> ループ処理は、物事を数学的に捉えた定義通りに書けることが多いため
数学の教科書読み直せw
> Haskellに慣れてくると直接的にループ処理を書くのは避けるようになっていきます。
Haskellはそもそもループ書けないぞw
雑すぎる…
> ループ処理は、物事を数学的に捉えた定義通りに書けることが多いため
数学の教科書読み直せw
> Haskellに慣れてくると直接的にループ処理を書くのは避けるようになっていきます。
Haskellはそもそもループ書けないぞw
2019/02/11(月) 18:40:51.77ID:iZFjFd14
再帰する関数の定義がばっちりと決まってて動かしようがないならそっちに吸い寄せられて書くけど
漏れがありそうな場合は再帰は使わない
普通のAPIで仕様的に再帰とは指定されてこないしね…(来たら死ねと思うわ)
漏れがありそうな場合は再帰は使わない
普通のAPIで仕様的に再帰とは指定されてこないしね…(来たら死ねと思うわ)
79デフォルトの名無しさん
2019/02/12(火) 01:14:01.84ID:aNPhUqtm 関数型なんかは結局書ける奴が少ない
それでは業務はこなしきれない
それが解らない奴はただのアホです
自分は凄い事が出来ますよ〜
って自慢したいだけ
それでは業務はこなしきれない
それが解らない奴はただのアホです
自分は凄い事が出来ますよ〜
って自慢したいだけ
2019/02/12(火) 01:26:10.04ID:Gzde7jeA
んなアホな
2019/02/12(火) 01:29:37.44ID:xM7yD0R2
そんなことないだろ。別に数学のすごい理論完璧に把握してなきゃ関数型書けないって訳でもないし。
OOP真理教の経典暗記のほうがよほど辛い。
慣れてないだけ。難しいと思い込んでるだけ。
OOP真理教の経典暗記のほうがよほど辛い。
慣れてないだけ。難しいと思い込んでるだけ。
82デフォルトの名無しさん
2019/02/12(火) 10:14:15.57ID:1dJfHHkV ネタにマジレスかもしれないが、
未だにこんなこと言ってるバカいるんだな。
今、誰でも名前知ってる大企業から受託案件受けてるけど、
一番チェックされるのは「オブジェクト指向設計になっているか」だぞ。
上でも出てるけど、staticおじさんの主張と関数型言語は何の関係もない。
関数型言語の本質は参照透過性。
「public static宣言した共有変数」なんて、
参照透過性を妨げる最たるものだろwww
未だにこんなこと言ってるバカいるんだな。
今、誰でも名前知ってる大企業から受託案件受けてるけど、
一番チェックされるのは「オブジェクト指向設計になっているか」だぞ。
上でも出てるけど、staticおじさんの主張と関数型言語は何の関係もない。
関数型言語の本質は参照透過性。
「public static宣言した共有変数」なんて、
参照透過性を妨げる最たるものだろwww
2019/02/12(火) 10:26:36.21ID:wp1a6nq7
そのオブジェクト指向もできないのが多すぎるから問題なんだよな
オブジェクトが分かってないからデザインパターンなんてもんも理解できるわけもない
つまり話は巡り巡ってstaticおじさんにたどり着くわけだ
オブジェクト指向もできなければ関数型でもないただのウンコード量産機がstaticおじさん
オブジェクトが分かってないからデザインパターンなんてもんも理解できるわけもない
つまり話は巡り巡ってstaticおじさんにたどり着くわけだ
オブジェクト指向もできなければ関数型でもないただのウンコード量産機がstaticおじさん
2019/02/12(火) 12:36:54.43ID:NT60/ZFg
でもこのstaticおじさん順調に出世して今では大手の本部長だかCTOだかなんでしょ?
2019/02/12(火) 12:56:41.90ID:VqanzRzk
高階関数って偉そうに言ってるけど具体例出さない時点でエアプだろw
2019/02/12(火) 13:06:24.87ID:eC1lEXzI
高階関数なんてありふれてるだろ。
それを偉そうにとは?
使ったことないの?
それを偉そうにとは?
使ったことないの?
2019/02/12(火) 13:12:41.50ID:1MzWJDZP
プログラミングは経験つめば抽象的な概念を使って具体的な整理がしっかりできる世界だろ。
2019/02/12(火) 14:00:13.73ID:zaXjz+ge
例出す必要もないわなw
2019/02/12(火) 14:00:46.30ID:zaXjz+ge
関数型コンプレックス
2019/02/12(火) 17:08:04.63ID:wp1a6nq7
2019/02/12(火) 18:46:33.01ID:1MzWJDZP
>>90
落ち着け。その解釈はメモリ破壊系のバグが発生してる可能性高い。
落ち着け。その解釈はメモリ破壊系のバグが発生してる可能性高い。
2019/02/12(火) 19:05:54.66ID:hBAcbodS
>>91
等価じゃないものを等価と判定してるから、そこら辺のロジックにバグがありそうだな
等価じゃないものを等価と判定してるから、そこら辺のロジックにバグがありそうだな
2019/02/12(火) 19:12:54.88ID:zaXjz+ge
バグおじさん
2019/02/12(火) 20:04:05.06ID:g6CslLMJ
テストコードちゃんと書く奴ならstatic変数もオブジェクト指向も
ある点で問題あることは理解できるもんだが。
そういう意味では関数型のが有害性は低いか。
たまに何でもかんでも再帰で書こうとして逆に可読性低くする馬鹿もいるが。
ある点で問題あることは理解できるもんだが。
そういう意味では関数型のが有害性は低いか。
たまに何でもかんでも再帰で書こうとして逆に可読性低くする馬鹿もいるが。
2019/02/12(火) 21:25:33.47ID:YWb9Gabw
なんだかんだ出世高給取りのstaticおじさん勝ち組だわ
2019/02/13(水) 01:37:44.19ID:WxhWOV7/
さんざんメソッド移動して最後のメソッドでreturnだけして値返すだけなのにたどり着くと殺意が湧く
2019/02/13(水) 01:43:30.19ID:P+AkLq1G
マトリョーシカおじさん
2019/02/13(水) 01:47:04.99ID:wIurVPBj
関数型の話をすると
関数書けない言語なんてあるんですかねと返されたことを思い出す
関数書けない言語なんてあるんですかねと返されたことを思い出す
2019/02/13(水) 01:56:08.62ID:5ssU2x9I
フフッ
100>>82
2019/02/13(水) 22:33:19.44ID:1YO06rir >>83
ま、その通りだよな。
「public static宣言した共有変数」なんて、
オブジェクト間のメッセージパッシングができないアホ
(別名「オブジェクト指向もできなければ関数型でもないただのウンコード量産機」)
が頼ろうとする手段の最たるものだからな。
ま、その通りだよな。
「public static宣言した共有変数」なんて、
オブジェクト間のメッセージパッシングができないアホ
(別名「オブジェクト指向もできなければ関数型でもないただのウンコード量産機」)
が頼ろうとする手段の最たるものだからな。
101デフォルトの名無しさん
2019/02/14(木) 07:14:01.74ID:zYy89We+ また今日もValueHolderモデル使わないで直にget/setやるうんこちゃんと仲良くコード書かなきゃ
はぁまじはぁ
はぁまじはぁ
102デフォルトの名無しさん
2019/02/15(金) 22:52:26.99ID:9C1FU27E 勘違いしてるやつ多いけど
statucおじさんはJavaじゃなくてC#だぞ
Javaプログラマのryoasaiがハッスルしただけで
statucおじさんはJavaじゃなくてC#だぞ
Javaプログラマのryoasaiがハッスルしただけで
103デフォルトの名無しさん
2019/02/16(土) 16:43:03.87ID:tvgUJD+/ どこまですればオブジェクト思考なのか
104デフォルトの名無しさん
2019/02/16(土) 17:24:45.57ID:mbQsd5u7 Classあれば全部オブジェクト指向
105デフォルトの名無しさん
2019/02/16(土) 17:27:47.39ID:3/SZoFmm Cで構造体を引き回して管理するタイプのライブラリはオブジェクト思考と言えるだろうか?
106デフォルトの名無しさん
2019/02/16(土) 18:51:28.96ID:LE6s3aZE XWindowライブラリは一般にはオブジェクト指向だと言われとる。
どこまでシンタックスでカプセル化対応するか、どこまで動的なものにするかってのが
議論の分かれ目じゃないかね。
どこまでシンタックスでカプセル化対応するか、どこまで動的なものにするかってのが
議論の分かれ目じゃないかね。
107デフォルトの名無しさん
2019/02/16(土) 19:03:53.77ID:PhVDH7kZ 違うだろ
Cの構造体と糞みたいに長い名前のXwindow関数群がいやだから
オブジェクト指向に移行したんだろ
Cの構造体と糞みたいに長い名前のXwindow関数群がいやだから
オブジェクト指向に移行したんだろ
108デフォルトの名無しさん
2019/02/17(日) 01:27:10.00ID:O/E0SKNM109デフォルトの名無しさん
2019/02/17(日) 02:26:19.17ID:L6um7wlM ハンドラ変数という悪夢
110デフォルトの名無しさん
2019/02/17(日) 03:07:42.86ID:xp57qVrW ハンドラに関数ポインタ持たせて、でその関数の変数にハンドラのポインタを渡しておけばさすがにオブジェクト指向と言えるか?
こうなるとハンドラじゃなくてthisとかselfって呼びたくなるな。
こうなるとハンドラじゃなくてthisとかselfって呼びたくなるな。
111デフォルトの名無しさん
2019/02/17(日) 04:02:09.20ID:KHx9LvZX >>108
関わりたくないとか言いながら自らアンカしてかかわっていくスタイルすごい斬新ですね
関わりたくないとか言いながら自らアンカしてかかわっていくスタイルすごい斬新ですね
112デフォルトの名無しさん
2019/02/17(日) 10:00:29.48ID:7SCgo2EY オブジェクト指向ならメソッド名などのメンバー名があいまいでもエディタである程度関数名がでてくる
構造体+グローバル関数だとアホみたいに出てくる候補から選ばなくてはならない
昔はその候補すら出ないので正確な名前が必要だった
だから分厚い辞書みたいな本や紙の束を持ってプログラムしていた
それでもミスする
コンパイルエラーでそんな関数ないよって言われてばかり
構造体+グローバル関数だとアホみたいに出てくる候補から選ばなくてはならない
昔はその候補すら出ないので正確な名前が必要だった
だから分厚い辞書みたいな本や紙の束を持ってプログラムしていた
それでもミスする
コンパイルエラーでそんな関数ないよって言われてばかり
113デフォルトの名無しさん
2019/02/17(日) 10:07:41.57ID:zowSdywj 設計書の機能一覧のどこのメソッドなのそれ?
これがわからないとどんなに高機能になってもゴミ
マイクロソフトはofficeとvisualstudioの統合を早急に行うべき
これがわからないとどんなに高機能になってもゴミ
マイクロソフトはofficeとvisualstudioの統合を早急に行うべき
114デフォルトの名無しさん
2019/02/17(日) 10:10:56.31ID:7SCgo2EY 昔は紙の束やノートや本をもってコードを書いていたんだよ
冗談抜きで
その本は洋書だた
教授の本棚から借りてくるの
冗談抜きで
その本は洋書だた
教授の本棚から借りてくるの
115デフォルトの名無しさん
2019/02/17(日) 10:17:10.43ID:zowSdywj116デフォルトの名無しさん
2019/02/17(日) 10:20:39.56ID:7SCgo2EY メソッド名が○○createなのか○○Createなのかcreate○○なのかCreate○○なのかcreates○○なのかCreates○○なのか
Cだと○○creatという線もある
○○.create最強すぎる
Cだと○○creatという線もある
○○.create最強すぎる
117デフォルトの名無しさん
2019/02/17(日) 10:38:53.57ID:S3RSWBju せめてcreatにeをつけたいね
118デフォルトの名無しさん
2019/02/17(日) 10:43:49.68ID:zowSdywj creatE○○採用
検索ヒットしやすいだろ
検索ヒットしやすいだろ
119デフォルトの名無しさん
2019/02/17(日) 11:51:33.28ID:hPUvxkn3 gccオプションでstaticを封じるとかあればいいのにw
120デフォルトの名無しさん
2019/02/17(日) 12:09:58.01ID:p5ummUd3 仮想関数技術でstatic関数みたいにできなかったっけ?
staticも静的占有修飾子という名称を聞いたことあるだけで
あんまくわしく知らない。違うところのファイルも仮想関数
使うとstaticとおんなじようにできるんじゃなかったっけ?
staticも静的占有修飾子という名称を聞いたことあるだけで
あんまくわしく知らない。違うところのファイルも仮想関数
使うとstaticとおんなじようにできるんじゃなかったっけ?
121デフォルトの名無しさん
2019/02/17(日) 15:23:18.00ID:KFkN1Yft fantasticおじさん
122デフォルトの名無しさん
2019/02/17(日) 16:24:01.33ID:stWHtwS7 algol60で新しく導入された従来の構文とは直交(orthogomal)する
ブロック(block)構文内で計算した結果を保存するために
一緒に導入されたのが占有修飾子own。だけれども実装に
あたっては仕様が曖昧で動的、静的、中間解釈と三通りに
解釈があって大論争。最終的にownの解釈は静的(static)
です、でstaticになった。
Simulaとかはそもそもブロック(block)の計算結果を捨てる
からいかんのだ、であんまりプログラマーになじみのない
例を題材に並列化をといてたりするからクラスベースのOOには
staticは実は固有の用語だね。
ブロック(block)構文内で計算した結果を保存するために
一緒に導入されたのが占有修飾子own。だけれども実装に
あたっては仕様が曖昧で動的、静的、中間解釈と三通りに
解釈があって大論争。最終的にownの解釈は静的(static)
です、でstaticになった。
Simulaとかはそもそもブロック(block)の計算結果を捨てる
からいかんのだ、であんまりプログラマーになじみのない
例を題材に並列化をといてたりするからクラスベースのOOには
staticは実は固有の用語だね。
123デフォルトの名無しさん
2019/02/22(金) 13:18:21.26ID:1Zm4d6fz クラスがあればstaticなんて不要だよな。
逆にクラスが無いならstatic使うしか無い。
逆にクラスが無いならstatic使うしか無い。
124デフォルトの名無しさん
2019/02/22(金) 14:02:53.19ID:s1C4N+RU シングルトンの実装はどのようにするべき?
125デフォルトの名無しさん
2019/02/22(金) 17:23:44.59ID:p3Rb6+Rr コメントに
// これはシングルトンで使ってください
って書いてけばおk
// これはシングルトンで使ってください
って書いてけばおk
126デフォルトの名無しさん
2019/02/22(金) 19:36:01.71ID:nCLTgLRo シングルトンは使うなが正解
127デフォルトの名無しさん
2019/02/22(金) 19:54:20.58ID:1Zm4d6fz リソース競合怖いならセマフォで排他すりゃいいしな。
待たせたいなら待たせればいいし。
待たせたいなら待たせればいいし。
128デフォルトの名無しさん
2019/02/22(金) 22:48:48.51ID:Tn7dUsgu >>124
DIコンテナを使う
DIコンテナを使う
129デフォルトの名無しさん
2019/02/25(月) 23:03:39.42ID:TP8zPbuZ シングルトンってどこで使うんだ?インスタンスを直接生成させたくないならManager使えばいいじゃん
130デフォルトの名無しさん
2019/02/25(月) 23:30:02.76ID:lsusqOoA >>129
Managerとは?
Managerとは?
131デフォルトの名無しさん
2019/02/25(月) 23:38:46.23ID:g2jQN+TN トンチンカンだったらすまんけど、例えばオーディオ操作するクラスとかはシングルトンだった。オーディオAPIを複数のインスタンスから叩かれてどうなるかよくわからないし。
132デフォルトの名無しさん
2019/02/25(月) 23:40:53.63ID:g2jQN+TN >>131だけど正確にはCでシングルトン的な実装をしてた。classとか紛らわしい言葉使ってすまない。
133デフォルトの名無しさん
2019/02/26(火) 10:45:40.21ID:UuxN6/HJ Cならむしろシングルトンがデフォルトだろ。
あれで別オブジェクト同時に動かすには工夫が要るからな。
あれで別オブジェクト同時に動かすには工夫が要るからな。
134デフォルトの名無しさん
2019/02/26(火) 12:57:09.88ID:4VLeDBYT 例えばタイマー機能を持つライブラリなんかはいろんなスレッドで別々に使用したくなるから別オブジェクトで同時に動かしたりするな。別オブジェクトというか別ハンドラ構造体だが。
135デフォルトの名無しさん
2019/02/26(火) 15:41:32.58ID:e2/fBDmS シングルトンをどう作るor使うって、言語によってあまりにも違いすぎるから一般化無理だろw
136デフォルトの名無しさん
2019/02/26(火) 18:02:58.64ID:eD4jaKNG 役割は言語関係ないだろ
137デフォルトの名無しさん
2019/02/26(火) 19:58:36.33ID:tR5x62Pi 結局どこでインスタンス生成するかを決めきれてないところがシングルトンが必要になる理由で
それは設計を見直すっていうのが根本的な治療な訳だ。
それは設計を見直すっていうのが根本的な治療な訳だ。
138デフォルトの名無しさん
2019/02/26(火) 20:25:46.94ID:a57A2wmx >>137
言いたいことはわかるが、「起きてはいけないことは起こらないようにする」ということを好むプログラマーがいて、彼らが作ったのがシングルトンなんじゃないの?
だからシングルトンが必要なわけでもないし治療が必要なわけでもない。
言いたいことはわかるが、「起きてはいけないことは起こらないようにする」ということを好むプログラマーがいて、彼らが作ったのがシングルトンなんじゃないの?
だからシングルトンが必要なわけでもないし治療が必要なわけでもない。
139デフォルトの名無しさん
2019/02/26(火) 20:35:21.90ID:W0wJxBNy 一方世間では「子供部屋おじさん」が激増中
140デフォルトの名無しさん
2019/02/26(火) 20:48:30.10ID:W0wJxBNy シングルトンの話題か、はいはい。
Singleton何が悪いの?
https://qiita.com/mo12ino/items/abf2e31e34278ebea42c
Why is Singleton considered an anti-pattern?
https://stackoverflow.com/questions/12755539/why-is-singleton-considered-an-anti-pattern
When Singleton Becomes an Anti-Pattern
https://dzone.com/articles/singleton-anti-pattern
Singleton is not an anti-pattern
https://medium.com/@piotr.chmielowski/singleton-is-not-an-anti-pattern-51392c3e508e
Singleton Anti-Pattern
https://www.michaelsafyan.com/tech/design/patterns/singleton
Singleton何が悪いの?
https://qiita.com/mo12ino/items/abf2e31e34278ebea42c
Why is Singleton considered an anti-pattern?
https://stackoverflow.com/questions/12755539/why-is-singleton-considered-an-anti-pattern
When Singleton Becomes an Anti-Pattern
https://dzone.com/articles/singleton-anti-pattern
Singleton is not an anti-pattern
https://medium.com/@piotr.chmielowski/singleton-is-not-an-anti-pattern-51392c3e508e
Singleton Anti-Pattern
https://www.michaelsafyan.com/tech/design/patterns/singleton
141デフォルトの名無しさん
2019/02/26(火) 21:49:06.18ID:AvMGpFJx シングルトンの話題がここまで伸びるとは・・・
まあ実際使わんからな。
正規表現をstaticにするのは悪い考えだろうか?
更に言えばstatic constなら問題無い?
まあ実際使わんからな。
正規表現をstaticにするのは悪い考えだろうか?
更に言えばstatic constなら問題無い?
142デフォルトの名無しさん
2019/02/26(火) 23:45:48.96ID:DJEN/H2R >>140
自分の意見を言えよ!(激おこ
自分の意見を言えよ!(激おこ
143デフォルトの名無しさん
2019/02/27(水) 00:27:53.77ID:wn5rL22a シングルトンと書いて"どこでもドア"と呼ぶ
144デフォルトの名無しさん
2019/02/27(水) 08:19:37.48ID:6ZXfG+VB 読み書きできるデータがどこでもドアなのは怖いけど副作用のないメソッドがどこでもドアなのはありがたい
145デフォルトの名無しさん
2019/02/27(水) 08:36:57.25ID:yveuGv1a C言語のstatic宣言が、private宣言となっているのがいけない。
146デフォルトの名無しさん
2019/02/27(水) 17:50:25.07ID:OHGiEJmI シングルトンにしてはいけないものをシングルトンにする輩がそこそこいるからな
147デフォルトの名無しさん
2019/02/27(水) 18:43:11.68ID:6a6tMlMF readは別にスコープをそこまで気にせんでもいいがwriteはあかんな。
シングルトンの問題とstaticおじさんの問題は本質的には同じ。
シングルトンの問題とstaticおじさんの問題は本質的には同じ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】Jリーグ観客動員が歴代最多を更新 初の「1300万人超え」達成…平均入場者数も史上最高に [尺アジ★]
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 ★3 [少考さん★]
- 日中対立「着地点」見えず 中国、他国にも圧力の過去―関係悪化から1カ月 [蚤の市★]
- 日本の英語力96位から動かず AI評価で可視化された「読めるが話せない」の正体 (EF EPI 2025) ★2 [少考さん★]
- 【芸能】粗品、日本テレビに苦言 客のレベルが「かなり低い。あいつら分かってない」「拍手したいだけやねん」 [冬月記者★]
- 【静岡】伊東市長選、前市議の杉本氏初当選 学歴詐称疑惑の田久保氏は及ばず 市長選3700万円、市議選6300万円の計1億円費やされる [ぐれ★]
- 【朗報】イーロン・マスク「AIとロボットで誰も働かなくて良くなる。全員ニートで金銭も税金もないパラダイスみてぇな国を作りてえ」 [347751896]
- うまトマ食って「うまトマ〜」って言って滑ったんだが!?
- なんでネトウヨが勃起してるの? [377482965]
- 今これで全力シコってる
- 俺のあだ名がきゅうべぇなんだけどさ
- 千反田えるってうんこするの?
