Ruby is too tightly coupled
Posted by Matt Hulse on August 25, 2010|
Comments
I Love Ruby. Unfortunately "require 'ruby'" brings in unrelated cruft that I don't love. That has led me to the opinion that Ruby is too tightly coupled. I am not a VM implementor, I haven't even looked at the source code of Ruby itself, so how, you might ask, have I come to this conclusion?
CommentsHere are a few modules that are automatically included when I require 'ruby'
module Rockstar
Primadonnas had a negative connotation in the coding world but somewhere along the way it became a good thing to be completely self centered, egotistical, crass, and crude, without regard for anyone but numero uno. These are Rockstars and companies even seek after them now. Two talks into Mountain West Ruby Conference awhile back, I had heard the F-Bomb more frequently than the word "Ruby" and endured several minutes of crude junior high locker room humor referring to the sexual connotations of Python. Fortunately most of the speakers were far more respectful to the audience but unfortunately I got sick and ended up leaving the conference after day one (food poisoning I think.) At home I tried to listen to the justin.tv stream towards the end of the second day. My 4 year old daughter wanted to sit on my lap and watch with me. I didn't have it on for more than 15 minutes before another F-Bomb was dropped so I decided I would wait for the videos to be posted later when I could watch without worrying about my little girl's ears. Don't get me wrong, I don't expect a Ruby Conference to be an appropriate place for a 4 year old little girl to hang out but that experience was really just the icing on the cake for me. Ruby means developer happiness and awesome community so why the disrespectful and crude language. I don't care how you talk to your buddies or even your mom (okay, I would be disappointed if you talked to your mom like that too), but in a public forum, have some respect for common decency.
The irony of all this is that Matz himself was in attendance at MWRC. When I hear Matz speak I don't see Rockstar, I see a Jedi Master who recognizes that it is the force that is strong and that he is just using it. Matz is humble. Matz is nice. He should be the face of Ruby, but we are stuck with Rockstars and outspoken 'R-rated' personalities because they did some cool stuff using this awesome programming language that Matz created.
end #module Rockstar
module Mac
I don't own a Mac and I shouldn't need to own a Mac to program Ruby. Be forewarned if asking for support for a Windows issue in most forums, especially for gems. "M$ Sucks! buy an F-ing Mac!" Whatever happened to open, cross platform development? (I know, Windows isn't open, but neither is Mac) Not to mention whatever happened to Matz Is Nice And So We Are Nice? I personally prefer Ubuntu and only use Windows at work when that is what the client is using. I dislike working on Windows but Ruby can make it better. Fortunately there are some great people like Luis Lavena (http://rubyinstaller.org) making great progress to give Ruby a better supported platform in Windows. I use the tools necessary to get the job done and thanks to Luis and others, I have been able to use Ruby to do that, even when I'm stranded in Windows land.
end #module Mac
module Rails
I personally think modules Rockstar and Mac are largely dependencies of Rails and not Ruby itself but Rails is the most tightly coupled module with Ruby. It's hard to separate Ruby from Rails. I like Rails. I've written some Rails guides on this very blog. At MWRC which is a Ruby conference, most of the attendees (probably 85% judging from the hands raised) are working with Rails. There was even a talk about HTTP which has nothing to do with Ruby. I still found that talk interesting, but HTTP is not Ruby. Rails is not Ruby. I don't fault the conference organizers or the speakers. It is what it is. Most people using Ruby are using Rails. I may be in the minority when I say I think Ruby and Rails need to be decoupled but at least I'm in good company. Matz spoke at MWRC and he said he wants to get Ruby off the web. I completely agree. Ruby is awesome, Rails is awesome too, but Ruby is not Rails.
end #module Rails
Refactor...
Let's work on a decoupled Ruby that doesn't have dependencies on these modules. They will still be available because some people like them, but they should not be required. Here are some alternatives:
module MINASWAN
#Matz Is Nice And So We Are Nice
end
module Jedi
#You have much to learn my young Padowan
end
module NextBigApp
#The one you wrote that is not Rails and helps people see how powerful Ruby really is
end
Ruby will be better for it and so will the community.
blog comments powered by Disqus