Today I got into a conversation on Twitter about Rails versus Django. I know that I have blogged about this before but I thought that I should maybe clarify my reasons for preferring one over the other.
Before I start, I must confess that I did not use Django that much and it was also in my beginning stages of web development so bear that in mind as you read this.
I came from Python where I first learned it for geoprocessing to use with ArcGIS. Now using Python (which is installed with ArcGIS) for geoprocessing inside of ArcGIS is easier than natively. For example, there is a UI for forms to define what fields or data types to use. Python for geoprocessing is very well documented and is very easy to use.
I soon found out that I was very limited are far as functionality goes using Python "inside" of ArcGIS. I looked at options for creating desktop GUI's and found that wxPython was the easiest for me to use to accomplish what I wanted to do. I have several posts regarding this stuff in my archives so I will not repeat myself.
On to web development…
At my old "job" we had an app written in Ruby on Rails and that was my starting transition to web applications. I started by creating Python interfaces for desktop applications to interact with our RoR web application and then started to assist on the web application itself. This piqued my interest. I had taught myself Python so why not learn Django?
I other posts I have commented that the best place to find help learning a new programming language is to go to user groups. In Arizona there was not a Python/Django user group. I found via Twitter a couple of local guys that were Django developers and met with them at coffee shops to try to learn from them and I greatly appreciated their assistance.
It was the learning at home, alone, that was not successful. I found that there was not a lot of training "materials" online for Django. Do not get me wrong, there is a lot of stuff on the web to help with learning Django but a lot of it is just as confusing as Django is. I even went as far as trying to start-up/re-incarnate a local Python group which was not very successful.
Enter Ruby user group…
I found out that there was a local Ruby group and a local Rails group. I went to my first Ruby::AZ meeting. I was at a transitional stage where the separation between the Ruby group and the Rails group was diminishing and morphed into what it is today; Ruby and all things Ruby.
I found the support group I was looking for. There were so many Rubyists that were happy to point me in the right direction and to help me when I needed it. The resources for learning RoR are phenomenal. My still all time favorite and a major reference guide for me is Railscasts.com.
I then met @m3talsmith with RebelHold and he took me on as an apprentice. The rest is history. I now have my own company Rebel Outpost which is a member of the RebelHold family.
Django or Rails?
In all fairness, I prefer Rails as I was able to learn it. That does not mean that Python or Django are bad languages at all. I also cannot say that Rails is better than Django but I do love Rails.
Ruby is so clean and elegant to read and write but lacks the whitespace-ness (is that a word?) that Python has.
So I hope that clarifies my love for Rails over Django………