Settling on Rails
Welcome back, folks! Luc here again, with another report from my odyssey as an up-and-coming developer. With my introductory post out of the way, I’d like to dive in and talk about my personal process of getting started as a developer. One of the most bewildering decisions that any up-and-coming developer must face is what development platform to choose to start with.
This is an agonizing decision because it will also dictate what language you end up focusing on, what platform-associated things you end up learning to use (such as editing programs or databases), and even what programming community you end up (tacitly) joining! Obviously, your decision is never final. You can always abandon a platform and get started doing something else. But that would be, to put it mildly, an inefficient use of your time. Better to give the initial decision its proper weight.
I’ve decided to begin my life as a developer using Ruby on Rails. I have to say, I feel good about this decision.
I’ve been criticized by some (even friends!) for choosing Rails. They somehow think that I’m choosing it because it’s “trendy,” presumably due to its currently strong standing amongst start-ups and its widely touted ease of entry. Even worse, Rails developers have been described in some quarters as smug (or worse). But let’s be honest here. It’s now 2012, and if Rails is indeed still somewhere on the Trend-o-Meter, it certainly occupies a place below node.js and perhaps even a few others in the web-dev world.
Second of all, major sites like hulu and Groupon were built in Rails, which shows that it’s widely used beyond the context of tiny start-ups (here are some others). And so if you’re an up-and-coming developer interested in learning Rails, or even a seasoned one thinking about switching or exploring, I say ignore the very unhelpful trendiness issue and judge for yourself. Here are some of the things that drove my decision:
1. For many, it’s a factum inconcussum that Ruby on Rails is “easy” and “user-friendly” and even “fun.” Let me assure you: as an absolute beginner, it has so far been none of these things. It is easy to use only against the backdrop of the other platforms out there (for example Java-based platforms). It may be easier, but there’s still a pretty steep learning curve, meaning that I won’t be making it overly easy on myself.
2. What drew me to Ruby as a language was actually not the so-called “philosophy of Ruby” espoused by its founder, the eminently likable Matz. I’m a bit too much of a masochist and perfectionist to be drawn to something simply because it’s pleasant. Nor did this sway my decision, although I do find it quite entertaining. Instead, I’m drawn to Ruby (and Rails by extension) largely because of the community surrounding it. The Python community, to give one poignant example, is also wonderful. Maybe as great as or even better than the Ruby community. But the world of Ruby has settled on Rails as a platform in large numbers while an analogous consensus doesn’t seem to exist in the Python community, which is split between users of Django, Pylons, Tornado, Flask, and others. For a beginning developer, that profusion of options can make your head spin. Time will tell if I continue to find it beneficial to have the vast bulk of the Ruby community rallying behind Rails.
3. The beginner-oriented documentation on the Ruby on Rails official page is excellent. The guides section of the page is actually helpful and really does walk you through step-by-step, telling you where to look for things, what specific files and lines of code actually do, things to look out for, etc. I’ll post more about Rails guides soon, as there are many highly useful ones.
4. I’m surrounded by Ruby people. Essentially all of the developers sitting in the next room have Ruby backgrounds that extend from “strong” to “face-melting.” Furthermore, a lot of PHP Fog and AppFog architecture is actually written in Ruby (although in the Sinatra platform, which I’ll discuss soon, rather than Rails). To top it all off, our CEO Lucas Carlson wrote a popular book on Ruby and has contributed to the Ruby gem library pretty extensively. In the past week, he’s already given me some sage advice on how to hit the ground running.
My impressions thus far: after a few days of initial orientation, what I’ve found with Ruby on Rails is that it’s not “easy” the way that Adobe Photoshop or Skype or Excel are easy. There’s no point-and-click interface that’s going to magically and inexplicably do it all for you. But it is indeed “easy” in the sense that you always have the sense that somebody somewhere has got your back and has done a lot of thinking for you and gone out of their way to help eliminate the hassles and frustrations that you will invariably face.
That’s a kind of easy that I’ll take any day.