Python 3.0: “What’s the Point”

I saw this post yesterday, and again today it came up. The last comment from the author is this:

Bob — I’ve come to the exact same conclusion. Python 3.0 sounds like it’s great for the Python implementors themselves, and for the language lawyers. It should have been labeled a “Technology Preview”: something to take a look at as an indication of future directions, and for people who maintain libraries to work on compatibility with.

It’s weird how most of the people commenting don’t seem to get that there are factors other than academic ones involved. There is a marketplace for languages, and those that do less well at attracting developers tend to dwindle. Look at LISP — very much ahead of its time, but in focusing so much on the purity of the language, and refusing to make compromises that would make its syntax more approachable or readable, they doomed it to be marginalized.

Python 3 is actually probably going to tip me more toward Ruby for future development. Ruby has its issues, but at least it’s not forked, so I won’t have to throw out any books, and once the minor 1.9 compatibility roadbump is past I won’t have to worry about which library is compatible with which flavor of the language.

It wouldn’t be bad if others with more time would respond to this. As it is, I’ve read so many negative things about py3 and multiprocessing in the last few days I’ve burned out my ability to be reasonable.

It’s on hacker news too.

Here’s a positive post :)

Oh man, I <3 james bennett - see his response/post here

  • If it's any consolation, there are those of us who are genuinely excited about Python 3 as well as multiprocessing. I appreciate the hard work that has gone into it and think that it's better for the language to evolve than to stagnate.

    There will always be people who don't like change. The deciding bit in the success of Python 3 will be who adapts and who does not. I will be adapting.
  • MattB
    Ah, don't bother. Real programmers are always eager to learn new things, and if the changes in 3.0 were an unpleasant surprise, then frankly he's not been a part of the Python community anyway and I'd say forfeits his right to complain.

    "Waaah. I have to learn something new." That's all.
  • True, but I'd also like to counter the FUD factor in the post and the
    comments.
  • Paul Boddie
    The FUD factor? This following up to "he's not been a part of the Python community anyway". Some guy just writes down what's on his mind - some pretty legitimate stuff in comparison to the chorus of flawed critique in the comments on his article - and he's now a "hater" and a "concern-troll"?

    I have to say that the parts of the Python community that intimately track the python-dev happenings and then discuss the language on the related mailing lists and newsgroups - a very small part of the wider Python community, although this would appear to be news to a few people - have in the past few months acquired some pretty obnoxious habits that wouldn't be out of place in some high school or other, leaving me pretty unimpressed (at best) and fairly disgusted (at worst). If people can't pen some fairly tame criticism without bruising a few fragile egos, incensed that someone does not unconditionally like what they've done, then we don't have a community worth speaking about.
  • Paul - My ego wasn't bruised, and frankly - if you have problems with people on python-dev, bring it up with them. I saw a post, from someone who has some amount of readership, which came up on several feeds I track that disappointed me given that I did not feel that many of the points were correct, or warranted.

    Also, the comments also attached onto the blog post bothered me. That's it. If he's allowed to air his "fairly legitimate stuff", I'm allowed to say that I don't like it, or point it out to others.

    I don't think anyone involved in the python community was "incensed" at someone not unconditionally liking python 3k, hell, there's some stuff I don't like about it, and and some things I don't like about python in general. If I aired those things here, I would expect responses, and not all of them softballs.

    The fact is, Python3k is a sensitive issue for anyone knee deep in the community and language as it could become a "make or break" thing, there's been enough talks of schisms and splits and forks and how people in python-dev hate library developers or anyone "with a real job", that I do think that people in the community are allowed to respond, as long as those responses are of a civil tone.
  • Paul Boddie
    Well, I'm sorry if you thought I was referring to your ego, which I was not: you're one of the more balanced people in the community as far as I can tell. Nor was I claiming that people shouldn't criticise the critics. What I do object to is the name-calling ("hater"), the brush-offs ("don't seem to get the point"), and the ridicule ("persecution by Guido"), all of which are probably going to dissuade anyone who isn't immersed in the language development part of the community from criticising, lest they be flamed for it.

    So where's the FUD factor? It seems to me that whenever anyone brings up inconvenient issues like the promotion of the language, which version newcomers should use, availability of books or learning materials, the gulf between the objectives of the core developers and the users, or just the plain confusion that you get when someone puts something different out under the same name, that's supposedly FUD and the critic a "hater".

    A really good critical summary of Python 3.0 is the following referenced comment. Note its brevity (in contrast to paragraphs upon paragraphs about monkeys from one commentator):

    http://lwn.net/Articles/310071/

    I guess the negativity makes the commenter a "hater". And since I've actually signalled agreement with him, maybe I'm a "hater", too. I know my voice counts for virtually nothing in this and many other matters, but if it encourages other people to voice their concerns, I'll gladly point out the above inconveniences as I see them. At least I have the satisfaction of knowing that I've encouraged others to remain in and interact with the community instead of walking away in frustration and disgust.
  • I wouldn't call me balanced - anyone with a dog and a 19th month old doesn't qualify as balanced :)

    I was actually talking to someone about this earlier - both "sides" need to be civil. As long as there aren't blatant factual errors, religiously-loaded statements ("if you don't love py3k, you hate freedom") or outright flamebait, there's no reason to not keep it civil.

    I agree, negative tones - on both sides of any discussion can cause people to not want to explore things further.

    That being said: The FUD I cited in my post was less in the post - but the ensuing comments. There was a lot of confusion and misconceptions in a lot of it, and some in the original post.

    I don't think you're a "hater" - as for zooko, he isn't either. But you, me, and others are going to have to agree to disagree. Python 3000 wasn't supposed to be a new species: it is designed to be a jump in the evolution of the language.

    Python 3k will not reach widespread adoption for some time - Myself? I won't be using it production for at least a year, if not longer: my list of library dependencies is frightening, not to mention while I might hack on it/stuff for fun - I still need to target a 2.x release for work.

    I am a fan of python 3, I think it's cleaner, I think the bytes/unicode fixing was needed, and I am always for sacrificing backwards compatibility to grossly adjust the path of things.

    Time will tell w/ Py3k. I'm recommending to people I know they learn 2.6, 2.6 will be around for awhile, and I'd put money on the table that 2.7 is in the pipe too. This means that Py3k will have time to mature, and perhaps the migration path will be smoother.

    No one, at least, no one I pay attention to, in the python core group has any mistaken impressions about the real-world effects and consequences of py3k. If they didn't, they would not have constrained themselves as much as they did, and we'd have a perl 6 on our hands.
  • Steve Bergman
    """
    It seems to me that whenever anyone brings up inconvenient issues like the promotion of the language,
    """

    What about promotion of the language? We're not going to have to live with all those bits of "unbeauty" forever. Just for a few more years.

    """
    which version newcomers should use,
    """

    Use "python 2.6 -3 -tt" for now. I think that's clear enough to those in the know. This will no doubt have to be stated an restated frequently. Yes, new folks will have a tendency to want to start with the "latest and greatest". In a couple of years, 3.0 will probably be the natural choice.

    """
    availability of books or learning materials,
    """

    There is *already* at least one book available with 3.0 coverage. The next iteration of books with duly have that little "Covers 3.0!" triangle in the bottom right corner or wherever, just like they've said "Covers 2.4!", etc. in the past.

    """
    the gulf between the objectives of the core developers and the users, or just the plain confusion that you get when someone puts something different out under the same name, that's supposedly FUD and the critic a "hater".
    """

    Yes, that last quoted segment is unsubstantiated FUD.

    """
    A really good critical summary of Python 3.0 is the following referenced comment. Note its brevity (in contrast to paragraphs upon paragraphs about monkeys
    from one commentator):
    """

    Trivializing James' post in that way is, in my opinion, in poor taste, and an application of exactly what it is that you claim people are doing to you.

    Frankly, I've noted more "Chicken Littles" than haters in the community. The sky is not falling. 3.x is not that different from 2.x from a programmer's perspective. More so from a code maintainer's perspective. But over the next couple of years the conversion tools should evolve, and 2.6+ code will make up an increasing portion extant Python code base, and earlier versions will be less relevant. Yes there will be pain for maintainers of older code bases. But somewhat less than what I've read some fear-mongers predicting.

    Python 3.x is and has always been about about the long term. And I wish more people understood that.
  • Steve Bergman
    Just a point of clarification. When I speak of "unbeauty", above, I am referring to all of 2.x's little warts that are going away. I don't think that my wording there was really clear.
  • rgz
    But unlike LISP Python3 changes make Python *more* accessible to programmers, Even to seasoned Python programmers! this is only a problem because of the libraries but the std library has already been upgraded, I think it is too soon to say Python3 is a failure...
  • llimllib
    1) multiprocessing rocks
    2) ruby 1.9 is only a *very* slightly smaller change than python 3, it changes some fundamentals of the language as well.
  • Just to clarify - I'm not searching for praise - but thank you. I just get
    sucked into the echo chamber of the internet all too easily, and repeated
    defense of things wears thin
  • llimllib
    I didn't think you were fishing for praise, it's just that people tend to only contact you about open source work when they're unhappy about it, I know how frustrating that is.
  • Thanks, and you're right - that's part of the reason why I really want to
    contribute to python core positively, it's too easy to simply be negative
    instead of being someone willing to step up.
  • Perhaps this post gives a reply in a way?

    http://mooseyard.com/Jens/2008/12/python-30-wha...
  • Perhaps it is :)
  • There are two opposing forces here, and you can see them just as well in discussions about the GIL.

    The first one is the progressive and more open-source oriented mentality that promote better features and cleaner code. These are the people that hang out on IRC, write really cool extensions, and generally have a very academic and intimate knowledge of the python api.

    The second one is a more practically goal and business oriented mentality, that promotes stability and proliferation. These people are more often than not getting paid to write the specific chunk of code in which they choose to discuss, and are blessed with not having to worry about the imperfections of the code as long as they make their deadlines.

    There will always be a compromise between these two forces. I like to fall into the first category, preferring to take my time with unit tests and a detailed understanding of my code, because I do not enjoy going back and fixing concepts that should have been completed the first time. But, I don't get paid for my clean concepts, I get paid to meet deadlines and to be able to maintain the code I've written.

    Your code doesn't need to be perfect to have fun AND make money, and your language doesn't either. You also need to have that bleeding edge branch to keep the spirit of the craft alive. I've never used ruby, and I'll never write java again, but one thing I can say about the python community is that there is a very large number of people that are involved in discussions across the spectrum, and this is nothing but healthy for the language, just like bleeding edge 3.0 releases are and easily maintainable 2.5.1 OSX releases are.
  • Here's one instalment of my contribution:

    http://mikewatkins.ca/2008/12/05/why-python-3/

    Regarding Patrick's insightful comment on the dynamics of the more academic vs more commercial users, I agree that the variety of users and groups bring much to the overall Python community.

    I wonder if the better support for working with Unicode might be one aspect of Python 3 which may be, pardon the pun, something of a *Uni*fying force. Its such a pleasure in comparison.
  • This is just the natural wave of stop-energy, mostly concern-trolling. It will go away. I posted my take here: http://blog.pythonaro.com/2008/12/if-only-we-co...
  • fuzzylollipop
    for python to really take off it needs REAL concurrency at the language level like Erlang has.
    If you are going to break backwards compatibility make it for a good reason. I used to be a huge fan of Twisted, but now that I am learning Erlang / OTP Twisted looks more and more like the birds nest it really is for non-trivial projects.
  • I don't know if you've read my other posts on the concurrency subject, but I fundamentally agree with you, ergo the inclusion of the multiprocessing library as a start.

    Not to mention, the inclusion of a fiber-based threading system (which is what erlang uses) should in no way break backwards compatibility if it is done in addition to the current threading implementation. Twisted is not the one true answer in the python community anyways. Take a look at Kamaelia, multiprocessing, Dramatis, etc.

    Not to mention: No, it doesn't need this to "really take off" - concurrency is not the primary goal or design center for Python. However, the design center does not exclude the possibility of a well done concurrency system.
  • Steve Bergman
    """
    As it is, I've read so many negative things about py3 and multiprocessing in the last few days I've burned out my ability to be reasonable.
    """

    Well, what called your name to my attention, and what brought me to this blog, was the wonderful new multiprocessing module, and a desire to thank the people who made it possible. I've been working with it the last few days. Getting to know it. Comparing its performance with the threading module on code I have converted. And I am exceedingly impressed. The performance sparkles. The ease of conversion from threading to multiprocessing is amazing. The additional memory overhead, compared to threads, seems to be surprisingly small in my tests (under Linux). The performance of Queue particularly surprises me. I had known *of* this module for a couple of months. But this is the first time I've picked it up and *used* it. Color me excited. And I'm not just saying that to cheer you up. Like I say, I sought out this blog with the express purpose of saying it.

    Message passing, FTW!

    -Steve Bergman
blog comments powered by Disqus