A year has passed since the last post to this blog, and it has been one of the best years of my career.  I have worked with Ruby on Rails as a full-time independent software developer.  I have met some of the smartest and most interesting people in the software development community.  I have worked with powerful, intuitive, and downright amazing technologies.  I have spent my time writing code that solves real problems.  I haven’t written a line of Java in the last year, and I haven’t missed it for an instant.  The twelve years I spent as a Java devotee and fanboy were well-spent, mainly in that they prepared me for the next step.  Those twelve years prepared me to make the switch into a world so completely and utterly different in every way that I couldn’t possibly have anticipated it.  They prepared me for the world of Ruby on Rails.

What is it about Ruby, Rails, and their community that is so compelling?  Years ago, I would get excited about a new Hibernate or Spring release.  I couldn’t wait to convert my Ant scripts to Maven.  I knew Java, the JVM, and the associated technologies inside and out.  I could explain in great depth the different approaches to garbage collection.  What could change someone’s deeply held views about how to solve software problems in such a short period?  I now know the answer.  It’s simple:

There is a better way to solve all of these problems, and this better way is actually enjoyable.

As a software developer, you’ve almost certainly heard a lot about Ruby on Rails.  You may have even dabbled in it, generated some simple apps, or walked through a tutorial.  You might know someone who works with Rails and won’t shut the hell up about it how awesome it is every time you talk to them.  You may know a little or a lot about what Ruby and Rails are, but you haven’t seen any compelling reasons to uproot your career and learn something new.  This post is the first in a series explaining the reasons, tangible and intangible, why a switch from Java or any other language to Ruby and Rails is satisfying, rewarding, and enjoyable.

This series will consist of three posts, each covering an aspect of “the switch” in the order that you are likely to encounter them:

  • Rails:  Writing Web Applications, Not Reinventing the Wheel
  • Ruby:  An Elegant, Concise, and Beautiful Language
  • The Community: Brilliant People Doing Impossible Things

In the end, you’ll understand more than just the buzzwords associated with Ruby and Rails.  You’ll understand the implications of making “the switch” in a way that reading manuals and technical resources doesn’t convey.  You’ll understand why developers make the switch and why they rarely want to switch back.  Most importantly, you’ll understand the fierce loyalty that Ruby and Rails developers have for their language and their community.  You may even make “the switch.”


The time has come once again to delve back into old passions. Nagging whispers from the past have turned into persistent shouts, commanding me.  “Return to Rails!”  “Rails is your passion!”  “Java is an albatross, dragging you into the inescapable depths of XML hell!” In case I didn’t mention it, these voices use run-on sentences to impress me, but I’m not falling for it.

Three years ago, I was born again.  Not in a spritual sense, but in a software sense. After working with Java for ten years, I had the opportunity to work with something different. It was a relatively new technology. There were hardly any good resources for learning it, save for a Pragmatic Programmers book or two and an IRC channel.

This new technology turned me upside down and shook me until all the loose change, keys, Chapstick, and USB drives fell out of my trouser pockets onto the floor.  It gave me a b-slap or two to wake me up to the real world, then picked me up, dusted me off, and filled those same pockets with heaping helpings of awesome. Of course, the technology that forever changed my thinking about software and web application development was Ruby on Rails.

For a year, Rails and I were one. After that whirlwind year, I looked for more chances to work with Rails, to reunite. But it was not to be. The world still had not seen the beauty of Rails, and alas, we were separated. In the proceeding years, Rails and I would bump into each other at random times, crossing paths briefly then diverging again.  But the winds of change were a-blowin’, and here I am today.

Yes, I said “a-blowin’.” Awkward.

Times have changed, and the market has changed. Where once you would get blank stares if you mentioned Ruby on Rails, now you get the “I think I’ve heard of that” look. Gone are the days when a search for “Rails” on a job board would return three links to railroad engineer positions. Now a search for “Rails” returns many positions in many companies, from small equity-only startups to large Fortune 500 companies. There finally exists a job market in which a Ruby on Rails guru can make a full-fledged career. This is especially true in certain cities, such as San Francisco (which has been the case for a long time), New York (which all of a sudden has a booming Ruby on Rails community), and to a lesser degree Chicago, Denver, and college towns like Ann Arbor.

Today is the day reunions with old friends occur, when careers change, ambitions grow, and dreams coalesce into action. Today I am a Ruby on Rails developer again, and the future looks good.