Slashdot Mirror


Python 3.2 Released

digitalderbs writes "Python 3.2 was released on Feb 20th 2011 with many new improvements. New features include many useful updates to the unittest module, a stable ABI for extensions, pyc repository directories, improvements to the email and ssl modules and many others. This also marks the first release in the 3000-series that is no longer backported to the 2.0-series."

164 comments

  1. Another great Python 3.x series release by Anonymous Coward · · Score: 4, Insightful

    That no one will use because there is no compelling reason to port all that cool stuff developed for the 2.x series.

    1. Re:Another great Python 3.x series release by MetalliQaZ · · Score: 3, Informative

      You don't even have to click through to the article...you can find this right in the summary:

      "This also marks the first release in the 3000-series that is no longer backported to the 2.0-series."

      Python 3.x has grown up and moved out of the house, so to speak. As the language develops, 2.x will be left behind and all your favorite packages will be ported to the new language using one of the excellent automated conversion "helpers" such as 2to3. Twisted, Django, PIL, etc will eventually concentrate on 3.x, and the community will be healthier overall, having been able to shed the stuff that didn't quite make sense with Python.

      So stop complaining, sheesh!

      -d

      --
      "Here Lies Philip J. Fry, named for his uncle, to carry on his spirit"
    2. Re:Another great Python 3.x series release by maxume · · Score: 2

      The goal of Python 3 was never to have everyone using it in 2012, it was to have a nicer Python language available at some point a little further into the future. For things like the str->unicode conversion, a big break is one of the better ways to transition.

      And lots of people are unhappy that things didn't get painted their favorite color, but the process used, where people willing to do the work to make changes were the ones that made changes, was fairly democratic.

      --
      Nerd rage is the funniest rage.
    3. Re:Another great Python 3.x series release by Anonymous Coward · · Score: 0

      Yep. 2.x is'nt dead! 3.x may improve python, there are still so many apps that has not been ported :/

    4. Re:Another great Python 3.x series release by Anrego · · Score: 4, Insightful

      This is my biggest complaint with python (I have others, I'll admit I have little love for python). This is not the way to develop a language.

      I'll admit I've never developed a programming language, but I have worked on large, long term libraries, and I think the same principle applies. All those stupid design decisions and approaches that are now obsolete and make no sense.. you have to make them still work anyway. You can spew lots of warnings.. but to me breaking backwards compatibility in a _programming language_ is sloppy and completely unacceptable.

    5. Re:Another great Python 3.x series release by bjourne · · Score: 5, Insightful

      That's exactly what Python did and does, where appropriate. Where it isn't, such as the changed meaning of string literals (they are all unicode now) or the division operator, the breakage is hard. There is no way around that if you want to modernize the language. C# did it too, Java did not. Which is why generics in Java are half-assed and why there are a lot of quirks in the language that traces their roots back to version 1.1 or earlier.

    6. Re:Another great Python 3.x series release by luis_a_espinal · · Score: 1

      That no one will use because there is no compelling reason to port all that cool stuff developed for the 2.x series.

      Yeah, because everything that needed to be developed has already been done so under the 2.x series. No one will ever need or think to develop something new on the 3.x series. That's why all we have is COBOL because nothing new has ever been needed after all those apps were written with it, oh wait, never mind.

    7. Re:Another great Python 3.x series release by luis_a_espinal · · Score: 4, Insightful

      This is my biggest complaint with python (I have others, I'll admit I have little love for python). This is not the way to develop a language.

      I'll admit I've never developed a programming language, but I have worked on large, long term libraries, and I think the same principle applies. All those stupid design decisions and approaches that are now obsolete and make no sense.. you have to make them still work anyway. You can spew lots of warnings.. but to me breaking backwards compatibility in a _programming language_ is sloppy and completely unacceptable.

      Well, you don't have to migrate to Python 3.x. There are a lot of Java 1.2 code out there that will never be migrated, code that sooner or later will not run as intended with new JVMs and JDKs. Code written in COBOL still runs and will never be re-writen (not in our lifetimes).

      If it works for you on the 2.x series, most likely it will work fine in years to come. Coming from a Java world, I can tell you I wish the JCP had done the same with many Java crap. Hashtables and vectors should have been deprecated long ago; the '+=' operator in Strings should also have been deprecated; we should have created a damned new collections library so that we could have true generics without type erasure; the JVM should have implemented support for tail recursion; and we should have gotten rid of this one-class-def-per-class-file non-sense.

      True, it would have broken a lot of stuff, but only for those that want/need to migrate - many do not. But it would have been a way to get things right and undo a lot of past design wrongs. At some point, it is time to cut backwards compatibility. For those who can't go to the 3.x series, they should simply stay with the 2.x series and work as usual.

    8. Re:Another great Python 3.x series release by return+42 · · Score: 1

      Well, it's free software. If enough people don't want to move to Python 3, they can always fork their own project from 2.7. GvR and his followers, however, have decided to focus their efforts on Python 3, leaving the Python 2 cruft behind, and I don't think they're going to change their minds at this point.

    9. Re:Another great Python 3.x series release by Anrego · · Score: 1

      should have gotten rid of this one-class-def-per-class-file non-sense.

      I'm actually a fan of this! I do it in my c++ coding as well.

      If a class is specialized enough to only really be useful to one class.. it can be defined as part of that class, but I generally avoid that for all but the most trivial stuff (specialized action listeners that need to take parameters being my most common reason for this).

    10. Re:Another great Python 3.x series release by arth1 · · Score: 1

      Unfortunately, converting isn't always an option, like with packages that auto-update or write python code, not to mention those that depend on a 1:1 character/string length (i.e. assumes iso-8859-1 or similar).
      So the reality is that if you want to use 3.x, you'll quite likely have a system with both 2.x and 3.x, with python defaulting to 2.x

      I.e. much the same situation as with java, where you quickly end up with a whole boatload of incompatible virtual machines, one for each app you run.

      And this is one of the reasons why I try to avoid both python and java.

    11. Re:Another great Python 3.x series release by Chapter80 · · Score: 0

      I think you are way off on this complaint.

      There is NO breaking of backwards compatibility in the Python 2 Language.
      And there is NO breaking of backwards compatibility in the Python 3 Language.

      If it helps you wrap your pea brain around it, think of it as two separate languages with a lot of similarities: one with a future, built on a lot of learnings, that has been modernized. And one that will run forever as is, unchanged, working like a champ, but with little future development in it.

    12. Re:Another great Python 3.x series release by maxume · · Score: 1

      If they had named it Bathiola, would you be complaining that the made it too similar to Python?

      If Python 3 is a success in 2015 and Python 2 is largely dead, it will provide some amount of evidence that backwards compatibility does not need to be inviolate.

      --
      Nerd rage is the funniest rage.
    13. Re:Another great Python 3.x series release by Anrego · · Score: 2

      Java did not

      Probably one of the reasons it's so popular in the "serious business"[tm] crowd. I write something in Java, I know it's gonna work in 5 years without me needing to keep some legacy version of the JVM around. Stuff can be gradually migrated over to the replacements for deprecated functionality, without essentially having to fix everything before being able to migrate. See portage and many others for issues associated with the python approach.

    14. Re:Another great Python 3.x series release by Desler · · Score: 1

      I write something in Java, I know it's gonna work in 5 years without me needing to keep some legacy version of the JVM around.

      There are plenty of examples of apps written in Java to break in forth coming versions without any need for the underlying JVM to change. So basically what you claim you don't need to do, many people DO have to do.

    15. Re:Another great Python 3.x series release by Anrego · · Score: 2

      That's exactly the approach my little "pea brain" was complaining about. Developing anything in streams forces people to pick one... or in most cases keep both of them around (which is usually a huge pain and involves all manner of hacks.. see using python 3 on gentoo).

    16. Re:Another great Python 3.x series release by Desler · · Score: 1

      and we should have gotten rid of this one-class-def-per-class-file non-sense.

      Why? Doing this is almost always a sign of poor design and is usually equivalent to the god code C/C++ source files that are a major pain in the ass to work with. Sure, sometimes the line can be a bit blurry, but is it really THAT hard to split things into distinct pieces? To not be able to do so reeks of either laziness or someone poorly designing their software.

    17. Re:Another great Python 3.x series release by Sloppy · · Score: 2

      I feel the pain, but if they had called the language by a new name, wouldn't that nullify the objection? Ruby isn't compatible with Python 2.x libraries either, but no one flames it for that, any more than they blame Python 2 for not being able to run awk scripts. If you can't break compatibility, then nobody can do anything new.

      Think of Python3 as a new (though not particularly ground-breaking) language which happens to be very Python2-like, rather than as an update to Python. If you look at it that way, Python 3 is totally forgivable. Is it the right way to look at it? That depends. But it's sure the most useful way to look at the situation, and I think there's something to be said for that causing it to become the correct viewpoint.

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    18. Re:Another great Python 3.x series release by rubycodez · · Score: 1

      Code written in COBOL still runs and will never be re-writen (not in our lifetimes).

      not true at all, I've re-architected major COBOL systems (and their ISAM / VSAM databases) several times in my career, to SQL DBMS with J2EE and scripting languages.

    19. Re:Another great Python 3.x series release by costas · · Score: 2

      Why not? isn't a programming language a big library of sorts anyway? should you keep supporting every bad design decision for ever and ever?

      Python has been extremely conservative about both introducing and deprecating features (the __future__ import is genius). Python 3 had to stay within the rational side of the Perl-6 line, and I believe they pulled it off.

    20. Re:Another great Python 3.x series release by Gandalf_the_Beardy · · Score: 1

      Imagine if when developing the jet engine, Whittle had to make it backwards compatible with the piston engine. You know - it still needed to use the same fuel, it still only had the same bearings specifications, same exhaust temperatures, couldn't use different lube oil, and so forth... Yes it's a pain but if you want to advance sometimes you have to toss something that has reached the end of it's life and take a large jump forwards. Python 2 will probably go for a lot longer, just like prop-engines do now, but most people have switched to jet for a good reason.

    21. Re:Another great Python 3.x series release by SpinyNorman · · Score: 1

      So consider Python 2.0 as a legacy language then, and Python 3.0 as a new one.

      It'd be nice if all library, language developers had super-human powers of future-prediction, but guess what... they don't. When designing a piece of software, there's only so far you can accurately predict potential future requirements and design to accommodate those. At some point your requirements change beyond the scope of what you were able to anticipate and you've got two choices:

      1) Hack the new features in - thereby dooming the software to end-of-life ugliness and eventual replacement by something more suited to the now current requirements, OR

      2) Refactor/redesign to reflect the new requirements and as much of the future you can predict from this new position. Maybe you can do this while keeping backwards compatability, and maybe you can't. If you can't keep backwards compatibility while keeping the (refactored, reconsidered) design clean, then you're back at case 1 - a hack.

    22. Re:Another great Python 3.x series release by Anonymous Coward · · Score: 0

      You obviously weren't around when they renamed various libraries and broke everything. Typical newb!

    23. Re:Another great Python 3.x series release by Anonymous Coward · · Score: 1

      "Whole boatload"? The latest Python 2.x is fully backwards-compatible with all 2.x releases. The same will be true of Python3. Two interpreters (well, four, if your distro ships something older than you need in each category) is hardly a "boatload".

      Anyhow, I've been working with Ruby lately, and Python looks like a saint by comparison. I have software that only works with 1.8.6, software that only works with 1.8.7, and software that only works with 1.9 -- and all three of these are within the same major release. ${DEITY} forbid that 2.0 come out...

      (Posting AC on account of OpenID authentication going away. *sigh*)

    24. Re:Another great Python 3.x series release by JackieBrown · · Score: 1

      At work, I currently need Jinitiator 1.3.1_02, 1.3.1.28, and 1.3.1.29 in order for all my work related java applications to work properly. I tried just using the new one and most of my apps won't even launch.

    25. Re:Another great Python 3.x series release by jabjoe · · Score: 2

      EXACTLY. If the Python devs leave 2.x too long and keep saying 3.x only, they will find someone will just fork 2.x and continue it. In free software you only get to make the rules while the community thinks they are good, or it's "fork you!" and the community goes elsewhere.

      To me, all the supporting both 2.x and 3.x looks really messy, and why support 3.x if no one else does? Python 3 doesn't seam to be making any progress is taking over and I think it is because it's 2.x with the critical mass. In things as sprawling as languages backward compatibility is really really important. C++ was so successful because it piggy backed on C. Backwards compatibility means why not take it, you start with what you already have.

    26. Re:Another great Python 3.x series release by Anonymous Coward · · Score: 0

      Well, you don't have to migrate to Python 3.x.

      So in other words, hope that you can find a compatible version years down the road that you can give to your clients.

    27. Re:Another great Python 3.x series release by GooberToo · · Score: 1

      That's the classic red herring argument.

      In five or ten years from now, the python VM of the particular python on which you've built your application is extremely likely to still function and at worst can be compiled. Furthermore, python specifically allows for multiple concurrent python installations. Furthermore, by in large, python is forward compatible between major releases. So the hand waving you're doing is just that...not an issue in the least.

      It may surprising many people who think along the same lines as you, but just because python 3.2 has been released doesn't suddenly mean python 2.5, 2.6, or 2.7 has disappeared from the face of the earth. Nor does it mean releases in the 2.x series are suddenly unsupported. Furthermore, python 2.7 specifically exists to creating a VM for migrations. It allows you to play with some of 3.x's features while maintaining 2.x compatibility. This means if staying at or nearly at current python VM development, an easy (or at least a much easier) migration path exists.

      Lastly, lets not forget that compatibility is not broken on a daily basis. Which means, if you want compatibility with 2.x you're going to stay on 2.x. If 3.x features are important to you, a minor port is likely. And that completely ignores that automated tools have been created which performs much if not most of the work for you. Plus, once you're o 3.x, chances are extremely high compatibility won't be an issue throughout the 3.x series.

      So really, there isn't the least bit validity to you complaint - despite it being a common misconception.

    28. Re:Another great Python 3.x series release by dkleinsc · · Score: 5, Insightful

      Counterargument A: The stupid design decisions and approaches that are now obsolete and make no sense should be forced out of code. Otherwise, the Bad and Wrong version persists a lot longer than it should: some mediocre developer will Google how to solve a Python problem, get something that explains the Bad and Wrong version, puts it into their code, may get a bunch of deprecation warnings, but figures "hey it works, good enough". And if you need an example of how badly out of hand that can get, look at PHP, which still has to support really really stupid things from PHP2 or so because of backwards-compatability, and thus leaving behind a legacy of horrific PHP code.

      Counterargument B: Ensuring backwards-compatibility always forever and ever ensures that the language complexity can only grow, never shrink. And thus you grow and grow and grow until eventually the language cannot even be completely defined using BNF or anything similar. Case in point: C++.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    29. Re:Another great Python 3.x series release by firewrought · · Score: 1

      and we should have gotten rid of this one-class-def-per-class-file non-sense.

      Why? Doing this is almost always a sign of poor design

      You may fear that this leads novice developers to a god-class scenario, but my experience was just the opposite: when I moved from Java (which features the one-class-per-file-restriction) to C# (which doesn't), I ended up being more aggressive in describing real world concepts via classes instead of trying to cram little pieces of data or functionality into look-aside collections and flow logic. The overhead of file management, while small, adds a touch of bureaucracy to creating a class. In turn, this make classes seem big and ponderous whereas the real world wants them to be small and lightweight... the mental resistance to creating a new class should not be that much greater than the mental resistance to creating a new method.

      Less subjectively, I'd say that there are several places where the one-(public)-class-per-file restriction becomes rather onerous. Example and test code, for instance, benefits from being able to define multiple small classes in the same file without the overhead of file management. Similarly, auto-generated code is best delivered in a single physical unit that is easily segregated and managed separately from one's real code. I think it also makes sense for a group of small, related classes, such as hierarchy of exceptions or token classes in a compiler. Finally, (for the subjective reasons mentioned previously), I think it benefits the scenario where you have to design one large class with a small number of support classes, although it may be a good idea to split these classes across files once their design is stable.

      --
      -1, Too Many Layers Of Abstraction
    30. Re:Another great Python 3.x series release by GooberToo · · Score: 0

      So in other words, hope that you can find a compatible version years down the road that you can give to your clients.

      Yes, its known as downloading and/or compiling. Dumbass.

      If this were commercially driven software you *might* have an inkling of a legitimate point. But since this is community software where the source snapshots, the entire development source tree, and binaries for a variety of platforms, is available to all, such comments are flat out stupid.

      Oh no! I might have trouble obtaining what is readily available from any computer with an Internet connection. Oh no!

    31. Re:Another great Python 3.x series release by tepples · · Score: 1

      In five or ten years from now, the python VM of the particular python on which you've built your application is extremely likely to still function and at worst can be compiled.

      But good luck finding a hosting provider that offers a particular version of Python without having to pay an order of magnitude more to rent your own dedicated server.

    32. Re:Another great Python 3.x series release by GooberToo · · Score: 1

      Yes, $10.00/month is horribly expensive and common and is becoming more and more common every day.

      You do realize its trivially easy to find hosting which allows you to install your own languages?

      Python does not require root access to install. Not to mention, python's virtualenv makes installing, configuring, and carrying your custom python environment and dependencies to other hosts trivial.

    33. Re:Another great Python 3.x series release by maxume · · Score: 1

      Order of magnitude? What's your price point for managed hosting? A cheap VM on something like Slicehost is $20 a month, and the situations where a managed server works and that doesn't are pretty limited.

      Nevermind that lots of hosts won't pay much attention if you want to roll your own binaries.

      --
      Nerd rage is the funniest rage.
    34. Re:Another great Python 3.x series release by JackieBrown · · Score: 2

      EXACTLY. If the Python devs leave 2.x too long and keep saying 3.x only, they will find someone will just fork 2.x and continue it. In free software you only get to make the rules while the community thinks they are good, or it's "fork you!" and the community goes elsewhere.

      This was the arguement against KDE 4. It took some time, but I am glad that the KDE group went in the direction they did.

      Also, if python 2.x is their past, I doubt they care if it gets forked. If it breaks compatibly with the version they finished, then it is self defeating. If it doesn't, then it doesn't affect them other than someone else will be responsible for any bug/security fixes

    35. Re:Another great Python 3.x series release by luis_a_espinal · · Score: 1

      should have gotten rid of this one-class-def-per-class-file non-sense.

      I'm actually a fan of this! I do it in my c++ coding as well.

      If a class is specialized enough to only really be useful to one class.. it can be defined as part of that class, but I generally avoid that for all but the most trivial stuff (specialized action listeners that need to take parameters being my most common reason for this).

      I'm sorry but you don't seem to know what I'm talking about.

      I'm not talking about Java source code (where you can have multiple classes defined in one .java file). I'm talking about the output of the compiler, which generates one .class file (bytecode) per class definition, and the JVM inability to operate otherwise. This has serious implications at runtime when it comes to allocating permanent VM memory and can put the brakes on people designing programs with JVM-based functional languages.

    36. Re:Another great Python 3.x series release by luis_a_espinal · · Score: 1

      and we should have gotten rid of this one-class-def-per-class-file non-sense.

      Why? Doing this is almost always a sign of poor design and is usually equivalent to the god code C/C++ source files that are a major pain in the ass to work with. Sure, sometimes the line can be a bit blurry, but is it really THAT hard to split things into distinct pieces? To not be able to do so reeks of either laziness or someone poorly designing their software.

      Jesus Christ, et tu? What the hell is wrong with you people?

      I did not say one-class-per-java-source-code-file. I said one-class-per-class-file. Here, I highlighted the part for you.

      I'm not talking about Java source code for * sakes. I'm not talking about the number of classes within one single java source file (and btw, you can have multiple classes defined in one .java file). I'm talking about the output of the compiler, which generates one .class file (bytecode) per class definition, and the JVM inability to operate otherwise. This has serious implications at runtime when it comes to allocating permanent VM memory and can put the brakes on people designing programs with JVM-based functional languages. There is a reason why the Dalvik's platform does not have this constrain. Forcing one class definition per compiled bytecode .class file is one thing that we should cut the f* off the JVM independently of whether that is backwards compatible or not.

      Not to deviate from the Python-oriented topic of this discussion, but this is a good example of when it is a good time to break backwards compatibility (which is what is being discussed.)

    37. Re:Another great Python 3.x series release by luis_a_espinal · · Score: 1

      Code written in COBOL still runs and will never be re-writen (not in our lifetimes). not true at all, I've re-architected major COBOL systems (and their ISAM / VSAM databases) several times in my career, to SQL DBMS with J2EE and scripting languages.

      Reading comprehension dude. I didn't say all existing COBOL code, I simply said Code written in COBOL as in "the general case" or as in "on average" (which is the only way to properly interpret such a sentence.) Yes, you can make a living porting COBOL code to other platforms, yes, it does occur. And yes, it can still occur against the backdrop of the obscenely immense COBOL code base that won't be rewritten anytime soon (if ever.) Your statement - while true - does not contradict the later.

    38. Re:Another great Python 3.x series release by smellotron · · Score: 1

      Physical manufacturing can't be compared fairly. Every widget created has a cost, which reduces the relative cost of designing a new type of widget (and gets amortized over time). With software, the cost of designing a new type of widget (porting software across OSes or language revisions) is pretty much the entire thing.

      Plus, your analogy is off. Comparing jet and piston engines is akin to comparing different programming languages, not different versions of a programming language. The Python folks decided to make their version so incompatible that some people in this thread are arguing that they should be treated as different languages entirely. That's like a piston engine manufacturer upgrading its piston engine production in a way that requires new parts, fuels, etc. and still calling it a piston engine. It's bound to confuse and upset the expectations of some consumers and suppliers.

    39. Re:Another great Python 3.x series release by smellotron · · Score: 1

      2) Refactor/redesign to reflect the new requirements and as much of the future you can predict from this new position. Maybe you can do this while keeping backwards compatability, and maybe you can't.

      If you can't keep backwards compatibility, then you're not actually refactoring. In the context of this discussion, the changes being discussed are most definitely not refactoring. Please don't dilute the term, or it'll have less power when we need to argue it to our managers.

    40. Re:Another great Python 3.x series release by amorsen · · Score: 2

      I write something in Java, I know it's gonna work in 5 years

      More like you write something in Java, and it breaks with equal probability in an update from 1.6.0.0 to 1.6.0.1 as in an update from 1.6 to 1.7... At least that is my experience as a user of Java Applets.

      Server-side this does not matter much because few people upgrade Java anyway.

      --
      Finally! A year of moderation! Ready for 2019?
    41. Re:Another great Python 3.x series release by Anonymous Coward · · Score: 0

      He means ALL COBOL code will never be re-writen in our lifetimes.

    42. Re:Another great Python 3.x series release by Mitchell314 · · Score: 1

      Yes, $10.00/month is horribly expensive and common and is becoming more and more common every day.

      Dude, some of us live in a cardboard box. The $0.99 rent is bad enough. The bundled free internet package is kind of nice . . . although sometimes it would be nicer to go a bit faster than 110 baud.

      --
      I read TFA and all I got was this lousy cookie
    43. Re:Another great Python 3.x series release by tepples · · Score: 1

      When I investigated it, Go Daddy was offering shared hosting for $4 per month and a VM for $40 per month. And once we started actually using the VM, we found that the Java-based Turbo Panel software was eating half our allotment of RAM. Is Slicehost that much better than Go Daddy?

    44. Re:Another great Python 3.x series release by sjames · · Score: 1

      If you like, consider it 2 languages, Python2.x and Python3.x that bear a remarkable resemblance to each other. Python has bent over backwards to avoid problems with the transition. 3.0 and 3.1 features got backported and 2.7 is going to be maintained long term while development continues in 3.x only. It's not like all your Python apps will break tomorrow when you are forced to remove your 2.7 system and install 3.2. I imagine it will be quite common to have 2.7 and 3.x installed together for a while to come.

    45. Re:Another great Python 3.x series release by tdelaney · · Score: 3, Informative

      Guido has stated quite publically that anyone is welcome to fork any version of Python - this exact topic has been discussed many times on python-dev (the mailing list for development of Python). Of course, it's up to them to maintain and popularise the fork.

      What they don't get to do is call it Python. "Python" is a trademark of the Python Software Foundation when the term is used to refer to a programming language.

      The fork could be called a "Python-like" language, or even claim to be "Python-compatible"*.

      * for some level of "compatible".

    46. Re:Another great Python 3.x series release by HiThere · · Score: 1

      Why would a fork of Python 2.x be expected to be more compatible with what you want than Python3? If you aren't satisfied by Python2.6 or Python2.7, then you obviously want some different features. And what makes you believe that whoever forks it will want the same features with the same syntax that you do?

      For me the primary argument that Python3 is the way to go is unicode. Using unicode strings in Python2.x is a pain. It can be done, and I'm currently doing it, because when I started this project the Python3 version of YAML wasn't working. I eventually rewrote it to not use YAML, because I wanted in intermediate form that was portable across languages. So if I started this over I'd do it in Python3. (But I'm not going to, because it's essentially finished. Currently I'm just tweaking it and adding bug fixes, and the occasional extra feature that seems reasonable to me. Now I'm mainly massaging the data.)

      I'm certainly not pleased with everything about Python3, but I wasn't pleased with everything about Python2, either. They're pretty much the same, but I think Python3 is a bit nicer. (OTOH, the Python2 documentation seems a bit better. Or maybe I'm just more used to it.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    47. Re:Another great Python 3.x series release by maxume · · Score: 1

      Go Daddy? And you say this choice was based on some sort of investigation?

      FWIW, I have no idea about Slicehost, but you were making claims about bargain hosting, so I didn't have any qualms about tossing out a name that may or may not be shitty.

      --
      Nerd rage is the funniest rage.
    48. Re:Another great Python 3.x series release by nschubach · · Score: 1

      I'm sorry, but I fail to see how the compiler separating the byte-code for a class into a separate file has a tremendous affect on memory. How is that any different than the compiler taking that class and appending it to another class file? All the files are located in what basically amounts to a zip file so whether the VM has to look at a different virtual file or a different byte location in that file, it makes no difference.

      I can't see how having the class in a separate file makes an ounce of difference...

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    49. Re:Another great Python 3.x series release by thetoadwarrior · · Score: 1

      Except for the fact the previously mentioned C# is increasingly growing in popularity as is Python. I'm sure corporations that think IE6 is still a good browser don't mind a language never growing but the rest of the world likes their languages to evolve and grow.

    50. Re:Another great Python 3.x series release by thetoadwarrior · · Score: 1

      With the likes of Linode if you can't afford a VPS then you're are total small timer and certainly not a corporation which means porting to 3x shouldn't be an issue.

    51. Re:Another great Python 3.x series release by DiegoBravo · · Score: 1

      Yes that kind of problem is very real and annoying. But in the Java case is mostly an implementation problem, not the result of a conscious decision to break everything. Also, IMO that issue was less frequent in recent years, at least with the mayor JVM implementations.

    52. Re:Another great Python 3.x series release by Anonymous Coward · · Score: 0

      has a tremendous affect on memory

      "effect".

  2. News for nerds? by Anonymous Coward · · Score: 5, Funny

    Come on, guys. How does this help us keep up to date on political events, popular music, or funny videos?

    1. Re:News for nerds? by Anonymous Coward · · Score: 0

      Hurrrrr

    2. Re:News for nerds? by kangsterizer · · Score: 2

      #!/usr/bin/python3
      import urllib2

      stuff = ['news.google.com', 'grooveshark.com', 'youtube.com/failblog']

      for i in stuff:
          print urllib2.urlopen(i).read()

      Thats how!

    3. Re:News for nerds? by blai · · Score: 5, Funny

      print requires brackets now.

      --
      In soviet Russia, God creates you!
    4. Re:News for nerds? by kangsterizer · · Score: 1

      oh crap lol.

    5. Re:News for nerds? by Anonymous Coward · · Score: 0

      And urllib2 is now just urllib, I believe.

    6. Re:News for nerds? by GooberToo · · Score: 3, Funny

      # This works with any python installation rather than only the system installation.
      # Using explicit path to system's python install is bad practice. Requiring a source change to run your application with a different VM is silly. Now we need only change our path.
      #!/usr/bin/env python3
      import urllib

      stuff = ['news.google.com', 'grooveshark.com', 'youtube.com/failblog']

      for i in stuff:
              print( urllib.urlopen(i).read() )

    7. Re:News for nerds? by Anonymous Coward · · Score: 0

      And yet the syntactically significant whitespace remains. There ain't no justice.

    8. Re:News for nerds? by kangsterizer · · Score: 2

      if you wanna be a smart ass, then don't write it wrong!

      the file must start with the interpreter - otherwise it won't even run.

      #!/usr/bin/env python3
      # This works with any python installation rather than only the system installation.
      # Using explicit path to system's python install is bad practice. Requiring a source change to run your application with a different VM is silly. Now we need only change our path.
      #/!\ if your OS doesn't have python as system package, i don't want you to use my script anyway. I want you to change OS. But since i'm nice i'll leave env /!\

      import urllib

      stuff = ['news.google.com', 'grooveshark.com', 'youtube.com/failblog']

      for i in stuff:
                      print( urllib.urlopen(i).read() )

      print("BUT ANYWAY. I did not release this leet code under an open source license and you've stolen my IP. Calling lawyers right now.")
      print("noob.")
      print("i hate brackets.")
      print("seriously")

    9. Re:News for nerds? by Anonymous Coward · · Score: 0

      Lol...if you going to attempt to correct people, you should at least be correct. In this case you are embarassingly wrong. Lol.

    10. Re:News for nerds? by Anonymous Coward · · Score: 0

      if you're going to be AC answering people you should at least reply to the correct post! AH!

    11. Re:News for nerds? by PastaLover · · Score: 1

      # This works with any python installation rather than only the system installation.
      # Using explicit path to system's python install is bad practice. Requiring a source change to run your application with a different VM is silly. Now we need only change our path.

      It's not "bad practice". Sometimes having the chosen VM depend on what your path happens to be set to is a bad idea, which is why a lot of the scripts in distros have the path hardcoded.

    12. Re:News for nerds? by GooberToo · · Score: 1

      Its extremely bad practice. If someone wants to execute a script under an alternate VM, requiring script changes is dumb. Furthermore, it breaks compatibility with tools like virtenv. Besides, if someone has changed their path such that a different VM is found, chances are far, far more likely, that's exactly what they want. Lastly, if you require a specific VM, then you should specify via VM version preference (python2.6 vs python vs python3 version python3.2.

      Seriously, it begs the question, why would someone take the time to install an alternate VM, place it in their path first, and not want it to be the preferred VM. Its extremely unlikely the hard coded and poorly conceived notion of one VM to rule them all is ever correct. Its like arguing when someone changes their path, they didn't really mean to change their path.

      Besides, I can't tell you how many times I've worked with perl coders who dimly use hard coded path. It was funny watching them change fifty scripts via sudo to force the proper VM when all I had to do was change the path - and no special privileges were required. Ultimately, the perl guys wound up creating yet another script which existed simply to change the other scripts.

      Simply put, assuming everyone in the world is stupid and that a static line, which frequently requires elevated privileges to change is a better option is extremely poorly convinced. Even worse, to work around such idiocy, all too often people resort to making a copy of the script in question, plus a path change, so as to allow them to change that one line which now means you've doubled the support headache and primed the "update didn't actually fix the bug" syndrome, much to your surprise.

      Bluntly, there is almost nothing sane in forcing a hard coded path. And the only exception I can perceive is if the script requires running as root - and then its maybe.

    13. Re:News for nerds? by PastaLover · · Score: 1

      When you're packaging for a distro, you're working in a fixed environment (you set it that way through dependencies). Debian (python) policy is to always hardcode the path to the interpreter so you know you're using the one you're depending on. When a user actually does put a broken or newer/older version of python in their path, it otherwise tends to break in interesting ways. This is a bit lazy on the developer's part perhaps, but you don't really want to be dealing with bug reports about bugs that don't really exist and are the result of some misconfiguration on the client's side. The more you can minimize that, the better. It really isn't as insane as you make it out to be, it seems you just target a different environment.

      You almost always want a specific VM anyway. No 2.6 script except the most trivial will work with 3.x. I haven't used virtualenv extensively but I thought you could just have it spawn the VM, instead of letting the shell decide.

      And your perl programmers really need a better deployment process.

    14. Re:News for nerds? by GooberToo · · Score: 1

      When you're packaging for a distro

      That's an extremely tiny minority of developers. And, unless the functionality is core to the distribution's functionality, then its a really dumb idea. Its safe to say, scripts written soley to benefit a distribution represent a tiny minority of scripts/applications written in the world. For the 98% of the rest of us, its a really stupid idea.

      It really isn't as insane as you make it out to be

      I gave you a real world, non fictional example. It really is all that I made it out to be. And its obviously so. This is, in fact, why python developers are taught to use /usr/bin/env python as their magic line - because its smart, flexible, and most importantly, not broken from day one. That's doesn't mean all python developers do the right thing. Some don't understand the implications. Some blindly follow the herd because they're simply doing what they've been told without knowing any better and lack experience.

      And your perl programmers really need a better deployment process.

      I agree. My statement wasn't intended to persecute perl developers. My statements targeted them because, by in large, they suffer from the broken mentality which is the origin of our exchanges. My point is, unless you have highly specialized requirements, distribution centric or suid, etc., use of a static magic line is patently dumb. Its needlessly inflexible and almost never what is desired or intended by end users. Its like arguing your favorite applications should be able to be run from /usr/local/bin - or your home directory. Its a pointless inflexibility for the vast majority of applications.

      Bluntly, if an application is installed by the distribution, but is not part of the distribution, and they are using static magic lines in their scripts, they are absolutely doing it wrong.

      When a user actually does put a broken or newer/older version of python in their path

      Think about what you just said. Its nonsensical. The developer downloads and installs a python, places it in their path ahead of the system's installation, and are mad as an application because they didn't finish the installation? Doesn't happen. Your example actually validates my point. Which is, if someone goes through all that, they in fact mean for the application to run under that VM and not the system one. Again, this is a problem because the developer suffers from the, "I'm smarter than God syndrome", which almost universally means they're dumber than dirt.

      There are lots of really stupid things programmers do. Worse, there are lots of really stupid things which are forced on them during the teaching/learning process, which should immediately place someone on the firing line. Thoughtless, static magic lines are one of them.

  3. Is the GIL removed from the interpreter by JonySuede · · Score: 2, Informative

    Is the GIL removed from the interpreter ?

    --
    Jehovah be praised, Oracle was not selected
    1. Re:Is the GIL removed from the interpreter by maxume · · Score: 1

      No.

      --
      Nerd rage is the funniest rage.
    2. Re:Is the GIL removed from the interpreter by lysdexia · · Score: 0

      Yes! Python now rides atop an erlang/mach core that, to quote Guido VanRossum "feels like floating on a cloud of titties". It also now has a CickinInABiscuit module that imports a savory cracker right into your interpreter! (Did I mention the interpreter now has sharper ">"'s and is fully compatible with STFU?

    3. Re:Is the GIL removed from the interpreter by Anonymous Coward · · Score: 1

      The GIL isn't, but some of the issues brought up by that talk were fixed somewhere along the 3.x line

    4. Re:Is the GIL removed from the interpreter by JonySuede · · Score: 0

      ha, at least a nice reply. You are not a butt-hurt loud mouth like one of the above poster.
      Thank yuo

      --
      Jehovah be praised, Oracle was not selected
    5. Re:Is the GIL removed from the interpreter by Anonymous Coward · · Score: 0

      erlang doesn't have problems with global locks. None of that space instead of brackets shit either.

    6. Re:Is the GIL removed from the interpreter by greg1104 · · Score: 3, Informative

      Yes, it would be great if an update to this were covered in the article, like if they put notes on changes to the GIL right here or something.

    7. Re:Is the GIL removed from the interpreter by lysdexia · · Score: 1

      ha, at least a nice reply. You are not a butt-hurt loud mouth like one of the above poster. Thank yuo

      Oh, you wanted an answer. Honestly, it never crossed my mind that you were doing anything but trolling about a difficult problem lots of smart folks are dilligently working on that have been discussed for years.

      My apologies, I thought this was yet another insouciant probe along the lines of "Oh, is Perl object-orented?" or "Gosh, do people use OpenBSD?". Sorry to prompt that wounded tone from you there.

      Oh, and for reference, your (indirect) response requires "neckbeard" or a veiled reference to the autism spectrum to be canon. Just as mine requires a "My fault for feeding the trolls"

    8. Re:Is the GIL removed from the interpreter by Anonymous Coward · · Score: 0

      Inkhorn.

    9. Re:Is the GIL removed from the interpreter by lysdexia · · Score: 1

      Sorry, was trying to make a point about apples and oranges, not heap stink on Erlang (a language I found to be just beautiful after a week or so of deep unlearning). :-)

    10. Re:Is the GIL removed from the interpreter by JonySuede · · Score: 1

      thank you

      --
      Jehovah be praised, Oracle was not selected
    11. Re:Is the GIL removed from the interpreter by JonySuede · · Score: 1

      , your (indirect) response requires "neckbeard" or a veiled reference to the autism spectrum to be canon

      I got both, so no offence taken !

      --
      Jehovah be praised, Oracle was not selected
    12. Re:Is the GIL removed from the interpreter by greg1104 · · Score: 1

      It is unfortunate your post has not been moderated upward to where it deserves to be, "+5 titties".

    13. Re:Is the GIL removed from the interpreter by Anonymous Coward · · Score: 0

      So, the answer is "No, they didn't actually do anything useful to the GIL", and the GIL is a big wart in python these days when a cheap laptop comes with 2 processors.

      There were a few other bad design decisions in python 3, like the extreme emphasis on generators. Generators! One of the main arguments for generators is that they let you save memory. Sheesh! That's such a 1980s idea. I remember PDP-11s with 64k, and now that I have 4 gig, I need to save memory? That would be OK (but useless) if it had no side effects, but unfortunately generators break the idea of Duck typing. The trouble is that a generator behaves almost like a list, except that it will silently give you a different answer sometimes. For instance:

      def foo(x):
              for i in x:
                      do_something(i)
              for i in x:
                      do_whatever(i)

      That function behaves dramatically differently if you pass it a list or a generator, but no exceptions are raised. The whole beauty of Python was the idea of Duck typing, that if you pass the wrong type into a function, sooner or later, python will complain and make your mistake obvious.

    14. Re:Is the GIL removed from the interpreter by Anonymous Coward · · Score: 0

      You don't have autism. You're just socially inept.

    15. Re:Is the GIL removed from the interpreter by greg1104 · · Score: 1

      The whole beauty of Python was the idea of Duck typing, that if you pass the wrong type into a function, sooner or later, python will complain and make your mistake obvious.

      Usually later, after the program has been deployed when it works on all expected data. Then it can trip a type exception and crash the first time it runs into something unexpected, which is always fun for the user. Duck typing had enough perils because of that, so the fact that there is are even more things postponed to runtime checks that can work unexpectedly is not a happy thing. Thanks for pointing this issue out.

      I feel like Python 3.0 is suffering from some serious Second-system effect issues. All I keep finding when I consider migrating some work toward it is stuff that is more complicated and prone to breaking in new ways, without any compelling improvements that make that worth the trouble.

    16. Re:Is the GIL removed from the interpreter by tdelaney · · Score: 2

      The for loop has been defined in terms of iterators and iterables since Python 2.2.

      Generators are simply a way to easily create iterators.

      Iterators may save memory (especially for ulta-huge datasets). They may also save time (loading that ultra-huge dataset into memory all at once might make your program pause for 10 minutes - not a good user experience).

    17. Re:Is the GIL removed from the interpreter by Anonymous Coward · · Score: 0

      They made a lot of improvements to the GIL to make threads usable for a lot of scenarios. One of the major things is that it avoids the weird cases where using more than one core is slower than using only one.

    18. Re:Is the GIL removed from the interpreter by maxume · · Score: 1

      Generators have been in the language since 2.3 or 2.4 (they were first supported in 2.2 but required activation there). Changing the standard library to return generators instead of lists basically guarantees that a user will trip over the problem outlined by GP, but naive use of a function like that is just as much a problem in the later 2.x releases.

      --
      Nerd rage is the funniest rage.
    19. Re:Is the GIL removed from the interpreter by spitzak · · Score: 2

      It is not the memory saving that is important for generators. It is the time. Allocating memory for a list, adding a reference to every item to that list and thus incrementing reference counts on every item, and later decrementing all those references and freeing the list, all take a LOT of time. This can be incredibly wasteful, especially if the loop finds the object of interest very soon and quits before even examining all the remaining items.

      This is a huge deal and Python does get it right.

    20. Re:Is the GIL removed from the interpreter by PastaLover · · Score: 1

      It's definitely useful when working with large data sets. I've used them extensively parsing a couple tens of gigs worth of files (larger than main memory on any box I have access to). They're not necessary, of course, but I'd argue they are if you don't want to be writing python as if it were C.

  4. Goodbye, Python 2 by ArcRiley · · Score: 2, Interesting

    I don't know of a major Python library that isn't upgrading to Py3 - and this release marks the tipping point where we wave goodbye to the aging 2.x codebase.

    PEP-3003, the moratorium to changes to the language to allow alternative Python implementations to catch up, only applies up to the 3.2 series so we're going to continue moving forward from here. Nobody's forcing Python 2 users to upgrade their code, but there's many advantages and ever decreases hurdles to doing so.

    Don't fear change, this change is good and necessary for the advancement of the language.

    1. Re:Goodbye, Python 2 by sourcerror · · Score: 1

      Panda 3d?

    2. Re:Goodbye, Python 2 by Permutation+Citizen · · Score: 1

      PIL

    3. Re:Goodbye, Python 2 by GooberToo · · Score: 1

      They also recently created a PEP which formalizes gateway interfaces for byte and unicode support which means all of the larger python web frameworks are finally lifting anchor and heading toward 3.x waters.

      In the next few years, we'll definitely see a huge uptake in the 3.x series.

      Really the question is, how much with pypy be able to absorb from the current cpython 2.x community and when will it take on a 3.x persona.

    4. Re:Goodbye, Python 2 by GooberToo · · Score: 1

      I don't know its status, but at best panda is a niche package.

      Besides, as things finally reach critical mass with the python 3.x series, as is just now starting to happen, its momentum will naturally pick up other packages along the way. The feature set in the 3.x series is already become very attractive, over that of the 2.x series. Its gravitational pull from new features is only going to build over time.

  5. Anti-Gravity by Rik+Sweeney · · Score: 2, Funny

    Have they added Anti-Gravity yet?

    1. Re:Anti-Gravity by ArcRiley · · Score: 3, Informative

      Yep, "import antigravity" is an easter egg. It also contains geohash code, but the core functionality of the module demonstrates how easy Python is;

      import webbrowser
      webbrowser.open("http://xkcd.com/353/")

      Works with every major web browser, no muss, no fuss.

    2. Re:Anti-Gravity by Anonymous Coward · · Score: 0

      Waaauunnnggghhh! Say no MORE!

    3. Re:Anti-Gravity by SheeEttin · · Score: 1

      No, but they have implemented the soul.

      (Though I just checked, and it seems they didn't.)

  6. Python? by Anonymous Coward · · Score: 0

    Python? People are still using that? Perl is the past, present and future.

    1. Re:Python? by rubycodez · · Score: 1

      hah, Perl 6 is stillborn and it isn't even done being pushed out of Larry's pussy yet.

    2. Re:Python? by Qzukk · · Score: 2

      But... but... I just bought a special unicode keyboard just so I could write code that could never be posted on slashdot!

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
  7. So that's why! by Anonymous Coward · · Score: 0

    You can spew lots of warnings.. but to me breaking backwards compatibility in a _programming language_ is sloppy and completely unacceptable.

    So that's there are so many goddamn programming languages with similar syntax!

    1. Re:So that's why! by Anonymous Coward · · Score: 1

      I think you just accidentally a word

  8. What the fuck are you talking about? by Anonymous Coward · · Score: 0

    The only libraries or frameworks that don't support Python 3 yet are those that are dead, and some web frameworks.

    Those web frameworks get a lot of hype on the web, but they represent an extremely small segment of the Python-using community. Like most things web-related, they're still far behind the times. Meanwhile, the rest of us have been happily using Python 3 since it was released a few years ago.

    1. Re:What the fuck are you talking about? by Anonymous Coward · · Score: 0

      The only libraries or frameworks that don't support Python 3 yet are those that are dead, and some web frameworks.

      Those web frameworks get a lot of hype on the web, but they represent an extremely small segment of the Python-using community. Like most things web-related, they're still far behind the times. Meanwhile, the rest of us have been happily using Python 3 since it was released a few years ago.

      the numpy,scipy,pylab combo has not been ported to python 3 yet.

    2. Re:What the fuck are you talking about? by Fnkmaster · · Score: 3, Informative

      I extensively use Numpy at work, and that was the primary reason Python 3 was useless to me. However, I should mention that as of Numpy 1.5 release some months ago, Python 3 is now supported. The FAQ page on the Numpy website just hasn't been updated properly.

      And Scipy 0.9.0 *does* support Python 3.1. It's currently at release candidate 5, i.e. within a few weeks of an official release. See the release notes from yesterday.

      PyLab, I'm not certain about. Matplotlib has an initial port but I think it's not really working yet.

      I think now that Numpy and Scipy are running on Python 3.x you'll see a lot more interest in people running it who do real stuff with Python.

    3. Re:What the fuck are you talking about? by Jane_Dozey · · Score: 1

      A lot of python 2 libs won't have too much trouble running under 3 without modifications.

      --
      Silly rabbit
    4. Re:What the fuck are you talking about? by HiThere · · Score: 1

      Sorry, but there are still lots of libraries that haven't been ported yet, or the ports that exist are unreasonably buggy.

      Sorry, if this offends you, but it's the truth.

      OTOH, why would you expect them to already have been ported? It's a process. And early versions often have lots of bugs. There's a lot more now than there were six months ago, there'll be more in another six months. And in a year Python3 will be the default environment. (Naturally, all times are rough estimates.)

      But I do wish that they included a simple B+Tree system that was Pythonic. Databases are all very well, but frequently I just want to deal with really large tables of data that should be stored in a file, but with random access. Databases aren't a good match. Even BSDDB isn't a good choice. I often want to use an integer key, and BSDDB converts it to a string, which isn't what I want. And I really don't want the overhead of SQL. I want to handle the logic in Python. (I don't even know if it's usually possible in SQL, but it might be a Turing complete language, so it might be possible. Just unreasonable.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  9. Unnecessary complexity by mangu · · Score: 2, Interesting

    I don't understand how this Py3k praising always gets such good moderation on /.

    Python 3 has left the original focus of the language as something simple and easy to use. All the changes are towards a MORE COMPLEX language, I see no change that makes it simpler to use, no change that requires less code than the former version.

    Py3k is moving in the direction of Java, where nothing can be done without typing a hundred lines of code. An example from the Python documentation:

    17.1.3.1. Replacing /bin/sh shell backquote
    output=`mycmd myarg`
    ==>
    output = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0]

    I cannot see how would anyone call this an "improvement"... Oh, sure, it gives me more options, more control, but if I had wanted to finely tune the innards of the program I would have used C++.

    1. Re:Unnecessary complexity by maxume · · Score: 2

      Removing backtick support actually makes the language simpler.

      (I realize that it does make simple shell access more complicated, by requiring that it be done with a library function (but removing syntax still simplifies the language))

      --
      Nerd rage is the funniest rage.
    2. Re:Unnecessary complexity by nneonneo · · Score: 4, Informative

      Python never had shell backquotes. The code snippet is highlighting one way that shell backquotes from other languages can be handled. (The "backquote" operator in Python 2.x is equivalent to "repr", e.g. `3+4` yields '7'; it is now gone in Py3K for obvious reasons).

      In Python 2.7 and 3.1, there's now a convenience function for capturing program output:

      subprocess.check_output('ls -l')

      I doubt your claim that Py3K has made things more complicated. If anything, it has made things simpler: less language "burrs" (e.g. / now does float division, eliminating the need to stick float() on one argument or use weird constructs like 1./3), a cleaner standard library ("io" is a great idea), and proper Unicode/8-bit distinction.

    3. Re:Unnecessary complexity by GooberToo · · Score: 2, Informative

      I don't understand how this Py3k praising always gets such good moderation on /.

      Well, that's because you just don't understand. Period.

      Python 3 has left the original focus of the language as something simple and easy to use. All the changes are towards a MORE COMPLEX language, I see no change that makes it simpler to use, no change that requires less code than the former version.

      That's a mouth full but only shows you not only don't understand, but haven't bothered to even look. In what way are things more complex? You mean by adding more language features with easier syntax (example, comprehensions), things are harder? You mean by creating more explicit and less confusing exception handling, things are harder? You mean by adding additional features to support threading concurrently things are harder? You mean by improving threading concurrency, things are harder? You mean by cleaning up, simplifying, and making consistent name spaces and packages, things are harder?

      Its pretty clear you're trolling and not made any effort whatsoever to actually learn whats in the 3.x series, let alone the 3.2 release.

    4. Re:Unnecessary complexity by smellotron · · Score: 1

      If anything, it has made things simpler: less language "burrs" (e.g. / now does float division...)

      That particular "burr" I think is something that divides people. While it does make certain generic functions simpler, it's arguably less intuitive for some large user-bases:

      • whole-number math (i.e. kids and certain branches of mathematics): 5/4 == 1 remainder 1, or 1 + 1/4.
      • programmers who have ever used integers before: 5/4 == 1 due to truncation. Also—and this is very important in a culture of abstractions—this is how hardware works.

      ...eliminating the need to stick float() on one argument...

      That was always wrong. IIRC the correct way to get generic floating-point division pre-Python3 is "x * 1.0 / y". It up-converts native integer types without down-converting complex or user-defined numeric types. Still ugly, but workable.

      So with Python3, one use-case was made simpler (remainder-free division: x*1.0/y) and the other use-case was made harder (integer division: x//y). It didn't make the language "simpler" as a whole.

    5. Re:Unnecessary complexity by mickwd · · Score: 1

      I don't understand how this Py3k praising always gets such good moderation on /.

      Perhaps what you don't understand is how anyone can have a point of view other than your own.

      I cannot see how would anyone call this an "improvement"... Oh, sure, it gives me more options, more control...

      And still you cannot see?

    6. Re:Unnecessary complexity by HiThere · · Score: 1

      The "io" class is, I think, a good idea. (I'm less certain about it than you are.) But it definitely makes using the language more complicated. Some of this is because the documentation needs more examples of usage, but not entirely. It actually *is* more complicated to use. It's still probably a good idea, and it's a lot better than the mess Java made of *its* IO systems.

      The thing is, actual use of features tends to be full of corner cases where the documentation doesn't clearly specify what happens. Or it does, if you properly understand it, but properly understanding it isn't trivial, with lots of reasonable misunderstandings. (This is one reason why points of documentation should be illustrated by code examples.)

      OTOH, Python documentation is so voluminous as it is, that I can understand why they didn't want to make it any larger. But the reason isn't good enough. (They do seem to have fixed the index so that references no usually actually go the the term being referenced.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    7. Re:Unnecessary complexity by beej · · Score: 1

      I see no change that makes it simpler to use, no change that requires less code than the former version.

      "I mean, if you've seen one change, you've seen 'em all."

      "And have you seen them all?"

      "Well, I've seen one. Well, a little one... a picture of a... I've heard about them."

      Unicode and binary data handling. That's enough for me, right there. The new command line parsing stuff is more concise than getopt. And it parses JSON, too.

      Not everyone is going to like every change, but declaring you've seen no change for the better out of the huge number of changes just means you haven't looked enough.

    8. Re:Unnecessary complexity by Anonymous Coward · · Score: 0

      That particular "burr" I think is something that divides people.

      I see what you did there.

  10. Back-Porting is Half-Baked by Frosty+Piss · · Score: 1

    This is my biggest complaint with python (I have others, I'll admit I have little love for python). This is not the way to develop a language.

    The problem with endless back-porting is that it stagnates any âoerevolutionaryâ development of the language. There are certain âoemilestonesâ where it makes sense to completely walk away from the old ways of doing something and move on. At a certain point, back-porting makes everything âoehalf-bakedâ.

    --
    If you want news from today, you have to come back tomorrow.
  11. Re:great. by Ginger+Unicorn · · Score: 2

    brings a different context to the the phrase "blow jobs"

    --
    (1.21 gigawatts) / (88 miles per hour) = 30 757 874 newtons
  12. A stable ABI is a "new feature?" by pclminion · · Score: 1

    How can a stable ABI be described as "new?" Hey guys, it's stable! And it has been stable for 24 hours!

    In other news, I quit smoking! I haven't had one since last night right before I went to bed.

    1. Re:A stable ABI is a "new feature?" by maxume · · Score: 1

      Stable across point releases. So C libraries compiled against the stable ABI should work with Python 3.2 or 3.3 or 3.4.

      At the moment, libraries need to be compiled for each point release of Python (so 2.4, 2.5, 2.6, 2.7, etc).

      --
      Nerd rage is the funniest rage.
    2. Re:A stable ABI is a "new feature?" by Anonymous Coward · · Score: 0

      Don't be a pedantic douche. They mention this as a promis to keep it stable. The summary just shortened it.

    3. Re:A stable ABI is a "new feature?" by Anonymous Coward · · Score: 0

      Some simple reading would answer your question very quickly:

      Step 1: Google "python stable abi"
      Step 2: Peruse the Abstract: "Currently, each feature release introduces a new name for the Python DLL on Windows, and may cause incompatibilities for extension modules on Unix. This PEP proposes to define a stable set of API functions which are guaranteed to be available for the lifetime of Python 3, and which will also remain binary-compatible across versions. Extension modules and applications embedding Python can work with different feature releases as long as they restrict themselves to this stable ABI."

      Damn some people are lazy.

  13. Python 3 packages by ArcRiley · · Score: 2

    PIL is working on Python 3; "The current free version is PIL 1.1.7. This release supports Python 1.5.2 and newer, including 2.5 and 2.6. A version for 3.X will be released later" (source). So is Django, Turbogears, wxpython, pygtk, etc. You can vote on which major 3rd party packages you'd like to see ported.

    PyQT, CherryPy, Genshi, and many others are already ported to Python 3.

  14. Shared web hosting by tepples · · Score: 1

    hope that you can find a compatible version years down the road that you can give to your clients.

    Yes, its known as downloading and/or compiling. Dumbass.

    Unless your clients are trying to use your product on shared hosting, where they don't have the privilege to compile their own software. A dedicated server would cost far more per month.

    1. Re:Shared web hosting by GooberToo · · Score: 1

      If only you had any clue whatsoever about the topic at hand - then you might have a legitimate point. Finding such shared hosts today is trivially easy and is becoming easier every day. And that's presumes one must compile, which is an extremely iffy assumption. Furthermore, installation does not require root privileges.

  15. And there is NO... by tepples · · Score: 1

    There is NO breaking of backwards compatibility in the Python 2 Language.
    And there is NO breaking of backwards compatibility in the Python 3 Language.

    And there is NO shared web host offering the Python 3 Language that I could find in a few minutes of Googling (e.g. python 3 shared web hosting).
    And there is NO easy way to keep both .py files in the Python 2 Language and .py files in the Python 3 Language associated with respective programs in the Windows Operating System on end users' computers, unlike *n?x which has #!/usr/bin/env python2.7.

    1. Re:And there is NO... by Anonymous Coward · · Score: 0

      You might want to try learning how to search. Looking for "python hosting" gave me plenty, including here which lists multiple.

      If you're looking for python hosting you'd also likely be looking for django hosting, of which there are many to choose from, and I'd bet that lots of these also provide general python 3 hosting as well.

      So, to sum up, there is LOTS of python 3 web hosting that I managed to find in under 3 minutes.

    2. Re:And there is NO... by tepples · · Score: 1

      Looking for "python hosting" gave me plenty

      I put python 3 web hosting into Google but couldn't quickly find anything relevant.

      including here which lists multiple. [...] I'd bet that lots of these also provide general python 3 hosting as well.

      Notice how all the hosts on this list still offer only 2.x.

      If you're looking for python hosting you'd also likely be looking for django hosting

      Is Django even ported to Python 3 yet?

    3. Re:And there is NO... by GooberToo · · Score: 1

      You're trolling. Period.

      Most any shared linux host is going to support the latest python - regardless of them stating it or not. Period. Furthermore, most who actually care about customer support are more than happy to install on request if you feel you MUST have a non-localized installation.

      At this point, the bogus hosting horse has been beat to death and every time you mention it, you're only further beating the other horse which clearly indicates you are an absolute idiot.

      Is your life really so completely without meaning and so completely empty that trolling is the only past time you have available? That's rhetorical. I honestly don't care; aside from the fact that myself and others have wasted time reading your trolling stupidity.

    4. Re:And there is NO... by PCM2 · · Score: 1

      And there is NO shared web host offering the Python 3 Language that I could find in a few minutes of Googling (e.g. python 3 shared web hosting).

      Just to give one concrete example to bury this whole line of argument, I have a couple sites on HostGator, one of the larger shared hosting providers around. I don't remember what I pay for them, but it's nothing... $10/month or less. HostGator granted me shell access for free; all they requested was a copy of my photo ID. Logging into my server just now, I can see that they have Python 2.4.3 and Python 2.7 installed. The default if I just type "python" is Python 2.4.3. There's also a symbolic link called "python2.6" that links to Python 2.7. A quick search of the customer support forums reveals that they will install Python 3 for you if you ask, but that they recommend you stick with 2.x for Web development because most of the popular modules and packages (Django, for instance) don't work properly yet with Python 3.

      Honestly, at this stage you are not going to have any trouble getting support for the version of Python you need on any reputable hosting provider.

      --
      Breakfast served all day!
  16. Bathiola by tepples · · Score: 1

    If they had named it Bathiola, would you be complaining that the made it too similar to Python?

    No. If Python 3 were called Bathiola, it wouldn't have had the .py extension, and the file manager would successfully choose to run double-clicked .py programs in Python and double-clicked .bath programs in Bathiola. And it'd be easier to separate out web hosts offering Bathiola from web hosts offering only Python (e.g. Google bathiola web hosting in this alternate universe).

    1. Re:Bathiola by maxume · · Score: 1

      The windows file extension thing is a little bit irritating, but I can't say I care that much about it. It is mostly a limitation of Windows that the Python developers chose not to work around (and it is easy to deal with for a few scripts running on one interpreter or the other, just creates shortcuts that explicitly launch the correct interpreter).

      As far as the hosting thing, I doubt a new name would help on your search to find a host supporting a new language, outside of PHP, they don't work very hard at keeping stuff current, especially bargain hosts.

      --
      Nerd rage is the funniest rage.
  17. Confusingly similar name by tepples · · Score: 1

    if they had called the language by a new name, wouldn't that nullify the objection?

    In fact it would; see my reply to maxume.

    Think of Python3 as a new (though not particularly ground-breaking) language which happens to be very Python2-like

    And which has a name confusingly similar to that of Python 2. And which uses the same file name extension as Python 2. And which takes web hosting services that currently offer Python 2 far longer to adopt. Many of the same arguments were tossed around when someone proposed calling the successor to Visual Basic 6 by the name Visual Fred.

    1. Re:Confusingly similar name by Korin43 · · Score: 1

      ... And which takes web hosting services that currently offer Python 2 far longer to adopt....

      Most components of Python-based websites still haven't been ported to Python3. It's not surprising that shared hosting providers don't offer something that doesn't exist.

    2. Re:Confusingly similar name by PCM2 · · Score: 3, Insightful

      And which has a name confusingly similar to that of Python 2. And which uses the same file name extension as Python 2. And which takes web hosting services that currently offer Python 2 far longer to adopt.

      Consider yourself lucky with Python, then. C code written for two entirely different machine architectures uses a similar (but inconsistent) syntax and the same file extensions; in fact, the same *.c files might not compile successfully using two different compilers on the same box. Really, you're holding Python to a standard that no other language has ever been able to meet.

      --
      Breakfast served all day!
  18. @cmdrtaco released his 3.2" python by Anonymous Coward · · Score: 0

    #smalldick

    1. Re:@cmdrtaco released his 3.2" python by Anonymous Coward · · Score: 0

      Don't you mean 3.2 mm python? 3.2 inches is at least an order of magnitude larger than taco's tiny dick.

  19. Re:Goodbye, Python 2 - NOT by Animats · · Score: 3, Insightful

    I don't know of a major Python library that isn't upgrading to Py3 - and this release marks the tipping point where we wave goodbye to the aging 2.x codebase.

    Ah, denial. Some major modules that aren't making the transition:

    • BeautifulSoup (HTML/XML parser - replaced by HTML5parser, which is much bigger and slower and has a completely different output tree.)
    • MySQLdb (MySQL database interface. The developer says it's too hard to convert it to Python 3.)
    • M2Crypto (interface to OpenSSL - replaced by new, incompatible SSL module.)
    • SGMLparser (Used by some other modules)
    • FeedParser (Reads RSS feeds. No replacement.)

    And those are just ones I happen to have used.

    Because the Python community is so tiny, there are major modules that are maintained by only one person. In many cases, they've moved on to other things, and no one is maintaining the modules. The major changes required to move to Python 3.x are non-trivial and aren't being done, because someone would have to take responsibility for a big module they didn't write to do the conversion. In some cases, there are newer, completely different modules with different APIs that perform the old functions. So end users have to do a major rewrite on production programs just to stay in the same place. It's a huge transition. Guido has this smoke-and-mirrors pitch claiming that it's "done". That's because the Python organization, such as it is, disclaims all responsibility for getting modules ported. So it's not his problem that it sucks.

    None of the non-CPython implementations are making the transition. Not IronPython (abandoned by Microsoft). Not Shed Skin (only one developer). Not PyPy (defunded by the European Union). Not even Google's own Unladen Swallow is moving to Python 2.6, (Google seems to have abandoned Unladen Swallow after discovering that Guido's insistence on excessively dynamic features meant a JIT compiler didn't speed it up much.) The transition to Python 3 has thus killed all other Python projects.

    CPython is a naive interpreter, roughly 60x slower than C. It's been stuck at that speed for a decade. And now, that's all we have left.

    If you're using Python for anything important, start working on your exit strategy.

  20. Side-by-side by tepples · · Score: 1

    So consider Python 2.0 as a legacy language then, and Python 3.0 as a new one.

    That'd be great if I could have both languages installed side-by-side on Windows, or on Ubuntu without having to compile from source, or on a shared hosting provider.

    1. Re:Side-by-side by tuffy · · Score: 1

      You can do that already, on Ubuntu at least. Python 2 and Python 3 are in different packages which can be installed simultaneously.

      --

      Ita erat quando hic adveni.

    2. Re:Side-by-side by tepples · · Score: 1

      You can do that already, on Ubuntu at least. Python 2 and Python 3 are in different packages which can be installed simultaneously.

      Not on Ubuntu 8.04, which my dedicated server provider uses. (It hasn't certified anything newer than that for use with its management software.) To get a newer Python version there (as python2.7 or python3.2 instead of python, which is reserved for the system's interpreter), I have to compile it myself, unless there's some PPA that I'm not aware of.

    3. Re:Side-by-side by PCM2 · · Score: 1

      Not on Ubuntu 8.04, which my dedicated server provider uses.

      Now you're just being silly. Is everything someone else's fault? Is there nothing you can do to overcome the seemingly insurmountable problems you have with Python 3? Ubuntu 8.04 was released in April 2008. Python 3.0 final was released in December 2008 -- one full release of Ubuntu later. Why you expect Canonical to provide ongoing new software releases for your legacy version of the OS is beyond me. If you must use 8.04, then by all means compile Python 3 your damn self. There is nothing stopping you except your need to bitch incessantly about this non-issue.

      --
      Breakfast served all day!
  21. Major problems still not fixed by walterbyrd · · Score: 0, Troll

    IMO: 3.x is a stupid "upgrade. "

    Many things were changed, that nobody wanted changed. Major problems, such as the white space issue are not fixed.

    3.x gave the core developers an opportunity, a mile wide, to fix python's worst design flaws. But they ignored those flaws, and did what they wanted to do, which serves no purpose.

    The core developers are designing a language for themselves, and nobody else.

    1. Re:Major problems still not fixed by soupbowl · · Score: 0

      IMO: 3.x is a stupid "upgrade. "

      Many things were changed, that nobody wanted changed. Major problems, such as the white space issue are not fixed.

      3.x gave the core developers an opportunity, a mile wide, to fix python's worst design flaws. But they ignored those flaws, and did what they wanted to do, which serves no purpose.

      The core developers are designing a language for themselves, and nobody else.

      Can you list some of these majors flaws? I am just curious.

    2. Re:Major problems still not fixed by Soul-Burn666 · · Score: 1

      What's the white space issue?
      If you mean the fact it allows mixed tabs and spaces, warning can be issues by the -t command line flag for a long time now in 2.x...

      From the top of my head:
      - Fixed inconsistencies between the language and functions (print, exec, execfile).
      - Obsoleted a ton of legacy code.
      - Made a clear cut between the abstract concept of string (internally Unicode) and an array of bytes.
      - Better multi-threading support.

      --
      ^_^
    3. Re:Major problems still not fixed by Anonymous Coward · · Score: 0

      What an obvious bullshit troll post.

      The only significant issue they failed to fix/address was the gil. Period. End of discussion.

      There is no white space issue. Perhaps you care to explain why you completely made shit up like a complete moron. Troll.

    4. Re:Major problems still not fixed by walterbyrd · · Score: 1

      I posted my honest opinion. That is not trolling. Unlike you, I did not have a hysterical hissy-fit.

    5. Re:Major problems still not fixed by walterbyrd · · Score: 1

      If you mean the fact it allows mixed tabs and spaces, warning can be issues by the -t command line flag for a long time now in 2.x...

      But there is no standard. If I get somebody's else's python code, I don't what I'm looking at, unless I do a hex dump or something.

      White space also causes problems with emailing code, or cutting and pasting code.

      These, very serious, problems, have been around for a long time. Since 3.x is throwing away backward compatibility anyway, this would have been a golden opportunity to fix these, long standing, design flaws. For example, they could have disallowed tabs, and required four spaces. I think Guido himself recommends four spaces.

      BTW: I think you know that I am not the only person who feels this way about python. It's a good language, in many respects. But, like many python users, I am frustrated by these design issues.

  22. What keywords did I miss? by tepples · · Score: 1

    Finding such shared hosts today is trivially easy and is becoming easier every day

    I put python 3 web hosting into Google and the first few results didn't appear very relevant. What keywords did I miss?

    1. Re:What keywords did I miss? by GooberToo · · Score: 0

      Holy shit you're stupid. You can't even continue with you're same line of argument. The original argument was about legacy hosting. Now you change it to future hosting.

      Simply put, find any host which allows for shell access. Once you have that, you're done.

      Troll.

  23. Re:Goodbye, Python 2 - NOT by GooberToo · · Score: 4, Informative

    There's a little bit of revisionist history going on in your post but I don't get the impression that's by intent.

    Ah, denial. Some major modules that aren't making the transition:

    That was a silly thing for him to say. Clearly some modules are not actively being ported. That, however, doesn't mean they won't or can't.

    The major changes required to move to Python 3.x are non-trivial and aren't being done

    Very much over stating the difficulty. There has already been a number of porting sprints. In a number of cases, rather large frameworks have been ported over a weekend. By in large, the porting effort actually is extremely trivial and frequently, the automated tools can complete 90-95% of the port by themselves. Really, the ports which tend to be problematic are the ones with large, legacy code bases. These are non-trivial not because of their size, but because of the porting effort in of themselves is a function of line count.

    In some cases, there are newer, completely different modules with different APIs that perform the old functions. So end users have to do a major rewrite on production programs just to stay in the same place.

    Could you be more specific. I'm actually drawing a blank here. Its true some functions/classes have been moved to other packages. Most of the time its as simple as changing an import or a namespace prefix associated with a function call. Again, most of the tedium is addressed by means of the automated porting tools. And if you do have examples, please offer up why such an example affects such a wide breath of existing code its more than a corner case.

    It's a huge transition.

    Again, you're way overstating the problem.

    Guido has this smoke-and-mirrors pitch claiming that it's "done". That's because the Python organization, such as it is, disclaims all responsibility for getting modules ported. So it's not his problem that it sucks.

    Trollish and red herring in nature. Not really applicable to the discussion at hand. So now Guido is responsible for all python code which has ever been written. Such a statement is silliness at best.

    None of the non-CPython implementations are making the transition.

    This has what to do with anything? And how many dozens of people really care?

    Not IronPython (abandoned by Microsoft).

    So now a port of python that no one used is a significant weight preventing the adoption of the latest python release? Completely rediculas. If anything, it further underscores the stupidity of IronPython and MS' mind-share-gimick-marketing rather than serving as a detracting for python migration. Bluntly, I'm sure IronPython's three users are really upset that they made such woefully bad decisions to adopt IronPython (contrary to the rest of the world's warnings and MS' very long associated history).

    Not Shed Skin (only one developer).

    That's because he's one developer and doesn't have the man power. Its not that he won't, rather, its that he is simply one man. Furthermore, Shed Skin is a niche product. Its neat and all, but it has a long way to go before, frankly, anyone other than that one developer really gives a crap about it. Don't get me wrong, its a cool tool, but I won't use it for production. Hell, most python developers don't even know about it. And when they do, they tend to think of it as an experimental toy. Seemingly, the author sees it this way too. So again, not a detractor for Python 3.x in the least. You're being silly.

    Not even Google's own Unladen Swallow is moving to Python 2.6, (Google seems to have abandoned Unladen Swallow after discovering that Guido's insistence on excessively dynamic features meant a JIT compiler didn't speed it up much.)

    Completely wrong and extremely trollish in nature. Unladen Swal

  24. Re:Goodbye, Python 2 - NOT by Animats · · Score: 1

    Completely wrong and extremely trollish in nature. Unladen Swallow (US) is a dead project because other projects have already exceeded US' goals.

    Here's what the developers of Unladen Swallow had to say::

    Hi Arek, On Mon, Nov 8, 2010 at 1:10 AM, Arek StefaÅski wrote:
    > Hey, I thought Unladen Swallow is dead.
    > Sure seems close to this.
    > It's really cool project, why is it so 'abandoned' right now? :
    Jeffrey and I have been pulled on to other projects of higher importance to Google. Unfortunately, no-one from the Python open-source community has been interested in picking up the merger work, and since none of the original team is still full-time on the project, it's moving very slowly. Finishing up the merger into the py3k-jit branch is a high priority for me this quarter, but what happens then is an open question.

    Collin Winter

    Doesn't sound like "because other projects have exceeded US goals", does it?

  25. who cares that 3.2's "features" aren't backported? by portscan · · Score: 0

    let's take a look at the "major" changes in 3.2:
    - stable ABI, .pyc, .so stuff: only really relevant to developers of python itself, not programmers who program in python
    - argparse: a nice update to optparse, but can easily be ported since it's just a module written in pure python. definitely not compelling enough of a reason to upgrade
    - dictionary-based configuration for logging: again, not compelling at all when weighed against the syntax changes in py3k. also, just a module, can easily be back-ported.
    - concurrency tools. there might be something interesting there
    - wsgi, email library modules: looks like they are fixing things that were fouled up by the ascii->unicode switch. these are problems you would not have if you had stayed with python2

    etc. etc. etc. Python3.{0,1,2} includes many things that would be nice additions to the language, but are totally not worth the headache. Think if all of those library authors had actually been enhancing their own libraries instead of rewriting the same features to fit into the py3k language changes. Take a look at PEP3000 and PEP3100. There really is no killer feature, nor do all the little upgrades collectively constitute a killer feature. It's just bad PR to cause so much work for the Python community for no discernible benefit.

    Sure there are several things that "didn't quite make sense with python" but a lot of them were in libraries that could be deprecated and then removed. Or just deprecated. Successful languages don't change. The "purity" of the language is a bunch of ivory tower computer scientist BS that may very well tank the popularity of the language just as it was coming into its own. I hope they find a way to fix this that does not require everyone to just rewrite their python code to be py3k compatible. I know it's really not that much work, but again, there is no tangible reward for this effort.

    When someone can point me to a real benefit that py3k brings that *could not* be achieved without the backward-compatibility break, then I will re-consider my position and even consider upgrading myself. Until then, I will be frustrated that the core dev team has caused busy work for everyone.

  26. Re:Goodbye, Python 2 - NOT by Anonymous Coward · · Score: 0

    you mean pypy ?

  27. 2.x for scientific computing by Anonymous Coward · · Score: 0

    3.x is a long way off for poeple who use Python for scientific computing, image processing, and pattern recognition, as it looks like numpy (and in turn scipy and matplotlib) isn't being supported in 3.x anytime soon:

    http://new.scipy.org/faq.html#does-numpy-currently-work-with-python-3-x-what-about-scipy

    1. Re:2.x for scientific computing by koxkoxkox · · Score: 1

      Numpy seems to support Python3

      Just check Wikipedia, with a link to http://sourceforge.net/projects/numpy/files/NumPy/1.5.0/NOTES.txt/download

      You can also find the announcement from last July : http://mail.scipy.org/pipermail/numpy-discussion/2010-July/051436.html

  28. Re:Goodbye, Python 2 - NOT by GooberToo · · Score: 1

    Doesn't sound like "because other projects have exceeded US goals", does it?

    The project was halted before they could start with some really good optimizations - which Pypy already does.. Go read the mailing lists. No one picked it up because other efforts had already progressed. Which raised the question, why continue US. Google dropped the project, thus killing it. Pypy has been far ahead of it for a while now. Why pick up US, which has a litany of issues (watch the video), when Pypy is already far, far ahead. The rest of what you said is what I said. There really isn't any deviation from what I said so I'm really no sure what you're picking at.

    In short, my summation was completely accurate and well supported by lots of public videos and mailing list discussion.

  29. Re:Goodbye, Python 2 - NOT by kurtmckee · · Score: 1

    > Ah, denial

    Cool intro, bro!

    > So it's not [Guido's] problem that [Python] sucks.

    Were your parents eaten by Python or something? Calm it down a notch! Here's some facts about the projects that I know something about:

    1. sgmllib was built into the Python 2 (which I mention in case you thought it was an external library). It existed solely to be used by the HTMLParser module, and as such it never fully supported SGML, making it useless for its stated purpose. Moreover, it's so absurdly trivial to port to Python 3 that I did it for the feedparser project.
    2. BeautifulSoup relied on HTMLParser, which relied on sgmllib. That could be overcome but the author, Leonard Richardson, doesn't enjoy working on BeautifulSoup:

      Beautiful Soup is a hobby that I don't really enjoy and that's similar to the work I do all day. It's competing against other hobbies and committments I have, hobbies and committments that are more enjoyable and significantly different from my day job.

      He also notes that BeautifulSoup has been surpassed by other libraries, and recommends using those instead. It's no reflection on Python 3 that a library you used to use is not in active development.

    3. I ported feedparser to Python 3 over the course of a week. It weren't no thang.

    > If you're using Python for anything important, start working on your exit strategy.

    I'm sorry Python made you cry, but I really do bristle that you hoisted up feedparser to support your sarcasm and hyperbole, particularly since you clearly have no idea what you're talking about in these three instances (and I think GooberToo handily dealt with some of your other points).

  30. Re:Goodbye, Python 2 - NOT by GooberToo · · Score: 1

    Informative post. Clearly underrated.

    For what its worth, I get the feeling he's a full time troll. Some of his other posts are also very trollish and my response was somewhat troll moderated.