I have been a C# developer and a Java developer and I have run both C# and Java teams. When I was recruiting, particularly in the Java domain, I would find myself wading through mind-boggling arrays of acronyms and frameworks listed on candidates’ CVs. It was often difficult to gauge if some or all of a candidate’s technologies were relevant to our own particular platform (or indeed whether the candidate was actually proficient in any of them). Variety is often the spice of life, but sometimes it is counter-productive.
I am hopeless at making decisions, so the thought of choosing a web technology stack to learn from scratch was daunting. Plus, I was not looking for even more terms to litter my own CV. There were many options (and attractions); PHP-based (Drupal), Java-based (Groovy), .Net-based (ASP.NET MVC, Azure) and more. As I investigated each one, I found myself tumbling down yet another rabbit hole; lost in myriad browser tabs.
Then I investigated Ruby. As a C# and Java developer, I found the expressive power of Ruby fascinating and the structure of the language very refreshing; but that wasn’t the killer feature. There are many Ruby resources out there, sure; but if you are doing web development on Ruby, then you use Rails. End of. That’s what clinched it. I didn’t even have to make a decision.
The next daunting challenge was to get Ruby on Rails running on my machine. I’m not particularly hardcore; I’ve never been one for building from source; I like to press a button and have everything done for me. I was expecting hours of configuration hell, forum trawling and text file hacking before the ubiquitous “Hello World” would, at last, proudly appear in my browser.
Not so. I downloaded and installed the kit from http://railsinstaller.org/ and that was it. There is very accessible documentation at http://guides.rubyonrails.org making it particularly easy to get started.
I love it when things just work. And Rails just works. In every sense. It is concise, logical, intuitive and well conceived. Convention over configuration is a new concept to me and the more I see it the more it feels right. I think I may become a bit of a fan.
In the next post, I’ll discuss how I chose an IDE.