From: Florian Frank Date: 2005-03-21T21:43:08+09:00 Subject: Re: Paul Graham recommends Ruby David A. Black wrote: > On Mon, 21 Mar 2005, Florian Frank wrote: > I don't think making Ruby resemble other languages makes it > *self*-consistent, but rather more consistent with languages other > than itself. Hey, this is the language of my dreams, it does only exist there. In dreamland I am also smart enough, to make my own language, while in reality I have to hope, that my dreams and Matz' are compatible. ;) Moving from to {} for hashes and {} for blocks, to {} only for blocks and something else for hashes surely does increase self-consistency. This also would make parsing Ruby easier, consider for example this case: def foo(h) :ok end foo :hello # => :ok but foo {} # => ArgumentError: wrong number of arguments (0 for 1) while foo({}) # => :ok > I'm also not a big believer in meeting nubies' > expectations. Especially for Ruby 2.0... it's definitely past the > point of needing to "make programmers feel at home." > They will, if they like Ruby, and meanwhile it's important for Ruby > programmers to feel at home :-) I don't have any against it, but I fear it's also a trap to rely solely one culture and heritage, while ignoring common sense and human expectation. It's charming to have car and cdr in a language, if you're interested in history, but it's also difficult to justify in any other way than just saying, we always did it that way. For new users that haven't their brains warped already, it's also difficult to understand, that you have to use length($s) to get the length of a string in Perl, while you have to use scalar @a to get the length of an array (or even scalar keys %h for the size of a hash). I'd rather avoid Ruby going into this direction, if it is possible. -- Florian Frank