That's a good post, and I'm glad Brett took the time to share his thoughts. Characterizing me personally as a naysayer is missing my point entirely. Throughout this whole thread, I've mentioned that I have
questions. The closest I got to naysaying was a rhetorical "why should I care about 3?". Perhaps that's frustration of others boiling over into his response, but given that my comments were really the catalyst for the post (presumably), I was surprised to read it that way.
Brett, Armin, you, Guido, and the rest of the "in" Python developers expected a long turnaround. I understand that now. Brett touched on something, though: that 5-year estimate was on python-dev. That internal discussion does not percolate up to the rest of us that use Python daily but only lightly pay attention to the development ins and outs. I have learned a valuable lesson from this entire thing, which is that I need to pay attention to all of my tools.
How many end users does Brett expect to read python-dev?
You have to look at this from the perspective of a casual user, or perhaps even a user just getting started with Python today.
People always rush to the newest version, and the "Python 2 or 3?" link on python.org is all the way at the bottom, below even Merchandise. (It should be above the download links, in my opinion.) http://www.python.org/download/ also attempts to very lightly dissuade the user from getting 3:
> they're both considered stable production releases.
> If you don't know which version to use, start with Python 2.7
Those are both true statements, but one can be read as going against the other. Assuming they miss that -- which can be easily blamed on the user, I guess -- new users end up playing around with the Python tutorial in IDLE under Python 3. Maybe a few scripts and adoption of Python 3 specific idioms. Then a friend mentions Django, but wait ... Django doesn't have Python 3 support yet. Now they're confused. What now? Oh, they have to use Python 2 instead, but a lot of code that they've written so far doesn't work under Python 2.
In my very humble opinion, I believe this is a poor time to get started with Python. This transition is hurting new adoption, and there is an incentive to get it finished as quickly as possible. What I don't gather from library developers is a sense of urgency to fix it, and my evidence to that end would probably be the acceptance of PEP 3333 taking ages among other disagreements. The immediate response that I anticipate is well, we don't have the resources, but what I gather from other Python developers like me is that this confusion is hurting more than helping.
I'm honestly not sure how I would have done this differently, and I don't claim to have enough wisdom to even know where I'd begin. My initial question would be, if Python 3 had a 5-year outlook for libraries being ready, why wasn't it stabilized and kept in development for, say, 4 of those years? Was the general release necessary in order to port libraries and get distributions on board with packaging? I understand which I should pick because I have Python experience. A flood of new users probably do not, and comments elsewhere in this thread (such as the suicide one) just demonstrate even more confusion about the entire thing.
Obviously, I fully realize that it's unfair to hold a language back because the libraries need a transition period. However, Python without a library (particularly for Web development) only gets you so far, and the burden is on the library authors now.
I guess the underlying thought is that if Python 3 is given first-class treatment on the python.org brochure, an uninformed user might expect that a choice between the two is unnecessary. That there is a choice that must be made just serves to confuse and alienate users.
My two cents, and I'm probably off base anyway.