It’s harder to write because users will want to use expressions with more than one operator such as
b * b - 4 * a * c
a * b + c * d > e * f and g < hIt’s harder to write because users will want to use expressions with more than one operator such as
b * b - 4 * a * c
a * b + c * d > e * f and g < hHowever, the following expressions should be invalid in any language, and no one should write them even in languages where they are unfortunately allowed:
a + b >> c & d && 0 % 9
a >> 4 ? b : c & d ^ 7Note that I view ? as a language construct rather than an operator. If for whatever reason someone insisted on including that in the strict left to right requirement the second example still works and is easy to read. I just don't like those semantics as much because the parenthesis in something like a ? ( b >> c ) : d are otherwise unnecessary. The implicit parenthesis of expr ? expr : expr seems preferable to me.
And for ?:, only the part between the ? and the : is implicitly paranthesized. In "a && b ? c : d || e", you need operator precedence to decide if this is "a && (b ? c : d) || e" or "(a && b)? c : (d || e)" or any other combination. So you have to define the precedence of ? and : in relation to other operators in order to define the syntax of your language, so I think it's normal to consider it an operator as well (and I'd say the same for Python's if/else conditional expression, "a if b else c", this is not about the characters used).