Wednesday, January 31, 2007

Blogging Contest: February Challenge

Update: It's time to get going on the March contest.

Well, as we close up the January contest, it's time to get a new one started. Same rules, you enter by writing a blog post responding to the question below, and linking to it in the comments section. At the end of the February, Peter Cooper (the author of Beginning Ruby: From Novice to Professional, head of Ruby Inside, and this month's guest judge), Jason Gilmore (the Apress Editor), and I will take a week to pick our favorite and announce it. The winner will win three Apress books of their choice.

With that in mind, let's move right on to this month's question:

Last month Jarkko Laine asked "How has Ruby on Rails made you a better programmer?" This month I want to ask, "How has Ruby blown or stretched your mind?" Initially you might think the same answer applies as to Jarkko's question, but what I am specifically referring to are the things in Ruby that have made your brain race and go "wow!", even if you've never bothered to go on to use that feature much (if at all!)
Most Ruby programmers have come to the language from another. I came from Perl, which had already blown my mind with its development style, having previously come from the monolithic, strict worlds of Pascal and C. At each language transition, I have initially resisted and refused to look at the new programming language with an open mind, instead comparing it to my current language. Transitions are hard, especially when you're invested many years in your current techniques, but even though it can take a real effort to start on something new, especially a programming language, I've found that once those "Wow!" moments start coming along, you rapidly become a convert.
What were your "Wow!" moments with Ruby? Do you still get them? Are you just intellectually impressed when they come along, or do you actually become truly excited (keep it clean please)? What were the moments and the things that you saw that made you want to give your first-born to Matz and live in Ruby land happily ever after?
To kick things off, I will shortly be blogging my own answer to this question (although I won't be eligible for the contest, naturally!) but I look forward to getting to see what it is that's made you excited about Ruby, especially if I get to experience some new "Wow!" moments I haven't had before!

And while you head off to write you masterpiece, I'll be off reading through a stack of great entries from last week's contest.


Shalev said...

Like, totally "wow" man! This is some strong stuff. It'll blow your mind. Like, jumping foxes eating chunky bacon on a field of ruby's.

(blogger doesn't accept pre tags)

class Hasheesh
def fly_away
puts "weeeeeeeeeeee, I can, like, fly!!!"

def illegal?
return true

class Dude
def self.legalize_dis_stuff(stuff)
stuff.instance_eval %q{
def illegal?
puts "'no worries man"
return false

def self.legalize_all_da_stuff(stuff)
stuff.class.class_eval %q{
def illegal?
puts "no way maaaan"
return false

h =

h.illegal? #=> true

h.illegal? #=> false

m =
m.illegal? #=> true

Dude.legalize_all_da_stuff(m) #=> false

(blogger doesn't accept pre tags)

Taking a class from somewhere else, evaluating it, and deciding it needs new or modified functionality at runtime is mind blowing. You can literally do anything! Pass around packets of functionality and mix and match as needed.

Far out man.

pate said...

don't forget to post your entry on your blog, and put a link to it here.

Peter Cooper said...

I'd love to see that as a blog entry, but I kinda sense he's taking the piss ;-)

Sean said...

I blogged briefly about Iterators.

Jeremy said...

I got a free moment today for once, so I'll go ahead and knock this out. :)

Anonymous said...

dasil003 said...

Here's my entry about closures

Matthew said...

Here's my entry: Mind blowing Ruby

Shalev said...

Alright mates. I've done as requested and blogged this. Had to set up a blog first, but it was about time anyway.

Ruby... Like... Wow!

Anonymous said...

For me the blow-my mind Ruby features are:

- first of all (as probably for many others) - blocks.
Its a totally cool feature man ...

I came to Ruby from BASIC -> Turbo Pascal -> UNIX and DOS C -> Java -> Python (and liked and still like all of them - yeah - even BASIC! its good to whack some quick code up in ..., though I hardly use it nowadays). I don't know of any such feature in those languages, though there may be - I'm not a language lawyer, just a fan ...

- open classes are pretty good feature too.

- really like attr_accessor and its ilk too; the ability to call getters and setters as though they're fields of an object shortens code ...

- and last but not least, "everything in Ruby is an object" is a great one as well.

Vasudev Ram

Satish Talim said...

Something on Ruby code blocks here -

pate said...

If you're trying to enter the contest, please write your answer at your own blog and link to it from here.

Anonymous said...

> Vasudev, if you're entering the contest ...

Sorry, Pat, missed that earlier.
Done now - my entry is here:


dasil003 said...

I mistyped the URL for my entry on closures. It is

Anonymous said...

If you're trying to enter the contest, please write your answer at

Sorry, done now:

My entry


Hugh Cayless said...

Boom! Ow.

Chris said...

Since I've finally finished mine I can read the other's entered. :)


Tim Burks said...

A language feature? It's bigger than that. It's an attitude:

Programming as if People Mattered

Chris Carter said...

So my entry is more a teaching entry that shows some of the mind blowing ruby features that I encountered, that I decided to enter:

SonOfLilit said...

Ahh, you're gonna like this one:

James Edward Gray II said...

My entry: I believe in Ruby.

Anonymous said...

For the fun of it, here's my entry:

Ruby is brighter than the sun to me! :-)


Dan Bernier said...

My offering: Ruby, yoga for your brain

klimek said...

I learned ruby last week and here's my entry Brave New Ruby World

Dejan Dimic said...

Here are mine thoughts.

Dejan Dimic said...

Here are mine thoughts.

Sean said...

I'm late to the party, but here's my response just the same.