Yeah, I was also going to say that conflating trivial syntax and "supremely easy to learn" is a very weak flex.
The first Smalltalk-80 book you randomly find is 560 pages.
Also, there is a weird bargaining with "but not block temporaries" and "not an instance variable". Why not? Half of the postcard is basically empty. Also, "except primitives" — how many primitives are there?
The appeal of having a very simple, base syntax and almost everything in the library / primitives, would be that code is always easy to read and write, also on the 'reflection' level, where most languages have specific keywords that cannot be used 'first class' with the rest of the language. E.g: Types next to class objects or operator overloading, look at Swift..
(Of course the complexity of a full working system (library) does not disappear in Smalltalk, it's just easier to read and modify. :)
> This is an experiment in clarifying some aspects of Ruby syntax and semantics. For that we're going to introduce an alternative Lisp-based syntax for Ruby, preserving Ruby semantics.
Lisp? Then I would use Lisp...
> The goal is to define a comprehensive, trivially-parsable and sugar-free syntax.
Ruby has syntax sugar, no need to remove the funny parts.
Lisp has completely different runtime semantics. Even the lexical scope in Ruby is extremely peculiar. One of the hard parts of writing this document was to remove the intuitive influence of Lisp because it just doesn't make sense for Ruby.
For example, SmallTalk is a class based OO system, yet this postcard doesn’t slow you how to create a class.
The first Smalltalk-80 book you randomly find is 560 pages.
Also, there is a weird bargaining with "but not block temporaries" and "not an instance variable". Why not? Half of the postcard is basically empty. Also, "except primitives" — how many primitives are there?
OTOH Ruby doesn't need a postcard, it needs a full poster.
Lisp? Then I would use Lisp...
> The goal is to define a comprehensive, trivially-parsable and sugar-free syntax.
Ruby has syntax sugar, no need to remove the funny parts.
Lisp has completely different runtime semantics. Even the lexical scope in Ruby is extremely peculiar. One of the hard parts of writing this document was to remove the intuitive influence of Lisp because it just doesn't make sense for Ruby.
This is just an intermediate representation, it's not meant to be used directly (even though you can do that, of course).