これを迷信集に入れるべきかどうか迷ったのですが、口にこそ出さないものの、実際にこのように信じているとしか考えられないプログラマが少なからず存在することは事実です。彼らは、あたかもブロークンな英語のように、正しい文法で書こうという意思をまったく働かせることなく、デタラメなコードを書きます。そして、その背景には、「きっとコンパイラが気持ちを察してくれるに違いない」という期待が心のどこかにあるようです。
当たり前のことですが、コンパイラは単なるソフトウェアに過ぎません。できることはといえば、プログラム言語の仕様にしたがって、ソースコードを機械的に翻訳することだけです。そうしたコンパイラには、曖昧で複数の意味にとれるコードを見ただけで、それを書いたプログラマの人となりを考慮して判断することなどはできません。言葉足らずのコードを見ただけで、それを書いたプログラマが今抱えている問題を察して処理を補完してくれることもありません。
コンパイラがプログラマの気持ちを察することができるとすれば、せいぜい、エラーメッセージや警告メッセージを生成するときに、「統計上よくある失敗例に該当するのではないですか?」とアドバイスしてくれる程度なのです。
AIが発達した昨今、このような誤解はさらに増えるかもしれませんね。

![[迷信] getsは単純にfgetsに置き換えられる](https://www.kijineko.co.jp/wp-content/uploads/2021/06/5063693_s.jpg)
![[迷信] 一重引用符の中には一文字しか書けない](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4842077_s.jpg)
![[迷信] absは常に非負の値を返す](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4500264_s.jpg)
![[迷信] オブジェクトの動的生成に失敗するとメモリリークする](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4673249_s.jpg)
![[迷信] ソースファイルの末尾に}](https://www.kijineko.co.jp/wp-content/uploads/2021/06/1420367_s.jpg)
![[迷信] setjmpマクロの返却値は変数に代入できる](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4225767_s.jpg)