Tornado 2.1 released

  • Tornado is intriguing, but the main thing I don't like about it is how it reinvents the wheel with a lot of its components. For example:

    - They created a lot of Web-stuff parsing code themselves, when Werkzeug provides a tested and thorough implementation of a lot of that. (Especially routing, regex-based routing just looks horribly kludgy once you have used werkzeug.routing.)

    - They created their own template language when they could have used Jinja. (In fact, tornado.template is basically a half-as-powerful copy of Jinja.)

    - They created their own database access layer when they could have used SQLAlchemy instead.

    Sometimes I think people take the concept of "minimal dependencies" way too far.

  • 90% made up my mind to use Tornado for several upcoming projects, would love to hear some comments (good or bad) from anyone thats used it or using it.

  • Coming from php(mvc background), the only thing i don't like about tornado is that basically you have a Class per request, currently i'm in a process to refactor this so that:

    www.site.com/controller/action/params/?vars -> would route to ->

    class controller(requestHandler):

        def get_action(self, *params, **vars):
            #do something
            self.write(response)
        def  post_action2(self, *params, **vars):
            #.... and so on ....

  • For a multiplayer, realtime, text-based game, like a quiz, should I dive in nodejs or Tornado?

    I know Python but never played with server-side javascript before.

  • I'm especially looking forward to trying the new interface to Twisted and the gen module. I was about to write some async interfaces to things that are currently not - these new modules look like they'll be helping me out quite a bit.