From: Joao Pedrosa Date: 2005-02-18T18:20:08+09:00 Subject: Re: A Ruby-relevant quote from Alan Kay Hi, On Fri, 18 Feb 2005 16:43:17 +0900, Curt Sampson wrote: > On Sat, 12 Feb 2005, Adriano Ferreira wrote: > > > Without offense, one can say that Ruby is Smalltalk made right (or at > > least one way to make it right). > > If if by "making it right" you mean going back to imperative languages > and irregular syntax. > > Smalltalk already had pretty good iterators; why add the imperative > "while"? Smalltalk itself is so powerful that it doesn't even have an > "if" statement. Ruby is that powerful too, but a lot more awkward. > (It's probably more awkward because it does have an "if" statement and > therefore never had to make things like a generic block statement that > was as syntatically light as possible.) > > And I find the highly irregular syntax very frustrating. What does > something in braces mean, for example? It depends on where it appears > in the program. Why do I use one syntax when passing only one block to > a method, but a different syntax when passing two? And so on. Irregular > syntax combined with too many different ways of doing things makes > learning much harder, becuase you can't naturally work out how to do > things, you need to discover the tricks. > > (I just about fell over when I discovered you could use "rescue" before > "end" for a function, as well as after a "begin." But you can't use it > for "if". There seems to be no logic you can use to guide you to say > where you can and can't use it.) > > I think ruby has been reasonably successful for a couple of reasons. > > 1. One thing it did get right was to integrate well into the Unix > environment. If we had a good Smalltalk that did that, I'd be all > over it. > > 2. Java has been around along enough that many programmers have absorbed > the incremental improvements it offered over C++ and other languages of > the day, and are now starting to discover how backward in many was Java > really is. So now they're ready for another incremental improvement--but > not one that's to big. Not a language, for example, without "if" statements. > > Ruby did get some other stuff right, such as having continuations in > the language, but I don't think that sort of thing was much of a factor > in its success. There will be a day when we nobody will take a language > without continuations seriously, but that day is not here yet. (And the > day where nobody takes seriously a language without type inference is > even further away.) Nice post. Maybe Smalltalk is more like the old Unixes and Ruby is more like Linux. Do you like Linux/FreeBSD, by the way? :-) Cheers, Joao