Python Web Development
And again the situation where I start hating python for some problems which basically have nothing to do with python but with so many other problems that my mind starts exploding :)
There is a huge amount of python frameworks out there. But not a single one does what i want...
django
pros
- active community
- very good documentation
- widely used
- easy to use orm
- automatic admin panel
- cool template engine
- working form validation
- i18n
cons
- orm very limited
- admin system limited
- not deployable
- no unicode
TurboGears
pros
- active community
- supports sqlalchemy
cons
- not deployable
- no admin panel
- i hate xml template engines
- a huge amount of dependencies
- just formencode for i18n
pylons
pros
- bound to wsgi
- sqlalchemy support
- deployable
cons
- no working unicode support
- no i18n that works for me
- sqlalchemy needs a lot of hacking until it works
I think I'll stay with django for websites I want to use for presenting some data. Eg: projects, websites etc. And my own colubrid module for applications i want to deploy. Always when I start working on something I have to find out sooner or later that I hit a wall with my requirements. Looks like nearly nobody uses unicode, looks like i18n is for most webframework developers a stupid abbreviation for stuff nobody uses. If if they start implementing unicode or i18n they stop at the point where unicode/i18n starts being complicated (plural forms, charsets, combined unicode characters, urlencoded parameters, form data, internationalized error messages/form validation errors, date/time/string format methods etc.)
And I think it's not a problem of a framework. IMHO it's impossible to write a framework that does everything. It's still the best to just use a thin wrapper between WSGI and your application and implement your stuff on top of it. In case of pocoo that's i18n, l10n, unicode support, plugins, request dispatching and database layer. That doesn't meant that you should ignore existing packages but carefully select if a module does what you want to do. According to the ohloh statistics we wrote pocoo already 5 times :D So we basically know what it means to have code that hits a wall because we hit many walls on our way to the perfect web application. If you want to write a really great one, you can't just cherry pick from existing solutions without sticking them together so that they feel like they are made out of the same material.
All-in-one solutions don't work. Neither in real life (media pcs can't replace my dvd player, a psp not my nintendo ds + ipod and a smartphone not my mobile) nor in the world of web applications.
</braindump>