Python

Posted by Daniel Lyons Thu, 21 Sep 2006 04:27:30 GMT

I didn’t expect to say this ever again, but I have to say it: Python is good. Python 2.5 brings it back up to speed with Ruby. Plus it’s faster and it has the best web development environment on Earth. And SQLAlchemy rocks my socks.

Python 2.5 cool features:

  • Partial function application. Helloooo functional programming. :)
  • The with Statement: Feature parity with Ruby, one feature at a time.
  • Generators are now full coroutines
  • Conditional expressions a la the infamous ternary operator
  • Built-in SQLite

SQLAlchemy, glory that it is, is a full SQL abstraction layer, meaning pretty much any SQL statement can be implemented just by calling functions in Python without handing over any raw SQL, and then on top of that you get the most flexible object-relational mapping system I’ve ever seen. Goodbye meaningless auto-incrementing IDs, hello sexy object relationships in the database with meaningful primary keys.

Pylons I can’t even begin to describe the excellence of. In short: it takes everything good from Rails and improves it. It uses WSGI throughout, which means it’s shockingly flexible: replace the template system, the backend web server, or anything in between and reuse everything else. The excellent Routes library borrows Ruby’s routing system, and the superb FormEncode makes validation quite simple. In the near future FormBuild will make it so that I never have to make a form by hand again and AuthKit will abstract out all authentication/authorization problems. It rocks in every way Zope wants to but can’t.

Enough free advertising. Thanks to Ben and James and everyone else for implementing an excellent framework! May it hit 1.0 soon!

Tags , , ,  | 1 comment

Comments

  1. Avatar Bill Weiss said 1 day later:

    The Dan shell script:

    while /usr/bin/true
    do
      sleep 30d
      post_to_blog "$RANDLANG is really nice!  It's much better than $PREVRANDLANG" 
    done
    

    Previous incarnations have used $RANDOS instead of $RANDLANG

(leave url/email »)

   Comment Markup Help Preview comment