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 | | | h...@hjp.at | 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