I have to to tell this story backwards so bear with me.
Yesterday, I watched something that was surprising, amazing, and inspiring all at the same time. It was a video of the making of an entire Wiki, from scratch, in only 20 minutes. Mind you this video was produced by a developer that intimately knows his development environment, but it was nonetheless amazing to just sit and watch the thing evolve in front of me and not get bored in the process of watching it. The video introduces a brand new web application framework called TurboGears.
I guess I'm a bit behind on the times, because I thought plain, vanilla, PHP was pretty cool stuff. It's what I've almost always used for developing web-apps, in both commercial environments and on my own personal time. I had heard of Zope before but until recently had never really considered it much more than an alternative on par with PHP. Enter Ruby on Rails. Until earlier this year, I didn't even know what Ruby was let alone what an MVC was. Ruby on Rails (RoR) is essentially the next big thing, a higher abstraction, in developing web applications. Everyone, everyone but me that is, has been talking about Ruby on Rails... but somehow it completely slipped me by.
Go back a little further in history..
In August, I stumbled on a very unique website called the Python Challenge. It is a site with a series of progressive riddles for (python) programmers. To summarize, it is very addicting. If you haven't tried it, go there right now (warning: if you're at work right now, you might not get back to it today). If you are a programmer (of any skill level) or just happen to like a good puzzle, this web site will challenge you for hours and days and even weeks. I started dreaming of these problems and possible solutions. The Python Challenge litterally tought me how to program Python in about one week. This is in part due to Python being a simplistic (yet oh so powerful), highly abstracted (that means you don't need to know much about computers folks!), well designed language. This is also due to the fact that the Python Challenge seems to cover almost all of the Python Standard Library. Instead of reading through a Python book from front to cover, the Challenge forces you to read certain portions of the documentation in order to solve the puzzle at hand. Then the next puzzle does the same thing for a different part of the documentation. By the time you've gone through ten or so of these puzzles you'll realize that you've read things that you probably never would have read without the motivation, or possibly you just would have skimmed over it without realizing it's significance. But since you were essentially forced into reading it and actually put it to use, you realize it was worthwhile after all and will know to use it again when the opportunity arises. I have since tried to incorporate as much Python into my work and my studies as possible and have found it very rewarding. Suffice it to say, I love Python!
Now, this probably sounds pretty non-coherent by now, if not totally unrelated to the first part of this post, but trust me, I told you all this for a reason. Shortly after reading about Ruby on Rails, and realizing the magnitude of it, while at the same time not relishing the thought of learning Ruby, I googled for "Python on Rails" and came across TurboGears. Now I found something I could really get excited about: a next-generation model for designing and implementing web applications that for all intents and purposes seems just as powerful as Ruby on Rails and just so happens to also be in a language that really excites me. I haven't gotten very far in doing anything with it yet (school and work is a little overwhelming right now) but before seeing these two things together I had almost deemed web development boring.. I never would have thought that it could be this fun again!