![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Ruby is a nifty little language that's had a small but devoted following for about 15 years. It's gotten a lot of attention recently with Ruby on Rails, a Web development framework that implements the model-view-controller design pattern for Ruby applications. Some things it does very nicely: its syntax is more highly reflective than any other language I can think of offhand since Smalltalk. At some point I should write something about the cooler parts of Ruby, but right now it's annoying me and so I'm afraid that today you get the bile.
There is always the risk, when writing an article like this one, of criticizing something simply because it is different from something that you happen to like more. I am sure this is no exception. I will try not to criticize Ruby for not being Lisp, or C, or heaven help me, Perl, but on the basis of its own merits.
( what I don't like )
Despite all this I can't really say that I dislike Ruby. I've been working in Ruby on Rails for only a few months, and have not really delved deeply into what the language has to offer, but I find a lot of its self-redefinition features really encouraging and intriguing. I can see that Matz has tried hard to strike a good balance between conceptual elegance and programming expressiveness, and that's a difficult line to walk. What makes me unhappy is where the language appears to violate the principle of least surprise; if issues like these can be remedied effectively, it will make Ruby substantially more appealing to hackers like me.