A short list of things I don’t like about Python

May 26th, 2009 § 62 comments


Yeah, I haven’t posted in awhile — since pycon I’ve been sick off an on, work­ing my butt off at the place which allows me to pur­chase ice cream for my kid, and so on. Busy busy. Not to men­tion, I’ve been suf­fer­ing a slight case of burnout — long story.

That all being said, I think it was last week when I twit­tered a minor philo­soph­i­cal point which was picked up and ran with by pydanny. The lit­tle point I made was some­thing like:

I don’t think it’s unrea­son­able to be able to name at least 5 things you don’t like/would change about some­thing you love. Imple­men­ta­tion details are fair game too

stop-whining.jpg
Now, before I delve into my per­sonal list, I want to pro­vide some con­text to this com­ment. It actu­ally has some his­tory, and it’s not an orig­i­nal thought — I think Titus Brown started a meme around this last year. In his case, it was purely based around python.

In my case, I’ve long main­tained that if you can not name things you would change, irk you or gen­er­ally dis­like about some­thing (not just a lan­guage) you sup­pos­edly love, whether it be a tool, a lan­guage, an OS, etc — then it shows you have a cer­tain lack of self-awareness or prag­ma­tism (there is another word I’m grasp­ing for here, but it escapes me).

His­tor­i­cally, I’ll ask this in inter­view sit­u­a­tions whether I’m speak­ing with some­one who is a test engi­neer (name and explain 5 things you love/hate about auto­mated test­ing?) a pro­gram­mer (name and explain 5 things you love/hate about lan­guage $FOO) — gen­er­ally speak­ing, this is great dis­cus­sion fod­der, and allows you to probe the thought process of the candidate.

For exam­ple, if some­one says “I hate Python’s white­space” and they’re inter­view­ing for a Python cod­ing posi­tion, I think it fair game to dig into that a bit and see if its ratio­nal, and ulti­mately ask the ques­tion: If you hate some­thing so fun­da­men­tal, why do you use it/why do you want to pro­gram in it for the fore­see­able future?

In any case, I promised a few peo­ple I’d give them the short­list of nits (I don’t hate these things, I sim­ply dis­like them) I have with Python. It’s impor­tant to remem­ber that:

  1. I con­tribute work to python-core (see the mul­ti­pro­cess­ing module)
  2. I pro­gram in Python daily for work, and in my free time too.
  3. I par­tic­i­pate (when I’m not on a self imposed exile) on the mail­ing lists and dis­cus­sions (see Python-dev, etc.
  4. I too, am a strong believer in “put up or shut up“

Now, part of me is sad that I have to pref­ace me being crit­i­cal with a dis­claimer like the above; but alas — some peo­ple, espe­cially those on the inter­net, thrive on con­tro­versy and fail to read more than 5 or 6 words before post­ing some half-witted response, or worse yet, some­one skims to the gripes I have, finds one they want to take me to task about and says “SUBMIT A PATCH !!!11″.

I do con­tribute back, so you can avoid telling me to sub­mit a patch, ok?

That all being said, here’s my list:

  1. Con­cur­rency: This is actu­ally a love/hate topic for me. Obvi­ously, I’m the main­tainer of the mul­ti­pro­cess­ing mod­ule, which side­steps the GIL, but the GIL is still an irri­tant for me (given I do write a lot of threaded code). A lot of peo­ple are very famil­iar with the fact I am a pro­po­nent of threads and processes/IPC, as both serve dif­fer­ent (yet over­lap­ping) pur­poses. There is room for both. Hope­fully unladen-swallow will be able to get rid of the GIL, and then we can all move on with our lives: So long as in killing it, we don’t hose the ecosys­tem of C extensions.
    • Addi­tion­ally, I would love to see a decent corou­tine imple­men­ta­tion included in the stan­dard library, once PEP 380 is done and in the bag, if you need jus­ti­fi­ca­tion, see David Beazley’s corou­tine talk. Again, while peo­ple might dis­agree with this, say­ing that coroutines/processes/threads all “do the same thing” and would vio­late “TIOWTDI” (There’s Only One Way To Do It) I would strongly dis­agree with them. In the case of con­cur­rency, dif­fer­ent solu­tions fit dif­fer­ent prob­lems. We do not have a grand uni­fied the­ory of con­cur­rency within python.
    • Also in the con­cur­rency vein, I would like to see a cross lan­guage messaging/serialization system/format even­tu­ally come in. Right now, we have pickle; most recently, JSON — and JSON might be the final answer in this regard, but some­thing akin to pro­to­col buffers has also piqued my inter­est. Given we have JSON, I’m not ter­ri­bly hot on this one.
    • Finally, I’d like to see more of the java.util.concurrent abstrac­tions migrated in. I mean, using python threads isn’t hard, seri­ously, but more/better abstrac­tions make things nicer for everyone.

  2. The Stan­dard Library: This, again, is a love/hate thing — I love the stan­dard library, and I will gladly argue with any­one who sug­gests get­ting rid of it. How­ever, that said — I would like to see the entire thing get a much bet­ter doc­u­men­ta­tion treat­ment, the docs while good, could be 1000x bet­ter, more clear/etc. I would also make every sin­gle mod­ule in there PEP 8 com­pli­ant. I know that sounds like a style-nazi thing, but if that’s the style we’re to use, I think the first thing to adhere to that is the stan­dard lib.
    • It’s also dis­or­ga­nized. While flat is bet­ter than nested, I’m sorry — but I think mak­ing it deeper and putting all the things like one another into the same name­spaces does make sense.
    • I would also break out the stdlib from core. This idea was dis­cussed at the python lan­guage sum­mit, and I think almost every­one there was in agree­ment. The idea would be to sep­a­rate out the stdlib into it’s own path inside the repo, and other python imple­men­ta­tions (such as Jython/etc) could use that copy as their copy of the stdlib mod­ules. Any­thing which was CPython spe­cific (such as mul­ti­pro­cess­ing) would stay with core/be marked as CPython only.
    • Tak­ing this con­cept of break­ing out the stan­dard library a lit­tle fur­ther: I would begin to evolve it a lit­tle more quickly. There’s a strong dif­fer­ence between changes to the lan­guage, and changes to the stan­dard library. In the case of the for­mer; it should evolve slowly, and care­fully. In the case of the lat­ter (the stdlib) I think it could — and pos­si­bly should, evolve more quickly. By evolve, I mean “get cleaned up, have things removed/added” more quickly. I do not, how­ever, mean with less thought. There’s obvi­ously a lot of “buts” and other con­cerns with this idea, but it’s just a thought. I think com­part­men­tal­iz­ing this into python-core and python-stdlib meshes with how a lot of peo­ple think about things.

  3. The Docs: I touched on this in the stdlib one, but the stan­dard library doc­u­men­ta­tion, as well as rich exam­ples for a lot of the core fea­tures are lack­ing. Many of them focus on syn­tax and not nec­es­sar­ily on use. For exam­ple, I would gladly inte­grate all of Doug Hellmann’s Python Mod­ule of the Week posts into the stan­dard library doc­u­men­ta­tion tomor­row, and whole­sale if I could — his exam­ples are much more rich than those we find in the cur­rent docs.
    Many peo­ple, includ­ing myself, have been work­ing on mak­ing these bet­ter — in my case, I need to over­haul the mul­ti­pro­cess­ing docs when I have a chance.
    • Don’t get me wrong — I actu­ally appre­ci­ate the docs we have, they keep me sane, but they can be bet­ter, more clear and in some cases, more prac­ti­cal. One or two exam­ples for usage just doesn’t cut it.

    • update see: http://tosh.pl/gminick/gsoc/sphinx/

    cosmic-rex-excuse-me-wtf-r-u-doin.jpg

  4. Pack­ag­ing: Ahh­hhh! I’m not going to go too deep into this rab­bit hole, espe­cially given I know Tarek is hack­ing away at mak­ing python pack­ag­ing a much bet­ter ani­mal, but the entire setuptools/eggs/distutils/etc pile is well, frus­trat­ing. I just want a clean, stan­dard way of pack­ag­ing my pack­ages, built into core, that doesn’t force me into install into the global site-packages direc­tory. Also, unin­stall, dammit. I know setup­tools and easy_install and eggs were designed to scratch an itch: and I do use easy_install, but the entire pile of things need to be made into a stan­dard, imple­mented in core and we need to move on.
    • How­ever, as I pointed out dur­ing the lan­guage sum­mit — I don’t think some­thing like easy_install belongs in core, instead I think core should make what easy_install does (to a cer­tain extent) eas­ier and stan­dard, so peo­ple can use what­ever tools/scripts/etc they want. One ring to bind them!

  5. Lint­ing: Ok, face it, if you’re on a big enough team, you need to have a pre com­mit hook for your VCS that lints the code, and yacks if it doesn’t con­form. I would love for one to be built into the stdlib, but some­thing like pylint is too big, pychecker is too sim­ple, and I haven’t used pyflakes recently enough to com­ment. There was a thread on python-ideas about this recently — and maybe Jeremy Hyl­ton is right, and it doesn’t belong in core, but if that’s the case, we need to pick one to “endorse” on the python doc web­site. Maybe in a “get­ting started with devel­op­ing python” doc­u­ment, which is linked in size 30 font, and links to a lin­ter, maybe the pep8.py and reindent.py scripts, etc. It should be painfully obvi­ous where to get and how to use these tools. Yeah, I know “waaaaah why didn’t they link to mine” — well, because we liked this one over here more. QQ.
    • As it stands, I can not count the num­ber of times I’ve been asked about lin­ters and style check­ers for python code. Maybe we make three pack­ages: python-core, python-stdlib and python-tools.

  6. Optional Sta­tic Typ­ing: This one doesn’t make me feel like I’ll make any friends, but I would love to have pre-runtime, sta­tic typ­ing as an option to python — maybe as a –anal-types flag. Guido has dis­cussed (part 2) the dif­fi­cul­ties of this before, so I don’t think this will ever come (the clos­est we get to “type safety” is func­tion anno­ta­tions, which make me feel funny in sen­si­tive places). The biggest rea­son I have for sta­tic typ­ing of any fla­vor, is that I would pre­fer to have the abil­ity to catch some errors prior to run­time. That’s all. On a big enough team, all hack­ing on the same (mas­sive) python code base, I’ve found you do want the abil­ity to turn some­thing like this on — it helps you with a (small) class of very annoy­ing bugs.
    • I do love me the dynamic/late typ­ing sys­tem of python, and I use it to my advan­tage as much as pos­si­ble. So, I wouldn’t trade the dynamism of Python for sta­tic types, it’s just an nit I have. Of course, maybe some­thing like inter­faces (as Jacob points out in his list) might solve some of the issues I have (mainly bad peo­ple doing silly things). The rest of the stuff is why I write unit tests and actu­ally run the damned code.
    • Yes, I know the draw­backs of some­thing like this; I also don’t have some sort of magic solu­tion to be able to wave a wand and do this. Nor do I have a con­crete pro­posal, oth­er­wise you’d see an email on python-dev. Other peo­ple much smarter than me have pointed out the sheer enor­mity and numer­ous draw­backs to some­thing like this. No, I don’t expect magic fairy dusty to sud­denly appear and just “make this work”.

  7. Stan­dard Library Part II: Yeah, you might notice a lot of my gripes are around the stdlib — but in par­tic­u­lar, I want to point out the state of XML han­dling in the stan­dard library is about as clear as wear­ing glasses made of meat. Addi­tion­ally, the httplib/urllib/urllib2 thing? Yeah. No.
    • While I’m harp­ing on this stuff, get rid of the com­mands mod­ule, any­thing that is not in sub­process should be put there. Since I men­tioned sub­process, needs more doc­u­men­ta­tion also, non block­ing asyn­chro­nous input/output/handling of sub­process data should be easy, and built in. There’s a GSoC project around this spin­ning up, so we’ll see.

That all being said, would I trade python for some­thing else? Not right now. Most of my nits are exactly that: nits, and most of all, they’re not impos­si­ble to change or resolve (given enough time, and resources).

I can make a sim­i­lar list for OS/X, Linux and other things I use day in and day out — hell, I can make one for myself (ask my wife about me grip­ing about me some­time). I can prob­a­bly make a list like this for every sin­gle thing I’ve writ­ten, tools, scripts, apps, etc.

Like I said, being aware of, and try­ing to over­come your own short­com­ings is how we all improve. In the case of a lan­guage, you can’t just keep adding things into a stan­dard library and call it “bet­ter” — you have to take a con­stant look at what you’ve done to date with a crit­i­cal eye, and ask your­self “what can we do better”.

  • http://thechong.blogspot.com/ John Cheng

    What about an IDE? I come from a Java back­ground, but I use Python for our sys­tem admin­is­tra­tion scripts and have been work­ing on a Python + PyQt project as a hobby. I have yet to find some­thing that will con­vince me to switch from Emacs.

    I would like to be able to rename a mod­ule or a func­tion and have all the code that ref­er­ences it be updated. I like auto­com­ple­tion. I’d like my IDE to sta­t­i­cally ana­lyze the code (per­haps via pyLint or PyChecker) and give me an overview of warn­ings and errors in the entire project. I’d like eas­ier nav­i­ga­tion through­out code — for exam­ple, being able to eas­ily find all the places where a func­tion is ref­er­enced and jump to those places.

    Of course, this is not the fault of Python. It just hap­pens that Java is the “hot” lan­guage out there, and IBM decided to throw mil­lions of dol­lars behind build­ing an excel­lent IDE for it. Hav­ing said all of that, I do have to say that I’ve read good things about Eclipse + PyDev since the last time I tried it, so I will give it another shot this weekend.

    I would also like to see more “pure Python” mod­ules. Self­ishly, I would like to see a pure Python imple­men­ta­tion of a crypto library. It cer­tainly would be more con­ve­nient to dis­trib­ute Python appli­ca­tions when you know your code and the libraries you use will sim­ply work on any plat­form that runs Python.

    I think my nit­picks are not so much about things in Python that I’d like to improve, but a reflec­tion of that Python has a smaller com­mu­nity com­pared to the major play­ers (Java, .Net). I guess it just means I need to do my part to sup­port and advo­cate for Python if I want to see said improvements :)

  • http://www.paniq.org/ paniq

    SUBMIT A PATCH !!! 1

    And besides, that’s seven points, not five. You are break­ing my heart.

    No, actu­ally, I pretty much agree on 1, 4 and 7. For the oth­ers, I don’t have a prob­lem with that, because I’m a rea­son­able man. George Bernard Shaw wouldn’t like me.

  • Ivan

    But hav­ing a good lan­guage with a poor doc­u­men­ta­tion means you will lose a lot of poten­tial users. I was first drawn to PHP because of the excel­lent docs which have got­ten even bet­ter in the last cou­ple of years.

    I’m just start­ing with python and it is a lit­tle annoy­ing hav­ing to google for things because they are hard to find in the manual.

  • Paul Bod­die

    I think that a few dif­fer­ent phe­nom­ena are occur­ring here, and xml and url­lib are inter­est­ing exam­ples. With xml, it’s com­pletely unfash­ion­able to improve these mod­ules: there are more peo­ple out there with an invest­ment in mak­ing snide remarks about minidom than there are peo­ple will­ing to improve such mod­ules, but despite the pres­ence of alter­na­tives out­side the stan­dard library, the improve­ments would prob­a­bly need to start with what’s already there.

    With url­lib, on the other hand, there’s a need to look around and see what else is avail­able. I believe itools has mod­ules of a sim­i­lar nature, and there are third-party HTTP libraries, too. So in this case, the inspi­ra­tion has to come from else­where, and per­haps url­lib and urllib2 merely need to live on in some kind of com­pat­i­bil­ity library. The prob­lem here is that there’s a small indus­try in the Python scene in ignor­ing what peo­ple have already done: expect a PEP or two which ignore most of the work out there, despite there prob­a­bly being a Wiki page on python.org with all the rel­e­vant projects listed.

    I’d really like to improve the stan­dard library, but given that any pre­vi­ous advice I’ve offered has been more or less been brushed aside, and given that we all have only a finite amount of time to do inter­est­ing stuff, I don’t feel that it’s reward­ing work. And I guess that you know how demand­ing the work is, too. Maybe this dis­cus­sion will change my atti­tude for a short period of time and I’ll do some­thing, but I can’t help feel­ing that “Python’s Neglect” is a prod­uct of a num­ber of fac­tors includ­ing but not lim­ited to things like the way Python is “con­sumed” by its com­mu­nity and the way the per­mis­sive licens­ing encour­ages such con­sump­tion (as opposed to participation).

  • http://jessenoller.com jnoller

    I’ll respond per paragraph:

    1> I agree. I think it’s easy for peo­ple to throw rocks at the XML han­dling then to find some­one will­ing to step up (as Tarek did for disu­tils) to take some­thing and improve it incre­men­tally over time, and vol­un­teer to be it’s shep­herd. The stdlib *needs* some­thing for XML, find­ing some­one to do it is another thing entirely.

    2> Again; some­one needs to step up. To replace some­thing, or even be added to the stdlib, it now has to be “best of breed” (see brett’s post on this here: http://sayspy.blogspot.com/2009/05/staleness-of…). As for peo­ple ignor­ing other things that have hap­pened, that’s par for the course, and some­times (not all the time) even if some­thing has hap­pened else­where, it may not be the right solu­tion. It hap­pens. And I hate wikis, it’s impos­si­ble to find any­thing in them, infor­ma­tion is spread all over the place, etc.

    3> The bar­rier to change things is high: you not only have to have a good idea, you have to be will­ing to fight for that idea. And yeah, I know we’re all on bor­rowed time, and it is demand­ing, so things that could change, sim­ply don’t.

    Python’s Neglect” is largely a side effect of this — the core devel­op­ers are few, peo­ple have to be will­ing to con­vince many other peo­ple that their idea has not only merit, but that the per­son propos­ing the idea will be will­ing to help cre­ate, test, doc­u­ment and main­tain the thing they are offer­ing. And Python, because it is in wide­spread use, has to evolve slowly and rel­a­tively carefully.

    It is a prod­uct of a num­ber of things. Low resources (peo­ple, time), high bar­rier (you have to be will­ing to fight if you believe in it) and resis­tance to change (we’ve always been at war with eurasia).

    I do not, how­ever, agree that this is some­how a side-effect of the licens­ing. One of the rea­sons I con­tribute, and have been able to con­vince my employ­ers to let me con­tribute to python-core is *because* of the per­mis­sive licens­ing. In my dis­cus­sions with oth­ers, I have heard this anec­do­tal evi­dence repeated time, and time again.

    Python core does noth­ing to deny par­tic­i­pa­tion, except limit com­mit priv­i­leges to a select group of peo­ple who have gained an amount of trust. Every­thing is open; all dis­cus­sions are a mat­ter of pub­lic record, all check­ins are pub­lic. Any­one can step up and write a pep (even me) and any­one can sub­mit a patch to the tracker which can find it’s way in.

    I wouldn’t trade the open­ness, and per­mis­sive licens­ing of the code for some­thing which “forced” (ala the GPL) peo­ple and com­pa­nies to give back. While that has worked for other projects, and con­tin­ues to do so, I and many other peo­ple using python get the lux­ury of using it, and some­times giv­ing back to it where we might not be able to do so with some­thing with a forced-participation license.

    Part of the beauty of it, is that it’s good for indi­vid­u­als, and com­pa­nies. Com­pa­nies with half a brain (ala Google, com­pa­nies I have worked for, etc) give back what they’re com­fort­able with, and when they can. They use python to Get Things Done — and that’s what Python is about, get­ting things done, and not adding restric­tions or forced-participation clauses when it sim­ply isn’t needed. Part of the rea­son I love it is this fun­da­men­tal pragmatism.

    Would I like it if people/companies con­tributed more? Yes. Do I wish we had more peo­ple in core dev get­ting paid to give back? Sure. If I won the lotto tomor­row I’d prob­a­bly start a small group of peo­ple whose sole job was to do noth­ing but improve the hell out of it. But I see no rea­son to force this.

    There’s a lot of things at work here, and a long road to hoe to get “big” changes into python-core, but in the immor­tal words of Jay-Z: “I got 99 prob­lems but licens­ing ain’t one”.

  • carljm

    Emacs with Rope, etags, and flymake/pyflakes: Auto­com­ple­tion? Check. Syn­tax errors and warn­ings reported inline as I type? Check. Auto­mated refac­tor­ing? Check. Fast nav­i­ga­tion? Check. Any­thing else you’d like?

  • Paul Bod­die

    Jesse, it’s great to have this dis­cus­sion, even though we obvi­ously don’t agree on everything!

    My remark about per­mis­sive licences didn’t sin­gle them out as the only fac­tor — if you want an exam­ple of a project with good momen­tum and a cer­tain amount of com­mu­nity inter­ac­tion with the core devel­op­ers, I sup­pose you could also con­sider Post­greSQL — but the kinds of com­mu­nity that form around projects using dif­fer­ent styles of licences are often quite dif­fer­ent. I have it on good author­ity that when the licens­ing of a project becomes more per­mis­sive, you do get an influx of peo­ple who are more “con­sumers” of the code than col­lab­o­ra­tors around the code. Per­haps the peo­ple who feel more “com­fort­able” about a per­mis­sive licence are also the peo­ple who are less likely to inter­act with the devel­op­ment com­mu­nity around that code, who pos­si­bly don’t see the value in con­tribut­ing, and who don’t feel a com­mon sense of own­er­ship of the project.

    I note that your feel­ings about Wiki solu­tions has appeared more than in one con­text dur­ing this debate: “And I hate wikis, it’s impos­si­ble to find any­thing in them, infor­ma­tion is spread all over the place, etc.” Although the API doc­u­men­ta­tion prob­a­bly doesn’t belong in a Wiki, there isn’t any­thing bet­ter for get­ting peo­ple to con­tribute or for let­ting them go off and do some­thing that the doc­u­men­ta­tion main­tain­ers didn’t expect. Infor­ma­tion about alter­na­tive solu­tions for access­ing remote ser­vices, for exam­ple, is pre­cisely the kind of thing Wikis work well at record­ing and pre­sent­ing. Var­i­ous alter­na­tive ini­tia­tives around the Python doc­u­men­ta­tion seem to have had all the hall­marks of up-front plan­ning and nar­row, pre­de­ter­mined meth­ods of con­tri­bu­tion which prob­a­bly cre­ate a queue of change sug­ges­tions with a bot­tle­neck sim­i­lar to what we already have, and leave peo­ple want­ing to expand the doc­u­men­ta­tion (as opposed to change small pieces of it) out in the cold.

    I’m one of the peo­ple who admin­is­ters the Python Wiki, and although I’ll admit that it could be bet­ter organ­ised, the pol­icy so far has been to tread lightly and not be too severe with the edit­ing. If I had a greater say in the python.org “assets”, I’d make a refined ver­sion of the Wiki front the whole site expe­ri­ence, drop­ping the dated and inconvenient-to-edit main site with its glacially paced changes and increas­ing sat­u­ra­tion of links to the Wiki. And I’m not really a Wiki advo­cate — I just remain baf­fled at the obses­sion that exists in var­i­ous quar­ters that Wiki solu­tions are “all very well” but there has to be a “proper site” fronting the whole affair with lit­tle con­crete jus­ti­fi­ca­tion for that position.

  • http://jessenoller.com jnoller

    I agree; it’s good to dis­cuss, and no — we don’t need to agree! That’s the beauty of things.

    1> Yup. I know you didn’t sin­gle licens­ing out; it’s a sen­si­tive topic for me, as I obvi­ously fall in the more-permissive-is-good-and-helps-me-put-bread-on-the-table group. Maybe you’re right; peo­ple will be more con­sumers than col­lab­o­ra­tors in a more per­mis­sive model, but as I said before, I wouldn’t trade that for any­thing. You have to pick one, and take the good with the bad. *shrug* Sure, there’s been plenty of GPL-and-the-like projects which are *huge* suc­cesses, that’s sim­ply unde­ni­able, but I don’t think it’s impos­si­ble to have great suc­cess with a more per­mis­sive license, see Free/Open/etc BSD for an example.

    2> Wikis are a tough thing. I firmly believe the only rea­son wikipedia is suc­cess­ful is because of strin­gent guide­lines, and a mas­sive staff of edi­tors con­stantly patrolling and ensur­ing qual­ity and fac­tual infor­ma­tion. Yes, wikis are good for a low-barrier-to-add, but that’s *also* the draw­back. A low bar­rier means a need for con­stant polic­ing. I’m not say­ing I don’t want peo­ple to col­lab­o­rate, but how much of the infor­ma­tion there is of good, high quality?

    3> I like your ideas around clean­ing it up, and mak­ing it a bet­ter user expe­ri­ence. I’d also like to add that adding links into the python doc­u­men­ta­tion which ref­er­ences wiki pages or some­thing which says “see wiki top­ics on xxxx” would make things a lot bet­ter too. For exam­ple a link in the mul­ti­pro­cess­ing doc­u­men­ta­tion that says “see addi­tion infor­ma­tion at wiki/python_version/multiprocessing/” or wiki/multiprocessing” where the top-level mul­ti­pro­cess­ing page had infor­ma­tion about all of the releases, and point­ers to more information.

    I’m look­ing for­ward to Georg and the GSoC project around the sphinx docs — I am def­i­nitely one of those peo­ple who prefers struc­tured, high qual­ity doc­u­men­ta­tion (ergo us dis­cussing it), but I am def­i­nitely pro mak­ing it eas­ier to con­tribute and find addi­tional information.

    I don’t know if you have the time, or the will — but maybe some­one does need to step up and vol­un­teer to be the BDFL (or a period shorter than life) for the python wiki expe­ri­ence, and be the one to unify/make the hard deci­sions. Some­times mak­ing those deci­sions makes you unpop­u­lar, but hav­ing a good, sin­gu­lar view does make for a more uni­fied experience.

  • http://code.google.com/p/unladen-swallow/ Collin Win­ter

    I recall one of the top­ics of dis­cus­sion at the PyCon Lan­guage Sum­mit (and I’m recall­ing now, at din­ner some days later) was the desire to get rid of the cur­rent python.org site archi­tec­ture and replace it with some­thing eas­ier to admin­is­ter. The bar­rier to con­tri­bu­tion to python.org is extremely high, even for those of us with com­mit access. Even a wiki-like sys­tem with edit­ing abil­i­ties locked down Google code-style would be a mas­sive improve­ment over the sta­tus quo.

    What ever became of that dis­cus­sion? I seem to recall Jacob Kaplan-Moss being inter­ested in actu­ally imple­ment­ing it. I should ping him…

  • http://thechong.blogspot.com/ John Cheng

    I’ve never heard of Rope before. I’ll have to add it to my todo list!

  • http://blog.russnelson.com/ Russ Nel­son

    Intro­spec­tion is the word you’re look­ing for, not self-awareness.

  • http://blog.russnelson.com/ Russ Nel­son

    Intro­spec­tion is the word you’re look­ing for, not self-awareness.

What's this?

You are currently reading A short list of things I don’t like about Python at jessenoller.com.

meta