Why I like Django
People around me know I am a big fan of Django. Back in the day, when we were young and Django was still in its 0.9x'ies, I tried it because of two reasons:
- I learned myself python and liked it because it was easy, powerful and fun (higher order functions are your friend)
- I hated webdevelopment so much, but recognised the fact that - if done properly - it was kinda cool, so I needed tools to make my frustrations go away.
Now, a good two years later, I am still using it daily. My frustrations are still here, but they are focused on the truly hideous things webdevelopment can offer: JavaScript-compat and customers ;-). The rest of them have gone away basically.
Is Django such a wonder? I think these kind of web frameworks in general are pretty much the way to go, but one part of Django sticks: If you don't like it, hook in your own code and do it elegant, because Django probably will support the hook. Otherwise, svn up again in a few months O:). Or build it yourself and send it in. Need better, almost invisible, fine grained rights? Hook in the ORM and extend Model to the point it does your bidding. Need your own widgets? Build them! Need an extra mechanism to automatically switch between http and https? Build some middleware!
True, these things require you are familiar with the design, but it ain't that hard and the really cool thing is: if the always growing docpages don't answer your question, reading the code is not a punishment. It is a rather nice place to learn some new tricks, find some undocumented^W hidden features or learn more about the design. And while you're there, fix the bug if you find one O:)
Django's design has often tempted me to make some magic for some trivial task, but I always come back to the original design. It is not push-button, but it is a really powerful tool to build applications and sites. I truly hope the good work done up to this date and the good spirits of the django-community will continue into the future.