けどどうやら大丈夫っぽい。いや、本当久々に死ぬかと思った。
何というか、やっぱプログラミング言語における「意味が通じる」が「処理系が通す」だと思ってる節があるな。んなわけねえだろ、ヴォケ!
まず最初に、処理系が通さないコードってのは自然言語でいうと「sbjだえrhvふぁえるkhy34895uうぇhrふぃtrhjぎおjふぃlj」みたいなわけのわからん文字列と同じだということを認識する必要がある。つまり、正常な構文解析が出来ない文字列だ。これはまあ極端な例で、実際には「てにをは」の間違いとか誤字脱字だろうな。勿論人間は多少ルーズな書き方のされた文章でも適当に解釈できるが、まあプログラミング言語の処理系はその閾値が激烈に高いとでも思えばいい。
次にエラーのあるコードだが、これは「わたしは嘘しかつきません」のような、ナンセンスな文章と同じ。構文解析には成功しても、その内容に踏み込むとおかしくなる。これまた人間は適当に解釈して意味を取るが、まあコンピュータは基本的に字面のまま受け取るものだ。とりあえず、ここまでが明らかに間違ったコード。
そして次ぎに動きはするけど意味不明なコードなのだけど、これはつまり「回りくどかったり」「同じ事を何度も書いたり」「不自然に長ったらしかったり」「意味もなく難しい言葉を使ったり」「中身の無いたとえ話をしたり」、そういったアホな文章と同じだ。これらを実際のアホなコードにあてはめると
という感じになるかなあ。処理系の通さないコードはエラーが無くなるまで書き直せば済むし、エラーのあるコードもそれがバグってるということはわかるので直されることだろう。が、意味不明なコードは必ずしも直されるとは限らない。そして直すプロセスが機能する保証もない。もしも未熟な集団でペアプログラミング、コードレビューなどがなされると、間違いに誰も気がつかない、あるいはいったんそういうプロセスを経てしまったせいでダメなコードに自信を持ってしまうかもしれない (これは最悪のケースかもしれないな)。