Not too long ago, Edward Kenworthy inquired about ’Ruby’s lisp features’ on ruby-talk. Matz’ answer was as follows:
Ruby is a language designed in the following steps:
- take a simple lisp language (like one prior to CL).
- remove macros, s-expression.
- add simple object system (much simpler than CLOS).
- add blocks, inspired by higher order functions.
- add methods found in Smalltalk.
- add functionality found in Perl (in OO way).
So, Ruby was a Lisp originally, in theory.
Let’s call it MatzLisp from now on. ;-)
Is it just me, or does that really sound like “I took a Lisp dialect, removed most of the cool stuff and added some things from other languages”? Don’t get me wrong, I still think Matz has done a really amazing job when he created Ruby, and it still is one of my favourite programming languages. I just find it amazing how Lisp doesn’t have more exposure, when apparently some of the “cool” languages of today are trying hard to incorporate some of its (less powerful) features.
Further references:
Why Ruby is an acceptable Lisp
‘Ruby aka MatzLisp’ on comp.lang.lisp
Sweetmorn, Discord 48, 3172 YOLD