From: Brian Candler Date: 2007-03-25T06:30:32+09:00 Subject: Re: Suggestion: swap name of "puts" and "print" and rename "puts" to "put_s" > > At a minimum I think the "put_c", "put_s", etc... should be implemented > > and the "putc", "puts", etc... identified as obsolete syntax. > > "My minimum demands are: ..." :-) > > One of the benefits I have found from using Ruby is that it actively > encourages you to chill out. Accept things as they are. Sure, it's not lean > and pure and orthogonal (if you want that, write in LISP, or Smalltalk). > Sure it doesn't do any static compile time checking - or even check that you > typed your variable names correctly. So write decent unit tests, which you > should be doing anyway, and kill two birds with one stone. Just relax and > code :-) Addendum: I also think if you're going to discuss changes to the language, it's more interesting if they are *significant* changes. Methods names are, well, just names. The methods work the same whatever you call them. You can argue that one is more obvious than the other, or easier to guess or to remember, but that will very much depend on the background you are coming from. For someone who is a non-English speaker, they will all be equally opaque. Most of us should be grateful that Ruby doesn't use SJIS squiggles for its method names :-) I consider significant points to be *semantic*. These include: (1) Semantic inconsistencies within the language. For example, there are about 7 different ways to create a 'function' object (i.e. a block or proc), and the semantics of calling them are subtly different, and indeed change between versions of Ruby. I can recognise the different syntaxes, but I'd be hard pressed to tell you from the top of my head how they differ semantically. (2) Semantic differences between ruby and apparently similar constructions in other languages. Regexps provide an example; on the surface they look very similar to perl, but underneath there are some important differences you may not discover until it's too late. For instance: in Perl, /^abc$/ matches only the string "abc". This is not true in Ruby (although it *is* a valid regexp). To get the same behaviour in Ruby, you need to write /\Aabc\z/ Regards, Brian.