On Sun, Dec 4, 2011 at 7:07 AM, Marc Heiler <shevegen / linuxmail.org> wrote:
> Ah. The reason why I wrote "minimalistic syntax" is because I do agree
> that newcomers to Ruby often find parts of it too complicated.

You are not talking about syntax: you are talking about interfaces of
classes or more generally about the interface of the standard library.
 That's a different thing.

> Take Symbols vs. Strings. It is boring. Symbols are boring. Strings are
> fun. Whoever recommends using Symbols is boring people.

I am sorry, I can't take that serious.  You must be joking.

> Do newcomers really need to understand Symbols in order to use Ruby? I
> would argue that it introduces a layer of complexity for hardly any real
> gain in productivity when writing applications in Ruby.

Symbols are not primarily about gains in productivity - Symbols help
express particular semantics (fixed keys) and they have a smaller
memory footprint than Strings (at least when Strings are used as they
are often used, i.e. with a String literal in code like "foo").

I am unsure though whether it is something a beginner needs to know.
But even if not, what would be the consequence?  Do you want to create
a minimalistic Ruby for beginners to learn only to confront them later
with the real language so they realize they didn't learn Ruby but just
ruby?  What would be the benefit from that which could not be gained
by having a tutorial only using a particular subset of the language to
keep the learning scope small?

> And there are many more examples I'd change - the class vs. module
> distinction, which I still don't like. Class variables, while there are
> a few valid use cases, I simply hate them.

I agree with regard to class variables.  I'd even say they might be
the biggest design flaw of the language.

If you find distinction between classes and modules superfluous it may
be an indication that you did not understand them properly.

Regards

robert

-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/