I nearly forgot yesterday that Ruby has a train following it about. It has been growing in popularity over the last few years as it has become more and more well known as the language used behind a growing number of applications, such as campfire for instance. I have no complaints about it though, its actually a very useful language. My problem, as is often the case, falls on ignorance and the terrible practices of fearing languages.
When someone approaches me and asks me if I know Ruby on Rails I have to answer, quite politely the first time, no. I don’t know Ruby on Rails any more than I do QCodo, PHPCake or any other of the dozens of web frameworks. The attachment of “on Rails” to Ruby has really ruined, at least in my mind, the possible momentum that could be enjoyed by Ruby as has been enjoyed by other languages like, Perl or Python. The fact that these later languages names begin with the letter P should not lead anyone to believe that they are P-opular. All of the languages that I have experience with have their place in my heart and a place in my development practices. From my point of view, pinning “on Rails” onto Ruby weakens the message that many of us have already taken to learning.
People are often surprised when they bump into me later and see me paging through any of my books on ruby.
“You said you didn’t know ruby on rails!”
I look around confused and half hoping he/she isn’t directing this comment at me.
“How can you be reading about ruby on rails and not know anything about it?”
“This is a book on Ruby”
“What, now you are being an ass, of course it is.”
“Ruby and Ruby on Rails are not the same thing.”
“What? Yes they are. Ruby is ruby the world around.”
“Yes ruby is indeed ruby, but ruby on rails is not ruby as you are suggesting.”
This is a conversation that I get quite often. Job exposure and school seem to be really putting me in line for ruining my life with all of this. So many people are so used to seeing ruby and on rails connected that they assume that they are synonymous. I can pass this sort of stuff off as a simple lack of motivation to research this at all, but it occurs to me that you will find it odd to find any Ruby on Rails code on google. You will, however, find thousands of pages of Ruby code.
Few people know that Ruby has been around since the nineties. That it has been around, building a community and code forge that is liable to rival cpan one day. Well, maybe not that large.
A week and a half ago there were tech talks at my work. One man stood and spoke about a Perl MVC framework called catalyst. He spoke for a good forty-five minutes actually showing off slides displaying code examples. This talk completed with a question by me…
“Hi, Thank you for your talk today. It has been very good review to see this, as it has reminded me why I prefer to work in PHP.” A pause for laughter. “I know that we tend to lean towards Perl because apparently it has made quite a few of you comfortable, but in my experience with Catalyst it proved to be quite slow, especially if not paired with fastcgi, which you already know we don’t have here. Did you expand your research to include any other frameworks or even some benchmarks between Catalyst and other frameworks? And finally, did you happen to look into any of the other languages?”
Unfortunately the response was not sufficient.
“I didn’t, all I was looking at was Catalyst and no I don’t have any benchmarks.”
It occurs to me that frameworks are a great thing, as long as you don’t ignore the fact that they are not simple. Any framework that provides significant features or functionality to draw your attention is bound to be difficult to learn. They pack a lot of functionality into a little package that you are bound to not understand fully and thus you are bound to learn something. The question I pose here: is a new framework, esp. in a language as difficult and complicated to understand properly as Perl, which also lends itself to obfuscation so well, worth the energy and time when you could abandon the Perl and learn PHP in an hour and a half. I stand by my belief that learning a language is not difficult, especially the scripting languages that we find ourselves using these days and how similar they are. I learned Ruby in a single night and although I don’t feel comfortable with it enough to write huge applications with it, I can read it and understand much of what I see.
I am currently learning the quirks of UScript. The language itself is built off of Java and CPP, so I understand the constructs and syntax. The difficulty in learning a new language falls on the issue of learning the quirks, which only come with time and experience.