Satya's blog - Ruby is a ghetto

Oct 15 2009 10:56 Ruby is a ghetto

Like Zed Shaw, I'm mildly disillusioned by Ruby and Rails. Here's why:

So many things in Ruby and Rails seem half-assed, in a "we're more interested in this cool new thing, so we're not going to bother to implement language features that are well-established and people would be relying on having". Like XML parsing.

To which, Matthew says: what are you doing with libxml? REXML might be enough. Core ruby isn't like that, lots of modules are.

My response is, core Ruby isn't enough to do anything non-toy. That is, to do anything serious (more than "hello world"-level stuff), you need libraries.

More than that, Matthew's comment (mind, I respect his opinion, and this wasn't an an argument, just a discussion) leads me to think, I don't need to be ripping out the guts of my program. That's what I'd have to do to switch parsers. Possibly. Depending on how the parsers work (stream versus ... non-stream, I guess).

(I use libxml-ruby (debian/ubuntu), which gives me XML::Parser, for the record.)

Which is another thing. The ruby/rails community always expects you to be doing stuff from scratch, and really I'm interfacing with existing systems/data and tweaking existing rails projects. (This is where the "ghetto" epithet comes in.)

I don't feel like playing roulette with XML parsers. But whichever I pick, there will be a problem. And when i ask about it, i'll be told use this other one instead. Ruby/rails expects everything to be in a vacuum, and it isn't!! I can't just go swicth out parsers. Yeah, maybe that's what unit tests are for, but does anyone actually use those? (I should be using cucumber or rspec, I know, but there's more pressure to just do the project any half-assed way than to do it right behind the scenes.)

Here's a conversation snippet, following the above discussion on #barcampchs:

LabThug: what's the new hip thing this week?
satyap: lisp
mcg: rails has always been a ghetto
satyap: lisp again, i mean
satyap: next week we'll be doing fortran
LabThug: yeah, but that ghetto has a lot of bling in it
mcg: yup
LabThug: satyap: F#
satyap: forth by november do we will
satyap: Fthat, i say
mcg: #!F
satyap: haaaah, LabThug and mcg, i'd like to quote you guys on my blog
LabThug: Go ahead

Another source of disillusionment: the whole gem/apt thing I posted earlier.

Tag: rant ruby