Switching from Rails to Django
So back in the Fall of 2005 I launched (/posts/2005/aug/15/bejeweled/) my foray into the world of Rails like every other designer wannabe programmer. I’ll be honest, I did it because everyone else was. Looking back I don’t really know why, I just followed the “if it feels good, do it” principle.
Out of that decision grew a love/hate relationship. I’m primarily a designer but I like sticking my hands in the programming cookie jar. I appreciate things that just work, offering few opportunities for me to unknowingly screw something up. Looking back, most of my time was spent developing admin tools, troubleshooting 500 errors, and deployment. For some reason I accepted this as the norm, and to some degree, enjoyed it. It was like tinkering with a train set (no pun intended). Until I saw a job posting (http://www2.jeffcroft.com/2006/may/26/designer-wanted/).
World Online was seeking a senior designer to lead its commercial projects. I was interested but it meant no more Rails and I’d have to gain a fundamental understanding of Django, a Python web development framework. This intrigued me. I remember hearing whispers of Django at SXSW in March. I knew there was no way I could seriously apply for the job if I didn’t believe in Django as I did Rails.
After two weeks and with the aid of some great online documentation, I released (/posts/2006/jun/26/80x80/) a new personal site. I was sold, and not just because there was a carrot dangling in-front of me. Realizing I would never have to make another admin tool allowed me the exhale and start dreaming up better designs, info-graphics, API usages, and relationships between content. Django was an instrument that, with little instruction, I could enjoy playing.
It’s been little over a month and I’m still playing. So far, Django has kept a steady beat. No more 500 errors, no more building admin tools, and it’s freakin fast. It should be noted that I have no ill feelings towards Rails. It’s a great framework but the benefits Django offer me, as a designer, are just too great. Plus I took the job so I have to use it :)
For those of you wanting to make a similar switch, I encourage it. Here are some resources that may help:
- Django overview (http://www.djangoproject.com/documentation/overview/)
- Writing your first Django app (http://www.djangoproject.com/documentation/tutorial1/)
- Django for non-programmers (http://www2.jeffcroft.com/2006/may/02/django-non-programmers/)
- Are you generic? (http://www.wilsonminer.com/posts/2006/may/10/are-you-generic/)
- Setting up Django on Dreamhost (http://www2.jeffcroft.com/2006/may/11/django-dreamhost/)
The Django community is very welcoming. The online documentation is well written and oddly fun to read. I gained a lot from looking at the actual Django website code (http://code.djangoproject.com/browser/djangoproject.com/django_website) and listening in the irc channel (#django). It’s also worth reading the philosophy (http://www.djangoproject.com/documentation/design_philosophies/) behind Django.
The popular decision isn’t always the right one. This is pretty obvious to most. I think Django Reinhardt said it best, “Jazz attracted me because in it I found a formal perfection and instrumental precision that I admire in classical music, but which popular music doesn’t have.” I believe Django (framework) lives up to this perfection and precision Mr. Reinhardt speaks of.