Today was day 1 of PyCon 2007. It started with a talk by Ivan Krstić which I
can only describe as inspiring. Ivan works for the One Laptop Per Child (OLPC)
project and he described the focus of the project, its current state, and its
heavy reliance on Python. With the exception of a few low-level components,
the OLPC laptop is built entirely using Python. It was inspiring to hear the
desire of this group to provide such a tool and an opportunity to those who
would otherwise have missed out. It was also inspiring to hear Ivan speak of
overcoming "impossible" barrier after barrier. I would recommend anyone who is
able and willing to support this project with their time and talent to visit
the OLPC website
and look for a spot to
The next session I attended was "Writing your Own Python Types in C" by Jack
Diederich. This was a good overview of porting Python code to C code and using
Python's C API to do so.
Following the talk on Python types in C, I attended "Parsing revisited: a
grammar transformation approach to parsing" by Ernesto Posse. Ernesto walked
through his project aperiot
From the website, "aperiot is a grammar description language and a parser
generator for Python. Its purpose is to provide the means to describe a
language's grammar and automatically generate a Python parser to recognize and
process text written in that language. It is intended to be used mainly for
programming and modeling languages." What I found particularly interesting in
this talk was Ernesto's quest to trim back the parser to make it more
efficient while removing redundancy and ambiguity.
Next, I attended "Using Stackless" by Andrew Dalke. I would classify this talk
as enlightening. I knew very little about Stackless before attending this
session. The general idea is that stackless can be used to accomplish
concurrent programming without resorting to threads. Stackless tasklets
correspond to threads and Stackless channels correspond to queues. I'm looking
forward to Christian's talk on Stackless on Sunday.
Next was a talk by Ian Bicking on WSGI. This is another topic which I've
learned a little about, but never dug into very deeply. Ian did a great job of
giving an overview of this protocol.
Following up the WSGI discussion was the much-anticipated Web Frameworks Panel.
On the panel were Kevin Dangoor of TurboGears, Jonathan Ellis of spyce, Robert
Brewer of cherrypy, Duncan McGreggor of nevow, Jim Fulton of Zope, Adrian
Holovaty of Django, Ben Bangert of Pylons, and James Tauber of pyjamas. There
were a few tense moments, but overall, these guys played very well together.
After the Web Frameworks Panel, I attended a talk on Sony's use of Python in
their Imageworks division. It's always interesting to hear how other companies
are using Python, especially when the result is as cool as Spiderman 3.
Jim Baker delivered the next talk I attended. It was entitled "Iterators in
Action" and it was fantastic. I wish Jim had been given another half hour to
get into some of the other topics he had prepared, but alas. Maybe next PyCon.
The last session I attended today was "The State of Python Advocacy" by Jeff
Rush. This talk showed the passion of the Python people to promote their
language of choice. This was clear both in Jeff's presentation as well as the
questions and comments at the end of the session. It seems that things are
brewing to facilitate enlarging Python's borders. I definitely welcome that.
I can't wait for day 2. More later.
|Aaron 'Teejay' Trevena
"The last session I attended today was "The State of Python Advocacy" by Jeff Rush. This talk showed the passion of the Python people to promote their language of choice. This was clear both in Jeff's presentation as well as the questions and comments at the end of the session."
You mean there is more to Python Advocacy than trolling on slashdot (powered by perl, and running for a decade) and other places? ..because I haven't seen it.
I'll share my perception of the Python community with you, from what I've experienced - so far I've seen slashdot pondlife repeating myths that were wrong a decade ago (let alone now) and PHP converts who find C-like languages too hard and don't understand things like SQL Injection, and most of the contact with them is when they are trolling about why other languages suck.
So what is the state of Python Advocacy? because it's not looking too nice from the outside - in fact that put's me off more than the whitespace wierdness at the moment.
Are python advocates reaching out to the Parrot dev project, which will provide a far better VM than the java one?
What about promoting the benefits of dynamic languages in general, after all Perl, Python and Ruby still share a small proportion of the job market between them, and people who try one dynamic language are likely to try or learn others, as they're much quicker and easier to learn than Java or C#.
There are about 20 Perl User Groups in the UK, compared to 1 Python User Group, so maybe it's time that Python advocates reached out to say and do something constructive instead of the current childish zealotry.
Advocacy? Really? I don't see it anywhere I go. I see more of the Python folks blasting the other Python folks that are doing different things than they are. You mentioned a "few tense moments". What the hey, it is all Python and they should all be excited that Python is being used for any projects and not just "theirs". I know the Myghty programmer was highly miffed when Guido dissed his framework and it is a really good framework. At least the Pythonistas don't blast newbies as much as the Perl folks do so that is something.
|Aaron 'Teejay' Trevena
"Advocacy? Really? I don't see it anywhere I go"..
Right, maybe you don't read any LUG or web development mailing lists, slashdot, reddit, digg, etc.. because anytime Perl is mentioned they crawl out of the woodworm in droves.
right before producing another ancient myth..
"At least the Pythonistas don't blast newbies as much as the Perl folks do so that is something."
Ooh, another old myth.
The perl community provides a beginners mailing list for asking questions, shedloads of reference material and FAQs, plus there are specialist mailinglists for every significant Perl application and library, all of them welcome beginners.
Even London.pm hasn't flamed any newbies, and we've got our share of old school BOFHs.
I really don't know how to respond to your comment(s). I can only tell you that I among the Python folk that I know, there is much more tolerance than what you're talking about. I'm sure there are plenty of Python zealots blasting everything not Python anywhere they can. But I don't believe that's the face of Python advocacy. Python advocacy is about encouraging the use of Python, facilitating community, and providing good documentation to ease access to the language.
It's interesting that you said "What about promoting the benefits of dynamic languages", because similar words to those came out of Jeff's mouth at the Python Advocacy talk which started this thread of conversation.
It saddens me that there are people out there who are so intolerant of other languages. I embrace the diversity. If you've read my blog for any length of time, you know that's true. But I really believe that the Python community as a whole is more tolerant than you're giving it credit for.
The tense moments came from two comments from one person on the panel who made rude comments about two of the other frameworks. I've talked with developers of a few of the frameworks and have been reading their blogs as well. The thing that keeps coming back to me as encouraging is that even though some of them have a totally different implementation and philosophy, there is much more respect and tolerance among them than enmity.
@Aaron 'Teejay' Trevena
Um, newbies are frequently blasted on the newgroups. There was even a recent talk given that started off by saying "Stop being f***ing mean to newbies". I use Perl all the time by the way. I frequently talk to Ovid and brian d foy. So it is not "another old myth". I frequest those sites by the way and "I" do not see much advocacy for Python as much as Perl bashing by people who do tend to bring up "old myths" and I tell them so.
I usually have to go to Python specific places on the net to read up on what Python is doing. Python very rarely is mentioned on Java related sites while Ruby is being praised there. So I don't have to go anywhere to see Ruby "advocacy". So maybe it is what my perception of advocacy means.
|Aaron 'Teejay' Trevena
Yes, occasionally newbies get a roasting on the c.l.p.m newsgroup and I think you'll find that most usenet is the same - but that doesn't mean the community is unfriendly - like I said, most of the community has been working hard through the projects I mentioned, and problems like you've mentioned are being worked on, as you yourself said.
I think most contact newbies have with the Perl community is very postive and that the unfriendlyness is a myth, a couple of flames on an ancient newsgroup don't reflect the community at all.
You are of course right that the trolling zealot's aren't exactly advocacy, but I'm afraid that's pretty much all I see of Python, being rather myopic in my focus on Perl.
There seems to be something about 'Frameworks' that brings the rivallry out of people - Maypole and Catalyst had some mud thrown around (almost entirely in one direction by a couple of individuals who have now moved on from both projects fortunately).. I hate to say it but I've seen worse trolling from framework devotees than language devotee's *sigh* - at least we can all agree on disliking the Rails fanboys ;)
Speaking of frameworks - it's a shame Django didn't have a team in the web framework bakeoff in germany recently - oddly neither Python nor Ruby could put forward three teams, so it was just Java, PHP and Perl.
Aaron: "You mean there is more to Python Advocacy than trolling on slashdot [...]"
I guess that's the ESR fanboy brigade, but few should be looking to Slashdot for direction or education, anyway - it's the traditional melting pot of misinformation, flaming and trolling around technology.
Aaron: "So what is the state of Python Advocacy?"
Well, there are a few initiatives (see here - http://wiki.python.org/moin/Advocacy - if you're genuinely interested), but I'd like to see a bit more of a concerted and coherent advocacy effort, with more participation from the main figures in the community. That's one of the problems in my view: the most visible figures seemingly tend to distance themselves from the non-technical aspects of popularising the technology.
Aaron: "Are python advocates reaching out to the Parrot dev project, which will provide a far better VM than the java one?"
Has there been interest in running Python on Parrot? Yes, but many people are skeptical as to the eventual performance of Parrot, and Parrot has been a work in progress with (for a time) a certain level of uncertainty about whether people would keep working on it. I'd be surprised if it outperformed existing VMs with just-in-time compilation, mostly because trends in virtual machines have shown that reducing the instruction set and doing less magic lead to increased performance, whereas the Parrot people seemingly wanted to support all sorts of semantics using lots of different instructions - a strategy that could be labelled "compiler averse".
Robert: "I see more of the Python folks blasting the other Python folks that are doing different things than they are."
Yes, I've had conversations with people who've been quite condescending about other people doing similar projects: on the one hand it was a technical knee-jerk reaction (a "this guy is wasting his time" sentiment when "this guy" is actually highly likely to know a lot more about the subject in question - an observation that would have come about had the person making the statement read any of the talks or code concerned); on the other it was a classic social write-off statement (a "this guy has an attitude" sentiment, the only evidence for which being that "this guy" just happens to be working on a different project with only a certain level of overlap with the pet project of the commenter).
I think the "gentle infighting" is one of the big problems behind Python advocacy/marketing. People often choose to work on different projects doing the same thing and try and justify that from a technological perspective (I called this "advocacy dressed up as methodology" not so long ago), with only occasional friction because people actually spend more time ignoring others than rubbing them up the wrong way. It's good to see some of these people finding some common ground, however, but any attempt to grow the market is usually a unilateral thing. For example, the Django people have done well to appeal more widely (you even see people writing "OMG, Rails is just like Django"), but there's less interest in people getting together and sending a similar message to promote Python more broadly as a strategic Web technology - I suppose it isn't as much fun sharing the limelight, after all.