Ruby is...

Nov. 10th, 2006 10:51 pm
elfs: (Default)
[personal profile] elfs
So, I've been wrapping my head around Ruby and Rails this week in my copious spare time (by the way, I hit by wordcount deadline for today, passing the halfway mark at 25860, yes! And the month's only a third over!) and listening to some simply incredible classical music (see the music tag) when I came to some annoying realizations about Ruby.

Ruby is Lisp. There's no other way to describe it. Ruby is Lisp the way Javascript is Lisp: both are descendents of the Lisp Way, but both have worked very hard to obscure that fact and look as if they had much in common with Algol's descendents, such as C and Pascal.

Ruby is Perl and Python. It's a scripting language as powerful as either of these, with a little of each's philosophy thrown in: from Python, ruby stole a sense of clarity with which it has not yet made peace, and from Perl, it stole the idea that there was any number of ways to do something and, oh yeah, Perl had some great ideas about what should be available by default.

Most frightening of all, Ruby is C++. Every major Ruby project creates a domain language unique to that project. Invoking the keywords of that domain language may result in great cascades of code that have little to no resemblence to "the core Ruby way of doing things," and whole chunks of your system may invoke excessively clever environmentally dependent templatizing routines that, without sufficient documentation, may deliver whole metaclass subsystems with execution trees that were never meant to be held inside the human head. Ruby's philosophy is that the domain language should be appropriate to the domain. Rails does an excellent job of living up to this expectation, but other projects I've seen do not.

I like Ruby, but that last is a major pitfall. Ruby experts love to show off their inner knowledge, often confusing the heck out of those of us new to the language, and the last aspect of the language makes it easy for said experts to mangle the brains of beginners. The Ruby community is currently going through an infatuation phase with itself, and helping new folks (like me) is going to take a while.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

elfs: (Default)
Elf Sternberg

May 2025

S M T W T F S
    123
45678910
111213141516 17
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 7th, 2025 04:19 am
Powered by Dreamwidth Studios