I have been interested in Ruby on Rails for a while, and been fiddling with it in the nights and weekends. I like to stay up on new technologies and frameworks, partly because it is fun and partly because that’s some of the value I bring to the folks I work for. The more I know about the possibilities, the better decisions I can help make. Despite what people think about me, I am never interested in these things for the sheer novelty of it but in how one can do more work in less time with fewer resources. Like many, I was seduced by things like the video of using RoR to create a weblogging system in 15 minutes. I even downloaded and listened to the Ruby on Rails podcast.
By playing with it, I do agree that it is cool and remarkably efficient to create things that work, when it works. What needs to be included in the analysis is the fact that sometimes things just don’t work. When they don’t work, it’s not so easy to figure out why from the documenation. Frequently I end up googling and searching fruitlessly through docs and doing research on the part I least care about just to make weird exceptions go away. Worst of all, sometimes the exceptions are misleading and will be red herrings that send you on wild goose chases. Because I’m not that familiar with Ruby, that part is always a struggle for me. I’m picking up the language as I use it, but I don’t have a deep background in it. I’d be highly surprised if there many (or any) people who are already deeply familiar with Ruby and coming to Rails because of it. I’d guess 99% of the people are coming for Rails and learning Ruby out of necessity, just like me.
Precisely because I don’t know anything about Ruby, everything I ever do is straight cookbook out of the docs. I don’t know enough to do anything crazy, so all packages are added via gem and such. The other day, I had installed a package and tried to set up some functionality to use it, straight out of the example code. I kept getting an exception about how the package wasn’t installed, even though doing a
gem list showed it. I eventually got frustrated enough to ask the question on the #rubyonrails IRC channel. The path that eventually got it working was to do a
gem cleanup which changed the behavior from an exception to a crash in the dispatch.fcgi. After that, I had to uninstall and reinstall the Rails package. So far so good.
At this point, I asked in the IRC channel how I could have known to do that, essentially a pointer to the where in the docs the secret knowledge lives. That’s when the trouble started. I have used the IRC channel to get answers a few times when my frustration with the docs grew too great. Every time, I have gotten the answer I needed and every time I have left with elevated blood pressure. I use the IRC channel as the absolute last resort, so it isn’t a matter of RTFM – I’d much rather RTFM than deal with the pricklier denizens there. The problem is that I’ve never been able to get the advice without some form of ad hominem nonsense. It might be my lousy interpersonal skills, or it might be a problem with some of those folks.
This time, as I tried to figure out where I could have done it different I got a lot of weird defensiveness which included statements like “This is a 0.13 release, what do you expect” and “This is the frontier so you have to be prepared to do some work” and my favorite “You can’t expect it to be like using VB.” For the record, I hate VB and don’t expect anything to be like it if I’m going to be using it. The basic gist of all this nonsense was in stark contrast to what you’ll find on the web page nad in the various articles about it, which is “Come aboard, you can make your life easier and get more work done with Rails.” My point, which went over like a fart in church, was that these are mutually exclusive views so which is correct? Either you want people to come aboard and do real world work with it, or it is still a hobbyist hacker thing but it isn’t both simultaneously.
My view at this point is that Ruby on Rails seems fantastic, looks like a highly efficient way to get things done, and will be something I continue to pursue. It won’t be as quick in reality as you might think, because at some point you will have to stop doing productive work and research crazy failures that may be code or may be problems in your installation camouflaged as code level errors. Even if you do everything by the book, your install may shit itself at any point. If you need help and decide to try the IRC channel, hope for the best but be prepared for the worst. Expect that someone will claim it as your moral failing that you cannot decipher cryptic error cases with sparse documentation.
Update: A friend IM’d me this link to a Rails related comment thread. Read the comments and decide if you think the Rails people are being weird and defensive. I read the original post as a guy looking for information and thinking out loud, yet the Railers seem to be pissed off that he is raising questions. To paraphrase my friend, I love the technology but am not so high on the community. It will be nice when we can rationally discuss the pros and cons of the technology without raising the hackles of the Rails fundamentalists for daring to suggest there are cons.