learnpython.org - an online interactive Python tutorial

Roy Smith roy at panix.com
Fri Apr 22 09:22:33 EDT 2011


In article <iorui3$a9g$1 at speranza.aioe.org>, Mel <mwilson at the-wire.com> 
wrote:

> > Strings should auto-type-promote to numbers if appropriate.
> 
> "Appropriate" is the problem.  This is why Perl needs two completely 
> different kinds of comparison -- one that works as though its operands are 
> numbers, and one that works as though they're strings.  Surprises to the 
> programmer who picks the wrong one.

Ugh, tell me about it.

The project I'm currently working on used to use PHP (which has the same 
auto-promotion semantics as Perl) as the front end to a SQL database.  
The PHP code gleefully turned strings into numbers and back again all 
over the place, but it all got cleaned up at the database interface 
since SQL has strict typing.

We converted the back end database to MongoDB, which does not have 
strict typing.  We're still cleaning up the mess of inconsistent data 
(i.e. string vs integer) that creeps into the database through various 
paths.  Not to mention 0 vs. '' vs null vs false.

Implicit type conversion can be convenient.  But, then again, so can 
removing the safety guards from a chain saw.



More information about the Python-list mailing list