だから「○○なコードは『意味がないから』禁止されている」というのはナンセンスというか因果が逆で、「特定のプログラミング言語において○○なコードは『意味が割り当てられなかった』」という説明になるべきなのよね、本来は。
人間が言語を設計するときに「意味を割り当てなかった」理由として、不自然だからとかややこしいからとか、そういう人間サイドの思惑がある。
たとえば 0 + "12" が 12 になろうが "012" になろうが "12" になろうが "0" になろうが 1 になろうが、そこに一貫した理屈を与えることはできる。
問題の本質は「人々が直感で想像する結果が共通であるか」ではなく、「特定のコードについて特定の挙動が自動的に導けるか」であって、それこそがプログラミング言語がセマンティクスを必要とする理由なので
あと、動的型付け環境のみで育っちゃった人って
https://mstdn.nere9.help/@orange_in_space/102812065502482968
これ理解してない人わりと多そう><