Home > DemoCamp > DemoCamp5 Redux

DemoCamp5 Redux

April 26th, 2006

The University of Toronto hosted DemoCamp 5 last night. It went well: 143 people showed up, the Bell Kids Help Phone team gave a fault-free presentation, and the folks at Molly Bloom’s took good care of us afterward (so good, in fact, that I’m going to let people who don’t have hangovers cover the details).

The most interesting part of the evening for me, though, came when I asked how many people were using Ruby on Rails, and almost half the hands in the audience went up. Afterward, Blake Winton asked me why the university was using Python instead of Ruby for teaching. Like me, he’s a long-time Pythoneer; like me, he thinks that educators have a responsibility to prepare students for the real world. I mumbled about Python not having dollar signs, about there being more books (although if even half the projects I know about come to fruition, that is going to change in the next 12-18 months), and about us already having developed lots of course material that we can’t afford to rewrite. It was a clear choice three years ago, but today? I dunno, and the fact that I don’t is why I’m still going on about this.

But enough dark clouds: 143 people had a good time last night, lots of useful new connections were made, and Joey played his accordion. It’s a good life.

DemoCamp

  1. Paul Boddie
    April 26th, 2006 at 11:34 | #1

    I think for years the Python community worried about whether Python would become mainstream, yet the core community doesn’t seem to have realised that it is mainstream in many respects: look at the Free desktop stuff to see that Python is often the dynamic language of choice; see Python used frequently under the radar in many commercial products. Meanwhile, the core seem to be preoccupied with adding more to the language in order to out-”innovate” various competitors (who don’t even have proper Unicode support and use early Tcl-era runtime technology), soothe their LISP-envy, bury alternative implementations (eg. Jython) under a mountain of PEPs, and to make any books in the pipeline obsolete before they get to print.

    I can see why you’re bothered: core Python development should be focused on making Python more accessible, more stable, more standard, and more useful for the areas in which it hasn’t yet established itself. Of course, all that makes it unsexy to the bandwagon hoppers both inside and (as you note) outside the Python camp.

  2. Martijn Faassen
    April 26th, 2006 at 11:36 | #2

    a) possible in the first place. People do their own stuff. Why do you think competing with Ruby on Rails will get us not *more* frameworks, instead of less? Or do you really think everybody will agree on the way to go all of sudden?

    b) not overreacting. Ruby on Rails has got hype, it’s something that competes with other web frameworks such as those written in Python, but in the realm of web applications Python has a huge presence. For instance, we’ve got a number of *major* content management systems written in Python (just check out the Zope world).

    faassen@infrae.com
    I haven’t understood yet why you think a concerted response to Ruby on Rails is:

    a) possible in the first place. People do their own stuff. Why do you think competing with Ruby on Rails will get us not *more* frameworks, instead of less? Or do you really think everybody will agree on the way to go all of sudden?

    b) not overreacting. Ruby on Rails is cool, it has got hype, it’s something that competes with other web frameworks such as those written in Python, but in the realm of web applications Python has a huge presence. For instance, we’ve got a number of *major* content management systems written in Python (just check out the Zope world). And here we’re not even talking about applications beyond the web, such as science or games.

    c) worthwhile. So the Python world decided we’re not overreacting and we’ve magically unified and developed “Python on the Highway”. Do you really think that can compete with the hype-momentum Ruby on Rails has got going? I don’t think so. The only way Python could get equivalent hype-momentum is if someone inspired does something new, not as a response an the existing system.

    Ruby is a nice language, and there’s a competition going on with Python, especially in the realm of web applications. But to state that thanks to one new system on the block in the last year Python is suddenly becoming irrelevant as a programming language is rather odd.

  3. Martijn Faassen
    April 26th, 2006 at 11:40 | #3

    Paul Boddie: agreed with your uneasiness about core developers changing the core language.

    Then again, some of the stuff going on is quite good – we finally are getting a reasonable package management system ala CPAN for Python.

    And whenever they do change the core language I do find myself using the new features, so perhaps we’re just stodgy conservatives. :)

  4. Greg Wilson
    April 26th, 2006 at 11:51 | #4

    I think there’s strong evidence that whatever a lot of schools use for
    teaching is very likely to become a mainstream language five or ten years
    later: Pascal, C, C++, and Java are examples (Scheme and Modula-2 are
    counter-examples). There is growing dissatisfaction with Java as an intro
    teaching language (esp. now that 1.5 has added more complexity); I believe
    there’s a significant chance of a big shift in 2-3 years. I’d like it to
    be to Python, but right now, if you ask a crowd of 25-35 year old nerds
    what’s cool, “Ruby” is a more likely answer, and that’s definitely going
    to be an influence when decision time comes.

  5. Paul Boddie
    April 26th, 2006 at 12:40 | #5

    Martijn: you’re right about Zope and derivatives being a major success, but whether that’s really a success for Python has long been debated. As someone said recently, when one chooses Zope for a project, one is frequently “writing Zope rather than writing Python”. One interesting observation will be whether Rails is as distinct from Ruby in a couple of years.

    As for conservative thoughts on the core language, the continuous stuffing into the language of nice but not necessarily essential features makes the job of people like Greg harder. Sure, there’s an opportunity to write a book on Python and to actually provide definitive documentation about the new object system, metaclasses, and all the other stuff which has arrived in the language without also arriving in the documentation (noting that essays don’t count), but I don’t think it’s a coincidence that there doesn’t seem to be that many core Python books in the pipeline – I know I wouldn’t bother writing or publishing one given the current situation.

    But here’s a thought: at some point Ruby will have to reach 2.0 in order to improve its runtime, add support for Unicode, and to remedy all the other things buried beneath the hype. Just as we’ve seen in the Perl 5.x to 6 transition, this could stop that bandwagon in its tracks. In contrast, Python is relatively mature and doesn’t suffer from many of the more divisive technical shortcomings of those other languages’ implementations, but this is where Python 3.0 could really be an own-goal: instead of building on the things Python does well, the core developers could spend time pontificating about issues which don’t really matter, breaking backwards compatibility for the sake of it whilst not introducing compelling features to compensate.

    Perhaps Python’s situation will eventually mirror Zope’s: lots of people using release 2.x even though it is regarded as being obsolete, release 3.x not really winning over anyone who didn’t like release 2.x, eventual backporting of 3.x stuff to 2.x just to keep people interested. Or perhaps Python 3.0 will just seem like Python 2.9 with a lot more deprecation and runtime warnings.

    Either way, the core developers should be soliciting feedback from people somewhat beyond the wishlist-fest that is the Python-3000 lobbying, erm, mailing list.

  6. Nicholas Piƫl
    April 26th, 2006 at 15:36 | #6

    I understand your fear of Ruby. It’s a train gaining a lot of momentum thanks to the hype caused by Rails and lots of people are jumping on. But i really think that when people look past the hype there isn’t that much to be afraid of. Except maybe for the Ruby people to see their bubble bursting as most of its users have a specific interest (whereas the interest in Python is really broad and divers).

    Python is superior to Ruby (imho) it has much more (excellent) libraries, it does have unicode support, the syntax is easier to learn and understand for a complete novice and it is probably one of the fastest dynamic programming language. And the speed prospect of python is really looking great by everything the PyPy team has already achieved.

    But besides my biassed opinion i see lots of (academic) people around me switching to Python to implement there algorithms instead of using Java. And why shouldn’t they? It is almost as easy as copy-and-paste pseudo code from a text book into the interpreter.

  7. Blake Winton
    April 26th, 2006 at 19:54 | #7

    I’m kind of with Greg on this one. I’ve been using Python for quite a while now, and it seems to be stagnating, somehow. Not the language itself, but maybe the discussion about the language?

    Don’t get me wrong, I’m happy that I can get to work in Python for some of my day job, and it kicks Java’s ass, but it doesn’t seem to have the cool-factor that it did when I started out. “Hey, check out this new language! It’s, like, the opposite of Perl! And Whitespace Matters! It’s insanity!” These days, it seems more like “Oh, yeah, Python. Have you seen my new Rails app?”

    (I have, of course, switched to Objective C, ML, Haskell, and Scheme, in that order. (I did read a couple of Ruby books, but Ruby just doesn’t fit my brain. I don’t want two different methods that do the same thing. I don’t want other people adding stuff to my classes. I don’t want to wear out my shift key just to type variables.) None of them for real work, and only Scheme made it on to my Palm TX. Maybe that’s it. Maybe I just want a version of Python that runs on my Palm. How hard can it be? Really? It runs on Nokia phones, and I’m reasonably sure the TX is more powerful than one of those… (I’ve tried. It’s either really hard, or I have no talent for cross-compiling. Probably both.))

  8. Geofrey Flores
    April 26th, 2006 at 20:16 | #8

    Here’s an interesting article that I’ve dugg on, well…digg.

    beust.com/weblog/archives/000382.html

    I’ve been curious myself on ROR and I want to try it over during summer. Any beginner articles that you guys could point me to would be great.

  9. Paddy
    April 27th, 2006 at 02:35 | #9

    Why use Python rather than Ruby for teaching?
    If you were teaching a course on writing Web applications that are easy to do in RoR type programs, (such as Django), then you might want to consider it. If, however, you have to teach more than that, then Ruby does not have the libraries, the Internationalization, (so I have read), or the easy maintenance capabilities of Python. Docstrings and Doctest in Python, (try the Wikipedia entries for info), Allow you to write more maintainable software with the tests embedded, almost like literate programming.
    The language does change, but what others see as a lack of change i see as developers not tinkering for tinkerings sake. Take time to make the right decision and then it is easy to stick with it.

    - Paddy.

  10. Martijn Faassen
    April 27th, 2006 at 05:07 | #10

    As far as I can see, Python 3000 is mostly itch-scratching by the core developers, especially Guido. It I think this started because Guido thinks he has the time now to pay attention to it. Itch-scratching makes for great motivation for open source projects.

    Whether Python 3000 is what the Python community needs is another question, and we’ll presumably start to find out in the future. It isn’t possible to stop an open source programmer from scratching their own itch though, so I’m not sure a debate about it with the core developers would be useful at this stage.

    Do we have examples of popular programming languages breaking their core semantics drastically with a new version, so that old code doesn’t run anymore?

Comments are closed.