"yes/no" - the number of characters is less.
"true/false" (and true / false) is more consistent with other programming languages.
In terms of performance, they are all related to CF. Until you try to use them in conditional logic, they magically change to other data types, such as java.lang.Boolean. Converting strings and Boolean elements and vice versa is very fast. This is what CF does most of the time. It will be difficult for you to find any reliable tests proving one faster than the other.
For convenience and readability of the code, it is best to stick with one or the other.
Some legacy CF tag features specifically require yes / no. They simply will not work with true / false. I believe this is not the case in CF9 +.
Do not rely on ColdFusion documentation, accurate or current. Almost all methods that list yes / no as default / allowed values actually support any boolean value. "yes / no", "true / false", true / false, 1/0, etc.
IMHO, using yes / no for booleans, crazy. Backward compatible with the old CF5 era. It sucks that Adobe is still using it to output java Booleans.
eg. writeDump( var: (not true) ); gives you NO. But I wanted false ?! Hmm
You can specify which java class your variable represents by calling myVar.getClass().getName() . You can use it to watch CF transfer your data from Boolean to String and return to Boolean again, for example magic.
source share