On 2018-05-16 01:26:38 +0100, bartc wrote: > On 15/05/2018 21:21, Peter J. Holzer wrote: > > I have been programming in C since the mid-80's and in Perl since the > > mid-90's (both languages allow assignment expressions). I accumulated my > > fair share of bugs in that time, but AFAIR I made this particular error > > very rarely (I cannot confidently claim that I never made it). Clearly > > it is not “a total bug magnet” in my experience. There are much bigger > > problems in C and Perl (and Python, too). But of course my experience is > > All those languages use = for assignment and == for equality. > > If like me you normally use a language where = means equality (and := is > used for assignment), then you're going to get it wrong more frequently when > using C or Python (I don't use Perl).
Absolutely. These days I program mostly in Python and Perl and find that
I often omit semicolons in Perl. If I was programming in Pascal and C I
probably would mix up “:=”, “=” and “==”. But I don't. All the programming
languages I have used regularly (C, Perl, Java, JavaScript, Python) use
the same operators for assignment and comparison. So my fingers know what
to type.
(I wonder whether the notion that “=” and “==” are easy to mix up stems
from the early days of C when C was an outlier (most other languages at
the time used “=” for equality). Now C is mainstream and it's those other
languages that seem odd.)
> You might get it wrong anyway because = is used for equality in the real
> world too.
Not after a few years of programming. Probably not even after a few
weeks of programming. You develop muscle memory quite quickly.
hp
--
_ | Peter J. Holzer | we build much bigger, better disasters now
|_|_) | | because we have much more sophisticated
| | | [email protected] | management tools.
__/ | http://www.hjp.at/ | -- Ross Anderson <https://www.edge.org/>
signature.asc
Description: PGP signature
-- https://mail.python.org/mailman/listinfo/python-list
