Here are my highlights of his presentation.
Why did Matz invent Ruby?
As he puts it himself, quite simply, he wanted to design his own language to maximize his freedom. He wanted to design a language in which he could love programming.
Why we love Ruby?
- it's enjoyable
- it made programming fun again
Basic vs Lisp
Basic is the first programming language with which Matz played with. Obviously he liked it at the time, but he remembers the frustrations:
- no command can be added
- no data type can be added
- no abstraction
Later on he delved into Lisp and it felt like belonging to another world, compared to Basic. Here are a few reasons why Lisp felt good:
- no discrimination
- extreme abstraction
- you can change everything
Aristocracy and democracy
Describing the comparison using another perspective, he goes as far as saying that Basic is aristocracy, whereas LISP is democracy. The idea is that aristocracy confines power to a few, whereas democracy imposes rules and restricts its people from 'advanced thinking'.
The two languages are at two extremes:
Basic gives you no power; LISP gives you full power. - MatzBut neither extreme is good. At each extreme you lose 'popularity'. In the end, it's a matter of balance:
"I am happy with aristocracy as long as I have power and be able to become designer when I want" - MatzAlthough he never explicitly says it, Ruby is the programming language that comes in the middle of those two extremes.
Ruby in terms of DSL
There was an interesting part on DSL's. When you think about it:
- Ruby on Rails turns out to be a Ruby DSL for the web
- Rake is a DSL for building apps
- RSpec is a DSL for tests
Programming is a process of designing DSL for your own application - Dave Thomas
To sum up, Ruby is a suitable language for designing a DSL, which provides high-level blocks/tools in order to ease the development of applications.
Similar to some complaints emanating from the Rails community about Rails getting into mainstream, Matz clearly has a word for caution about Ruby's growing commercial success. He cares about the community and wishes that Ruby people will keep their current enthusiasm.
And lastly, with his humble attitude and generous smile, he finishes his presentation saying that "love is the very reason behind Ruby", "I love you all".