Web Development with Less Pain
Like most people who do web development work I’m constantly on the lookout for better, faster, easier ways to get my work done. Not just done, but done in a way that can be tested, maintained, and enhanced. I’ve tried numerous methods/frameworks in the past and even written a few special-purpose ones of my own. I’ve been doing web development for about a decade, so I’ve obviously found a way to make it work.
That leads me to about six months ago, when I started looking into Ruby on Rails (RoR). I’d been looking into MVC style development for a while and RoR is the most prominent of the MVC frameworks. There is documentation coming out of the proverbial wazoo as well, though I question the quality and completeness of some of it. Two other things discouraged me about Ruby. First was it’s speed at runtime using built-in tools.
I’ve never been much of one for building software that’s “big enough for now” because that will invariably mean a future rewrite at a time when you don’t have that kind of time. When looking at Ruby I just got that “you’ll redo it later” feeling. That’s not to say people don’t use Ruby successfully every day, and my uneasiness wasn’t a deal breaker.
The deal breaker for me was simple. I found an MVC style framework that didn’t require me to learn a new language. While RoR is wonderful, it’s nothing without the Ruby. Ruby is a language I don’t already know. Gaining proficiency in another language is something I don’t undertake lightly.
The framework I found was called “TurboGears”. Thankfully, after a graciously short introductory period with TurboGears, I found Django. The fact that both of these use the Python programming language is of great interest to me since I already use and know Python.
Django is sort of my perfect storm. It’s BSD licensed, adheres to the DRY principal well, and isn’t a mash-up of third party options. The places it’s deficient it goes ahead and owns up to it instead of trying to bolt on someone else’s product.
It also doesn’t commit the ultimate sin of trying to remove the HTML creation from my hands. To this end, I’m a believer that AJAX work ought to be done by hand as well. It’s 2008 guys, it’s time to learn ECMA script and how to handle the DOM.
This has gotten a bit wordy, I may expand later on things I’m enjoying about Django. For now just check it out for yourself:
You can also check out the free book, authored by the two primary Django authors: