2021-01-25

従来のFor文は無限ループ可能性があって危険から使うと怒られるってマジ?

朝っぱらから新しい現場上司に怒られたわ

「お前は会社潰そうとしてるのか!」

無限ループして会社サーバーがぶっ飛んだらどうすんだよ!会社機能しなくなるよ?子供じゃないよね?君?社会経験はじめて?」

「Foreach使えよ!」って

多分30分ぐらい怒鳴られて泣いて顔洗って来いって言われたかトイレに逃げ込んでるんだけど

冷静に考えてForのほうがパフォーマンスいいし俺は悪くないよね

会社規定を守らなかった俺も悪いけど初対面の相手にそんなにキレるか普通

  • forのほうがパフォーマンスいいってことは無い foreach使うべきなのは間違いない ただそこまでキレられるのは異常というか、派遣・SESを奴隷扱いする文化がある会社だろうな

    • 言語によるが4倍ぐらいforのほうが早いぞ

      • あり得ないと思うが、どの言語のどのデータ構造の話か、教えてくれ (foreach関係なくループのたびにオブジェクト作ってるとかいうオチじゃないだろうな)

      • 言語によるが4倍ぐらいforeachのほうが早いぞ。 JAVA C# 系は。

        • 話にならんからお前が参考にしたソースを出してみろ

          • 例えば、 https://qiita.com/130cmWolf/items/0a4ecaa92d0ef82d7c7a とか。

            • ああ、すまん foreachのほうが早いよな (ランダムアクセスができる構造(配列とか)なら同等、それ以外(LinkedListとか)ならforeachが圧倒的に早い)

        • 処理内容でFor文と同じ速度になることはあっても原初的なFor文の処理速度超えるわけないだろ 余計な処理付け足してるのにパフォーマンス上がらねえよ

          • 言語によるがforeachはただのforのエイリアスだぞ。Perlでは。

            • やはり、時代は Perl だな。 Perl の先進性にはいつも頭が下がる。

            • コンパイラ次第ってことでしょ 基本的な奴と違ってインデントを毎回生成するようなバイナリに変換されることもあるからコンパイラの事情を予想してFor文と同じバイナリに変換される...

            • そういや関数型言語マウント勢とか 再帰懐古勢とか来てないな

          • 添字によるアクセスが高速にできないデータ構造もある foreachには、データ構造による最適なアクセス方法の違いを吸収してくれる意味もあるんだぞ

            • それプログラマの能力が低いだけじゃん 適切な処理を知ってれば常にFor文のほうが早いよ

              • 適切な処理を書けない言語では?

                • バイナリに変換できるってことは書けるんだよ 能力が低ければForeachでいいだろうな コンパイラが自動でやってくれるし

          • PHPの場合はデータ構造が特殊で、すべてが連想配列なんだよ。 for で間接的にアクセスするより、foreach での直接アクセスのほうが速くなる。 そいう言語も世の中にはあるってこと。

            • つうかfor文が ・初期化(これは最初に一回) ・インクリメント ・終端判定 しているのに比べてforeachは ・「次」ってメソッドを呼び出す ・次が無ければ終了 なんだから割とシンプルな...

            • それ計測したんか?

  • ふぉーっふぉっふぉーっ

  • それ、フォアハラですよ。 あなたを首にしたくてわざとやってるんですよ。

  • forに拘る意味もわからない 原始時代じゃないんだからforeachの方が読みやすいでしょ

    • foreachは連想配列を含むから 連想配列は実装がデータに対して、多様にある場合がforに比べて多い そのため主題に対して例外が多いため、あくまでも、議論には不適切というだけ

      • 連想配列ゆうてforeachで回すのがintからint*になるだけで内部的な処理かてi++がi+4 になるだけやからそれだけだと等価っぽくない?

  • これに対して、forのほうが良いケースというのは、多数言えるが さすがにそれは、有料の知識とおもうから、せやな。 とみんないう 結果論ネットではforeach主流となって フリーソフトは...

  • これに対して、forのほうが良いケースというのは、多数言えるが さすがにそれは、有料の知識とおもうから、せやな。 とみんないう 結果論ネットではforeach主流となって フリーソフトは...

  • 悪いか悪くないかで言うなら、増田『も』悪いと思うけれど、人格否定のようなレベルで怒られるような物でもないと思う。 もし、そのレベルの非難されるとしたら、『会社規定を守ら...

    • 思うことはたくさんあるし 会社の言っていることが効率悪いなと思うこともあるけど おっしゃるとおり これが、職人 アホ実装にみえても、それが、他のパーツとあわさって、驚くよう...

  • forとかforeachとか全然関係なくて、そういう会社は本番環境でバグ出したら犯人探ししてガン詰めしてそれで終わりな会社なんだからそんなところにいたって未来ない、さっさと辞めて次...

  • アセンブリレベルではgotoなのだから直接使うほうが速い gotoを使いこなせずfor文のような余計な処理を使うのはプログラマの能力が低い https://anond.hatelabo.jp/20210125095954

    • アセンブリならジャンプだろ素人

    • 終了条件ないやんけ1ループで構成されるプログラムの話なんか? ああん?

      • ifで分岐してgoto(jmp)先変えるんやろ

        • 多分それ原理的にforやforeachよりも遅いぞ

          • 詳しく教えて 「原理的に」ってところが気になる

            • ・if自体の処理が入る ・ifに入れる判定に使うレジスタに入れる処理が入る ので良くてforと同等、悪けりゃそれ未満ってこった。 forの場合インクリメント用のレジスタや終端判定用のレ...

              • forの場合インクリメント用のレジスタや終端判定用のレジスタはもう固定されてる ???

                • 2個台数がある計算式のXだけが空でYにある数字は固定なのと毎回計算式でXYの数字を持ってくるのとどっちが楽って話やで。

                  • 脳内の話じゃないなら、コンパイル結果の違いで説明してくれ

                    • ワイの脳内ニモニックで説明すると ・for for 初期化処理 終了条件 インクリメント が↓に翻訳されて for計算機の回数レジスタに初期値をセットするお ( for内部の処理 ) for計算機...

      • GOTO見て「ループじゃねーぞ!」ってのはかなりスキル的に低過ぎでヤバいぞ

    • パイプラインがフラッシュされるから遅い

    • アセンブリレベルではgotoなのだから なんてことを言ってるのは30年くらい古い。 今どきの最適化コンパイラが処理すれば、ループ構造であることが構文上はっきりしてるforの方が、構...

  • 新入社員数十人で三か月ぐらい研修受けた。初級シスアド的な座学と、VBとC言語の研修。 なんか薄黄色いサーバー? みたいなやつにみんなで接続してプログラミングする授業だっ...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん