Ruby, the hot #Reddot lingo, not to be taught in school
I am lucky enough to be one of 200+ attendees of Reddot Ruby Conference, held in Singapore — a little island somewhere in Asia. You simply turn right from the red dot country of Japan, follow your GPS all the way south, till you hit near the middle of the globe knot at around 1.38 latitude angle. To be honest this is my first Ruby Conference. These days, it is really hard to be a purely Ruby talks without few of Rails centric discussions slipped in. Though, I was quite happy listening to the keynote delivered by Dave Thomas on the Ruby language itself.
I still remember vividly, when I was in school. I had this an assembler language assignment. It was really tough for somebody who has been all along having a happy life doing away with high level language. In assembler you have to figure out how your Program Counter flows. Where the counter is acting as your switch statement or conditional statement. Function calls involve stack in the land of very limited byte memory to play around. I was picking up my Ruby at that point of time. I was fascinated by how dynamic Ruby is. You can define methods on the runtime, have a hook when you get a missing method call, which many call those perks as meta-programming.
Dave showed us the slide where he redefined the method implementation for if, begin etc. It was an exercise to see if we can abuse Ruby language keyword. Yes, Ruby allows those. That brought me back to my old memory. I got really pissed with Assembler. It's like kicking your nut doing a simple conditional branching statement, jumps here, jumps there. Kind of like having to wipe my ass without pulling down my pants. Then I thought of using Ruby to generate those blocks of switch statement using meta-programming. So I will write in Ruby, the output is simply reflection of each Ruby method calls in Assembler lingo.