April 1, 2008

Ruby Fools: Dave Thomas’ keynote

Filed under: rails — Casper Fabricius @ 10:51 pm

The Ruby Fools 2008 conference is the first large-scale conference in Denmark dedicated to purely to Ruby. The opening keynote was done by Dave Thomas, and once again he managed to both inspire and provoke. This time, the pragmatic author took a starting point in the name of conference, and gave a talk with the topic: I’m a Ruby Fool.

Dave Thomas
© 2008 Jason One

Dave had structured his speak around the four major reasons for why he is a Ruby Fool. The first reason was “I’m in love”. He stated that not only is it a good thing to love your software tools, in fact you must love your software tools. He explained that the job as a programmer is one of the most difficult jobs of all, and compared it to the job of poet: We can create pretty much anything we want, but that also means that we are faced with the blank paper. His point was that if you don’t love your tools, it will show in your work.

Asking why he loves Ruby, Dave Thomas said, is like asking why he loves his wife or his kids. Nevertheless, he gave couple of reasons. One was that Ruby helps him to be expressive - it doesn’t tell him what to do. In Ruby, there is not one right way to achieve a result:

for i in 0..9
	puts i
end
10.times do |i|
	puts i
end
(0..9).each do |i|
	puts i
end
puts (0..9).to_a
puts *0..9

Dave also mentioned the fact that Ruby is a multi-faceted language as a reason. Not only can he do object oriented programming, but also procedural, functional and prototype based. The last one is where an object is constructed from Object.new and methods and fields are added on the fly. His other reasons to love Ruby was that it makes him productive, it is transparent and that it thinks the way he thinks.

Dave Thomas’ second for being a Ruby fool was that he likes imperfection. He different people on why imperfection is desirable:

  • “It is absurd to look for perfection”
  • “Perfectionism is the enemy of creation”
  • “Out of perfection nothing can be made. Every process involves breaking something up.”
  • “Perfectionism is the word of the opressor”
  • “Perfectionism os slow death”
  • “Only mediocrity can be trusted to be always at its best”
  • “Perfection has one grave defect: it is apt to be dull”

Dave underlined that Ruby is not perfect - it is inconsistent. “If you want Matz to reject a change to the language”, Dave Thomas said, “say that it will make it more orthogonal”. This resulted in burst of laughter from the front row where Matz was sitting.

A third reason for being a Ruby Fool, Dave explained, was that he had to try to keep up. He showed how the Ruby distribution had grown from a few hundred kilobytes to six megabytes in version 1.9.0. “Is that scary?”, Dave Thomas asked, “Well, speaking to someone whose book documents every single method of Ruby, the answer is: Yes!”.

He went on to describe some of the new features in Rais 1.9.0 such as fibers, enumerators and the new regular expression engine. I won’t go into details on this here, since I expect to learn much more about these new features in Matz’s keynote tommorrow.

The fourth and final reason that Dave Thomas mentioned for being a Ruby Fool, was that he thought there was a community. He compared the early Ruby community to a small settlement in the old American wild west. One family would start out by settling down because the horse died or the wife didn’t want to go any further. Slowly, more settlers would join the settlement if they liked what you had done with place.

But suddenly, someone would find GOLD!, and the small town would be invaded by gamblers and prostiutes and grow hundred-fold. This is what happened to Ruby once Rails was released. The RailsConf this year is expected to sell out at 2000 participants. But that doesn’t matter, since Ruby is not the community - Ruby is just a resource, Ruby is the gold.

Communities are groups of people. You should choose the people you associate with carefully, Dave Thomas said, and always remember: Have fun!