ヨーダ記法
ヨーダ記法の批判者は、可読性の欠如が上記の利点を上回っていると考えている。比較式の左辺に、本来の主語である変数が出現する順序のほうが、コードを自然言語に置き換えて読むときに理解しやすくなるからである。また、比較式の両辺のうち、少なくとも片方が再代入不可能な定数である場合はエラー捕捉の効果を発揮するが、ともに再代入可能な変数である場合は意味をなさない。
PythonやKotlin、Swiftなどいくつかの後発プログラミング言語では、=による代入が式ではなく文であったり、あるいは代入演算子=が値を返さないようにしていたりすることで、条件式中の代入を許容しない設計になっており、そういった言語を用いる場合はこの種の不具合を作りこむことがそもそも不可能になる。そのため、わざわざヨーダ記法を用いる理由はどこにもない。
またC/C++のように潜在的に問題を抱えた言語であっても、多くのコンパイラはif (myNumber = 42)のようなコードに対して、記述ミスのおそれがあるとして警告を表示する。ただし、コンパイラ警告は無視することも可能であるため、不注意なプログラマーは警告に気づかずミスを犯すかもしれない。警告をエラーとして扱うように設定して無視させないように構成することもできるが、コードの書き方によっては警告を出さなくなるコンパイラもある。そのようなコードであっても問題を検出できるようにするために、静的コード解析ツールが併用されることもある。
SEI CERT C Coding Standardではかつて「EXP21-C. Place constants on the left of equality comparisons」という項目をレコメンデーション(推奨事項)としていたが、独立した項目としては2014年に削除され、EXP45-Cなどにおける限定的な解決策のひとつとして例示されるだけとなっている。
ヨーダ記法(ヨーダきほう、Yoda notation)またはヨーダ条件式(ヨーダじょうけんしき、Yoda conditions)とは、プログラミングにおけるジャーゴンのひとつで、If文などの条件式において比較するふたつの要素を一般的な順序と逆に記述するプログラミングスタイルをいう。ヨーダ記法では条件式の左辺(比較演算子の左オペランド)に定数を配置する。
映画『スター・ウォーズ』シリーズの登場人物・ヨーダが、標準的ではない英語の文法で話すことに由来する。
ヨーダ記法はWordPressやSymfonyのPHPコーディング標準の一部に採用されている。一方、CakePHPのコーディング規約では、ヨーダ記法は避けるべきとされている。