¿Mal? Mira, son simplemente diferentes.
if
Es una declaración. (test ? a : b)
es una expresion. No son lo mismo.
Existen expresiones para expresar valores. Existen declaraciones para realizar acciones. Las expresiones pueden aparecer dentro de las declaraciones, pero no al revés. Por lo tanto, puede usar expresiones ternarias dentro de otras expresiones, como para términos en una suma, o para argumentos de un método, y así sucesivamente. No tiene que hacerlo , pero puede hacerlo si lo desea . No hay nada de malo en eso. Algunas personas pueden decir que eso es malo, pero esa es su opinión.
Un valor de una expresión ternaria es que le permite manejar casos verdaderos y falsos. if
las declaraciones no lo hacen.
Si le preocupa la legibilidad, puede formatearlos de manera legible.
De alguna manera, el "mal" se introdujo en el vocabulario de programación. Me encantaría saber quién lo dejó caer por primera vez. (En realidad, tengo un sospechoso: está en el MIT). Preferiría que tuviéramos razones objetivas para los juicios de valor en este campo, no solo el gusto de las personas y los insultos.