This is not the only thing to mention.
Beside = as assignment in modern languages you can see the zoo of operators likeWhen in Pascal those operators present in a single form:This is a plus of language that you can't combine boolean and bit operations. It protects from potential bugs.
Well actually the C operators are better designed and the pascal ones, because C has the distinction between the bitwise operations | and & and the short circuit boolean operations || and &&
This has many advantages. First the boolean versions || and && always return a valid book (I.e. 0 or 1) and never any bitops that can give very weird results.
Second you can explicitly target short circuit and full evaluation within code without having to use weird compiler switches. How many times I had to write
{$Push}
{$B+}
If ... Then
{$Pop}
Is really annoying and in C I can just express this as part of the expression.
But more importantly, they have different operator precedence. The bool versions || and && have a low priority, making it easy to chain comparisons
if (a==42 && b>=3.14) ...
And the bitops have a high priority which makes bitmaps and bitops easy:
if (bmp & 1 == 0 || b>=3.14)
In pascal you only have one operator with high precendece for both, so you must write
if (bmp and 1 = 1) or (b>=3.14) then
In pascal you always need to add brackets around each comparison because and and or have auch a high priority.
And btw. even Pascal developers agreed with this. In the extended pascal ISO standard NRW operators and_then and or_else have been introduced in addition to and and or to make short circuit evaluation part of the language explicitly.
Personally I like the python approach most, they use & and | for bitwise and "and" and "or" for short circuit bools