Ruby on Rails Thoughts

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.

11 Replies to “Ruby on Rails Thoughts”

  1. I’m sorry to hear that you’ve had some bad experiences, but glad to hear that you’re sticking to it.

    I’ve found that the quality of answers in most open source forums, mailing lists, and on IRC is directly correlated with the manner in which questions are posed.

    When people imply or outright state that whatever package they’re having trouble with is simply “broken”, “crap”, “totally unintuative”, or similar, you tend to get bad information back.

    When people pose questions such as “I’m having trouble with X, could someone please help?”, I see the quality of information coming back usually being very good.

    Since open source consists mostly of volunteers that you’re not paying for their advice, you have to compensate by being a gentle and humble human being when you want assistance.

    That being said, some times you can be mild as a lamb and still get jackass responses. But hopefully it’ll be the exception rather than the rule.

  2. It is better to find the right person and send private messages but since you don’t use it often it would be difficult to build a relationship. Usenet is probably best. For anyone reading this an easy way to use Usenet is through “Google Groups”. I don’t know why they renamed it. It sort of pisses me off that they did. I don’t know why it pisses me off. I get pissed off easily. I need to relax.

  3. I’ve been using Rails casually for awhile and share your aversion to the IRC channel, mostly because it’s very inconsistent based on who’s online at the time. I’ve found the mailing list (available from the rubyonrails.com site) to be much more helpful, and the help is typically fast and accurate.

    Like you, I came to Rails as a Ruby newbie, and am now enamored with the language. I suggest running through the Programming Ruby book and learning why things work in Ruby without Rails as you continue picking up Rails.

    Good luck!

  4. Glad to hear someone else with the same issues with RoR… Like you said its pretty darn amazing when it works, but I haven’t been able to get it to stay ‘working’ for long.

  5. The community around Ruby is 10x obnoxious… kinda like the Stepford Geeks. But in my case, I came to Rails after being a Ruby addict for a while now. I never thought that anything could make me forget about Python, but having the simple clean syntax of a Python added to clear object orientation in Ruby completely converted me. You’ll love it. Even if it involves giving up a fun Italian Monty Python freak for an army of smiling pod people.

  6. I have two comment, as an experienced developer of some 15 years.

    1) As to the difficulty grasping Ruby or Rails:

    How is this different from approaching any technology for the first time? Did you succeed the first time you tried to use the transaction API in J2EE? Did your first brush with CSS go swimmingly? Are you prone to sit for a half hour with a tutorial for something you have never done before, and create a full lifecycled enterprise level application in the next two hours?

    2) As to the nature of people on IRC or forums:

    I challenge you to write in a JBoss forum about how deployment there is “so different from VB.Net” and let’s see what replies you get. 🙂 Did you expect any less?

  7. PJ, The thing is that Rails is being sold as a quick and easy way to bat things out. That’s the main thing I want from it. When it isn’t that, then I feel a little cheated. None of those things you mentioned are being pushed for their ease of use. The videos of “develop X in 15 minutes” are doing just that.

    I actually don’t use Python either. Something about having the program flow based on whitespace has always rubbed me the wrong way, despite any number of people telling me how great it is. For most of the last 10 years, Perl has been my scripting language of choice. I’ve done C/C++, Java, PHP, and (ugh) ASP professionally and I am warming to Ruby. I do like the fact that there is no distinction between objects and primitives ala Java or C++.

    As far as how my questions are asked, most places get pissed off when you ask without RTFM. In that channel, they got pissed off when I started asking how I could have RTFM to find out the problem for myself. You just can’t win sometimes.

  8. Ronco (As seen on TV!) projects like this that claim to be all things to all people; to slice, dice, and Julienne fries; all forget the unix manifesto:

    A collection of small tools that do ONE THING WELL that can be piped, redirected or scripted together to do MANY BIG THINGS WELL by a talented programmer.

    The concept is flawed, no implementation can ever work.

    PS Mmmmm… “Fully Lifecycled.” Yummy buzzwords..

  9. I keep getten this website when i look up the script for High School Musical(The disney channel movie) and i was just wonderin,,can i get it on here or not? im really confused. Please help if you kan,,

    Rashel

Comments are closed.