[Python-Dev] #Python3 ! ? (was Python Library Support in 3.x) (original) (raw)

Laurens Van Houtven lvh at laurensvh.be
Sun Jun 20 12:35:24 CEST 2010


Hello,

I'm one of the active people in #python that some people dislike for behavior with respect to Python 3.

First of all I'd like to defuse the situation, much like Jacob. Seriously. It's been a bunch of posts so far and most of them have been pretty angry. Let's take a deep breath and try to fix the situation that's getting people frustrated like grownups :-) (FWIW: I find being called worse than half-intelligent pretty offensive. Let's stop doing that?)

The idea being expressed in the IRC topic is way bigger than the room an IRC topic gives you. Yes, it's an imperfect medium, yes, it's probably partially based on the use case: it's just that experience leads us to believe that the vast majority of use cases ends up being more in 2.x turf then 3.x turf, at the very least in the past.

I'm sorry if you had the impression people wanted to nail you at the stake for using Python 3. If that's how you felt, it isn't true. I basically agree with Glyph. I don't think we've recently (I'm not omnipresent) told anyone who had any good reasons to to stop using Python 3. If someone's doing work that actually needs Python 3 (most recent example a GSOC student porting Sphinx), we try our best to help, and AFAICT we've mostly been successful. (Please correct me if you think this is erroneous.). We don't get too many people that actually want or need that, but I'm guessing that's mostly because people porting libraries to py3k usually already know what they're doing so they don't need the first-line-of-defense thing for Python questions that #python tries to be.

Maybe you disagree on what good reasons are. #python is a bunch of volunteers giving help, free of charge, which is usually of a pretty high standard because they're professional Python developers and have been for a long time. Maybe that biases some of us against Py3k? Fact remains that there's a bunch of active people on IRC who pour a lot of time and effort into #python and make a lot of newbies really happy, and I think the picture you're painting based on a single issue that clearly not everyone agrees on is a bit disrespectful and somewhat unfair.

Also, I'm pretty sure nobody has ever said that Python 3.x was a "failure", or anything like it. #python has claims that Python 3.x, as a platform for building production apps, is a work in progress because of third party library support, and the language itself is pretty much done and okay -- a cleaner version of 2.x. People ask why it's too early to use Py3k, and that's always the answer they get: at least the first half, and usually the second half too.

In the mean while, we encourage people to write code that will be easy to port and behave well in 3.x: new-style classes, don't use eager versions when the Py3k default is lazy and you don't actually need the eager thing, use as many third party libraries as possible (the idea being that this would minimize effort needed to make the switch on the grand scale of things), use absolute imports always (and only explicit relative, but it's discouraged), always have a full unit test suite. This is advice that generally makes a lot of sense, and it's the recommended thing in PEP 3000 for porting to 3.x as well.

We're still telling people to use Python 2.x by default because of a few major things:

  1. going out on a limb here: well over 90% of those people are completely new to Python and out of those most of them completely new to programming too,
  2. the nicest libraries for doing a lot of stuff aren't ported yet, or are in the process of being ported but not yet recommended for actual use by their authors, (this seems to be a point of contention?)
  3. we know how to help people better with it

Which are all basically different incarnations of the same issue. People are working on libraries everywhere and I really don't want to pretend those people haven't gotten any work done, but AFAICT a lot of these for existing mature projects that you'd want people to use in order to be happy productive Python users don't really exist yet or are at best experimental. At the very least I think most people can agree that 2.x is still the default release for existing, mature software projects and most new ones too.

I can only speak for my own area of intrest: Python is way too big for anyone to have used every piece of software for it ever. I, personally, don't use 3.x because I develop for PyS60 devices, PythonCE devices (2.5 only), and Twisted servers (2.6), and none of those work on 3.x yet. The other thing we build is websites, and AFAIK the web situation, for now, is still "use python2.x", too? (for any non-trivial website, of course). We use AMQP, and the best thing we've found for it is 2.x only (maybe Carrot and Pika do 3.x now, but I can't find any evidence of it). Nobody here (here = place of business) hates Python 3. We just can't use it.

I'm very sorry if you've been offended. Like Glyph said: we're not grinding ideological axes. We're just recommending what we honestly believe is the right tool for the job. We're just humans, we're not perfect. We make mistakes. If you feel we've made them, please just tell us and don't start a war. If you tried and failed, please feel free to tell me how (doesn't have to be in public) and why it failed, and maybe I (or someone else!) can try to fix it: that's not how stuff is supposed to happen. Maybe someone was being a troll, I haven't checked but I trust the people I run #python with enough to say that it probably wasn't a regular. That's IRC for you: the problem is that if you let everyone speak once in a while trolls open their mouths. Perhaps something someone said was just taken too seriously. I don't know the situation you're referring to, I just know #python.

Again, just because someone asked and nobody removed that line ('It's too early...') doesn't mean we're evil pricks that want people to use Python2.x because of some hidden agenda. It just means that person disagrees with the idea that it's a good time to start doing it. IRC can be a harsh place, not because the people are jerks but because the medium just lends itself to it. People are generally a not nicer than they appear.

Like Nick said: not too long ago this was perfectly sound advice. I'm convinced it still is; maybe I've (and a lot of people active on #python) been out of touch with recent evolutions and it's no longer true. I don't know. I'm just a bit sad that it had to come angry ventings (no grudges, I realise most of it is probably just frustration). I like to think I'm not wrong when I think that if people just ask "Hey, guys, this Python 3.x rule, don't you think it's about time we reviewed that? It's been up for a long while." people would get banned or anything. Maybe people disagree and think it should still be up there: but at least we could have a productive discussion hopefully resulting in something that makes everyone happy or at the very least less frustrated. I just asked a two regulars and despite the fact that we're about as widespread as we possibly could timezone wise (SE Asia; Western Europe; WA, USA) nobody remembers that happening.

Also, on tiwsted Twisted: yes, #python is very Twisted-minded, we have a bunch of people that like it, develop it, have built cool software with it and we think it could help other people too. It's not ideological axe grinding: a lot of the regulars just genuinely like Twisted. I'm sorry if you felt that not liking Twisted was going to get you smacked across the face, but that's not true either: Ronny Pfannschmidt is a regular, and he really doesn't like Twisted. We just think that for a lot of questions people come in with, Twisted is a great solution. That doesn't mean you're not allowed to have contrary opinions or that all dissent is crushed with an iron fist: it just means that the people who actually bother to help others day in day out know Twisted, like Twisted, and think Twisted is a great tool for a lot of problems. If you don't like Twisted, feel free to use something else: just don't complain when nobody can help you because the people offering help are all Twisted users that don't understand your software and don't have time or incentive to. It's a purely pragmatic thing. There's no hidden agenda.

I've put bits of this up for review to #python regulars, so when I say 'we' it usually does mean 'we, #python regulars'. Most of it resonates. Maybe we're just in the distortion field?

thanks for listening, Laurens



More information about the Python-Dev mailing list