Beginner needs advice

Steven D'Aprano steve+comp.lang.python at pearwood.info
Sun May 29 10:09:46 EDT 2011


On Sat, 28 May 2011 21:02:47 -0500, harrismh777 wrote:

>     Minor, yes, .... until you need to make something work--- only to be
> frustrated to find that a detail that was not expected has risen to bite
> a sensitive place...   :)

Just like when migrating from Python 2.3 to 2.6. And 1.5 and 2.0, and 2.0 
and 2.2, and 2.2 and 2.3.


>     I am amazed at how many folks are not using 3.x/  Why?  (beats me),

Because:

(1) the major operating systems either don't provide Python at all
    (Windows), or are conservatively still using Python 2.6 or even 
    2.5 (Mac OS, most Linux distros); 

(2) the Python website still recommends that "Python 2.x is the 
    status quo, Python 3.x is the shiny new thing" 

    <http://wiki.python.org/moin/Python2orPython3> ; 

and

(3) the most of the big frameworks and libraries have either just
    recently been upgraded to support 3.x, or haven't yet been 
    upgraded.


There's very little mystery about it. Migration to 3.x is going according 
to plan. The majority aren't expected to migrate until probably 3.4 or 
even 3.5.


> but how do I know they're not using it...?   Because, if they were
> trying to use it with 2.x knowledge they would be complaining bloody
> murder..   for instance, how do we reload a module in 2.x...  with, um,
> reload.   This has always been the way... every book says so,

*Every* book? Even these?

http://diveintopython3.org/
http://www.qtrac.eu/py3book.html
http://www.mindviewinc.com/Books/Python3Patterns/Index.php


Please quote chapter and verse.



[...]
> PS   Something nobody has pointed out yet is that "completely
> incompatible" is redundant.

That's because it is not redundant. There is a difference between 1% 
compatible and 99% compatible and 100% incompatible.


>  ... its like saying totally destroyed. I
> was trying to be funny, but nobody unpinned it... I'm disappointed.
> 
> Some of the posts here are referring to the two languages as partially
> incompatible....   reminds me of that line from Princess Bride... "...
> he's not dead, hes only mostly dead!... and mostly dead is partly
> alive!"  To say that 3.x is partly compatible with 2.x is silly, 

What a ridiculous statement, and one which flies in the face of major 
projects like numpy which support 2.x and 3.x out of a single code base.


I invite you to consider the difference between a legally dead person 
moments before being resuscitated by a paramedic, versus a chicken that 
has just been beheaded and is still running around the yard, versus a 
million-year-old fossilized bone that has turned to stone. Who could 
possibly justify saying that all three are equally dead?

Beware the tyranny of the discontinuous mind.

http://www.sciencemusings.com/2007/07/tyranny-of-discontinuous-mind.html

Both life and compatibility are matters of degree, not binary states. For 
proper operation, an electrical device might require a 6V 250mA 
transformer, but it might work well enough with one that provides just 5V 
and 240mA, provided you don't stress the device too much.

We often design our physical devices to force compatibility to be all-or-
nothing, e.g. you can't fit a USB plug into an audio jack, no matter how 
you try. But that's enforced by the design, not because compatibility is 
inherently true/false. Compatibility is inherently continuous, a matter 
of degree.

This is especially true when it comes to languages, both natural and 
programming. British English and American English are perhaps 99.5% 
compatible, but "table a motion" means completely opposite things in 
British and American English. (In Britain, it means to deal with it 
immediately; in the USA, it means to postpone it.) Should we conclude 
from this that British and American English are "different languages" and 
"completely incompatible"?

The differences between Python 2 and 3 are less than those between 
American and British English. To describe them as "different languages", 
as if going from Python 2 to 3 was like translating English to Italian, 
is absurd.



-- 
Steven



More information about the Python-list mailing list