RubyConf: Matz Keynote

Yukihiro ‘Matz’ Matsumoto, the language designer of Ruby, gave the keynote speech for RubyConf 2006. The keynote was titled The Return of the Bikeshed or Nuclear Plant in the Backyard. I didn’t know what the bike shed and nuclear power plant in the title referred to. I later discovered that is refers to Parkinson’s Law which in essence states that the least important the decision the more people have an opinion about it, because most people don’t have solutions for hard problems. The title of the keynote set the theme for the night.

According to Matz, Ruby is a programming, scripting, lightweight, and dynamic language. Matz noted the difference between some of these. He stated that the term lightweight language is popular in Japan where as scripting language is detested in the states. Yet Ruby is all of these and more…

Matz then went on to described the four core values of the Agile Manifesto and how they related to language design. The first value is Individuals and Interactions, which so far as language design means a strong focus on developers. The second value is Working Software, which means that the language should encourage readability. Collaboration Over Contracts, refers to an expressive language which helps in documentation/communication. And finally, the last Agile value is Responding to Change, a language should be able to embrace change. With this in values of Agile Manifesto in mind, Matz said that therefore Ruby is an Agile Language.

Matz also described the good, the bad, and the ugly in Ruby. He stated that the good was the language itself, Ruby on Rails, and the people (Martin Fowler said “because Matz is nice.”). Matz said that the ugly of Ruby was eval.c and parse.y. The bad was Ruby 2. Ruby 2 has been vaporware since before Perl 6.

Matz then went on to say that Ruby is sometimes perceived as a Fragile Language because of Ruby’s bike shed issues. That is to say, the amount of people argue about bikes shed size issues while leaving complex problem to experts. As bike shed issues, Matz mentioned having the Symbol class extend String, #lines, and removing private and protected. Because of the noise over these bike shed issues people might suggest that Ruby is a Fragile Language.

Earlier in the conference, during his roundtable session, Matz stated that “if you want a stable Ruby, use 1.8.” During the keynote Matz said, and I quote, “If I die, keep 1.8 for ever.” If Ruby 1.8 is good enough for Matz, its good enough for me.

Technorati Tags: , , , , , , , ,