2-3 weeks. That is apparently about how long it takes to reach the productivity inflection point with AJAX/Ruby on Rails/Javascript. After spending many a day stumped on various problems that seemed like they ought to be “minor,” I found myself today refactoring our most complex controller from top to bottom, fixing a couple bugs, and having the damn thing improbably work. Cool. Maybe there’s something to this language.
In seriousness, most all of this week’s interviewees have expressed considerable curiosity in how RoR differs from the other scripting languages, and why we chose it. I don’t know that I’m entirely qualified to compare it to “other languages” since my experience in both ASP and PHP has been purely C-like procedural goop written before I had OOP experience. Though that does hint at the first difference I can confidently draw between the three languages: whereas other languages tempt you at every turn to write ugly code, RoR takes MVC architecture and unit testing into its own hands to minimize the initial time penalty for writing clean code.
The database model conventions and migrations took some getting used to, but I am growing to appreciate them more as well. There is sense and utility in having a memory version of your class that mirrors the database version of the class. And it’s convenient to be able to quickly and easily commit a class instance in memory into its database counterpart. I have never even attempted to do that in another language, but I know that last time I used ASP it wouldn’t have been easy, and I imagine that is probably still the case with them.
I’m also very fond of the gem packaging system that is used to add plugins to RoR. Even with lowly DOS, installing a new plugin for one’s site is often as easy as “gem install pluginname.”
These are amongst the more superficial differences between the languages, but some of the easier ones to describe. It feels a little bit jurassic to be debugging with a console again after having used Visual Studio debugging, but it works and you get used to it. An applicant who I asked about PHP debugging wasn’t even sure if/what PHP debuggers existed, so I can’t imagine that the situation is radically better for PHP. Though I doubt it’s worse.
So, on balance, I’m giving a thumbs up to the advantages of RoR over the other languages we could have chosen. And this is after using it but a couple weeks. I’m very much looking forward to seeing what I can get done with it once I truly learn to start think like a Ruby programmer.