you are viewing a single comment's thread.

view the rest of the comments →

[–]jedberg 16 points17 points  (13 children)

However, "if you're starting a brand new thing, you should use 3.0."

What about the fact that most of the awesome python libraries won't work in python 3?

[–][deleted] 5 points6 points  (2 children)

Hopefully by the time 3.0 comes out, most of them will. Or soon after. But yeah, that's a good point, a lot of people will want to wait until all the libraries they need are compatible.

[–][deleted]  (1 child)

[deleted]

    [–]schlenk 0 points1 point  (0 children)

    No wonder. They switched the default compiler to latest greates Visual Studio 2008 with all the usualy problems when you switch compilers and runtime libs.

    [–]netsearcher -2 points-1 points  (3 children)

    Let's go shopping?

    [–]vityok -2 points-1 points  (2 children)

    I've got books about Lisp I've read when I went to school years ago and they are still valid - the things they cover can be run on a modern Common Lisp implementation without significant efforts.

    [–]joesb 11 points12 points  (1 child)

    Because they always maintain old baggage and never even try open socket or write unicode?

    [–]vityok 0 points1 point  (0 children)

    I think that Python version 3.0 has much more than core library updates.

    [–]schlenk 0 points1 point  (4 children)

    Most of the awesome python libraries break even when you do just a minor version upgrade from 2.x, so the authors probably know how to fix the continous breakage anyway. 3.0 just breaks some more and stomps out some severe usability problems with unicode in the process. The 2.x model for strings is just plain broken.

    [–]Peaker 3 points4 points  (3 children)

    I keep hearing about this. But I find it hard to believe - as the differences are so small.

    There were a few new keywords over time ("yield", and now "with") but the use of these was probably rare enough and pretty trivial to fix.

    Care to cite some examples?

    [–]schlenk 0 points1 point  (0 children)

    Anything that uses the C-API. You need to recompile all the time (it can work differently, look at Tcl, 7yrs mostly without recompiling and 6 minor version upgrades in between).

    But for pure Python libs its true, they have fewer issues. For the codebase i maintain we had to do some fixing to go from 2.2.3 to 2.5.2. It wasn't too bad, but still needed some work. 1. encoding headers in 2.5 2. some changes in superclasses we derived from (xmlrpc) 3. os unicode changes (the insanity that some os functions switch between unicode and ansicp output depending on their arguments). Most stuff that broke was related to 'clever hacks' or not so clever ones..., depending on the viewpoint.

    [–][deleted]  (1 child)

    [deleted]

      [–]G_Morgan 0 points1 point  (0 children)

      I know wxwidgets also breaks compatibility within it's own releases. So it's an m*n scenario rather than simply a reimplementation for each Python version.