OT - Bizarre PHP problem/bug
Andrew McNabb
amcnabb at mcnabbs.org
Sat Nov 27 09:29:18 MST 2010
On Mon, Nov 22, 2010 at 05:56:09PM -0700, Tod Hansmann wrote:
> Not "broken" just one of the many cases that duck typing has to handle
> some way or another, and however it handles it will not work in all
> cases. You have the same cases in any loosely typed language.
I'm with Michael on this one. I have come across many hard-to-debug
problems caused by PHP and Perl being far too loose when interpreting
strings as numbers. Automatically interpreting strings as numbers would
violate at least 3 principles from the Zen of Python (a duck typed but
strongly typed language):
Explicit is better than implicit.
Errors should never pass silently.
In the face of ambiguity, refuse the temptation to guess.
> Granted, in this particular case we think it should behave
> differently, but if it did, that would break different cases, or be
> slower, or whatever tradeoff they weren't willing to make.
Of course, as you suggest, there is a good argument that Python is wrong
in this case, too:
(On the statement print "42 monkeys"+"1 snake") BTW, both Perl and
Python get this wrong. Perl gives 43 and Python gives "42 monkeys1
snake", when the answer is clearly "41 monkeys and 1 fat snake".
- Jim Fulton, 10 Aug 1999
Fun stuff. :)
--
Andrew McNabb
http://www.mcnabbs.org/andrew/
PGP Fingerprint: 8A17 B57C 6879 1863 DE55 8012 AB4D 6098 8826 6868
More information about the PLUG
mailing list