From: Eric Armstrong Date: 2002-11-09T10:26:19+09:00 Subject: Lighting Rod I love Ruby's smalltalk features. I really do. I often wish that Java had some of them. And the pattern-based string processing is cool. But... 1) Why magic variables? They're great when you are intimately familiar with the internal operation of the system. But miserable when you're reading code without having acquired that understanding. And even if their use is discouraged, that won't prevent them from appearing when I inadvertently code something that uses them. 2) Dynamic allocation -- Is that a good thing? I love things like the ability to add functionality to an existing class, like String. But I have also spent hours reading right past a small typo that caused me to assign to a new variable that was supposed to be an existing variable, or adding a number to a string when the operation made no sense at all. (Ah, Forth...) One of the things I *love* about Java is that it finds so many errors at compile time. (On the other hand, I love unit testing, so maybe Ruby really needs a unit-test framework generator, to find such problems, along with the many other bugs lurking in my code.) 3) 3.times. How many times does this execute, really? I saw one page that said it cycled through indices 0,1,2,3. Hopefully, that was an error! (If not, this item definitely belongs on the list of things every newcomer needs to know!)