Markus wrote: >> >>It is cool and interesting from a theoretical standpoint, but it causes me >>to coin the term "syntax diabetes" (if someone hasn't already). > > > Ok, I'll bite. Why? Some details: > > * If you don't use it, it should have no effect (not true with > today's version, which has two known bugs at this moment, but > that's the goal). > * It makes the parser about 150 lines shorter > * It does not effect compile times > * It might make it possible to move some features out of the core > language and into libraries (if it were proposed and accepted as > something more than an experimental hack). > * It (with some of the other ideas that have been floated) would > reduce the pressure to add new features, and allow them to be > "community tested" before being added, by letting people > prototype their ideas without being relegated to a syntactic > ghetto. > > In what sense is this "diabetes"? I would take that to mean intolerance > for syntactic sugar (it sends you into a coma or something). Or am I > missing your point? > I can't argue with certainty that it's a bad thing. I'm strongly in favor of experimentation, in fact. It might even be a great thing in Ruby 1.9 -- but I (personally) would not want to see it permanently in Ruby. This is just my opinion, so don't take it the wrong way. And don't stop your experimentation. ;) I believe that a language should provide "all the power you need" but "not too much more than you need." This is admittedly highly subjective. As a silly example: Suppose we made Ruby's syntax so extensible that we could bend and twist it pretty much any way we wished. It would only be days before some people started writing "Ruby that wasn't really Ruby." For example, someone would do: require 'ruby2pascal' and then the rest of his program would be in Pascal syntax. Someone else would do the same with Ada and whatever else is out there. At that point, yes, I would definitely go into a coma. Don't we see this happening to some limited extent already? I would say that some of the libraries and coding techniques I have seen in the past five years constitute "using Ruby's flexibility to undermine Ruby" -- if you will pardon the analogy, rather in the same way that terrorists have taken advantage of the freedoms in the USA to destroy those same freedoms. (I hesitated to type that last sentence, because there is no genuine comparison between casual misuse of a programming language and the taking of innocent lives. But I am speaking in a purely abstract sense: A sufficiently open system can be turned against itself to undermine that openness. Flames and political discussion will be redirected to /dev/null). I don't speak for Matz or claim any insight into his thought processes. However, that is exactly what I *strive* to do -- I strive to think like Matz. And in the light of things I have heard him say about macros, about continuations, and so on, I'm ignorant of Lisp. (Do people get tired of hearing me say that?) But I note that Matz is at least extremely cautious (I would say outright opposed) to having macros in Ruby. And yet he admits that callcc is also very powerful, yet he permits it to exist in Ruby. I perceive it as a balance. Of course, even Matz is not the ultimate genius of this planet. But he has created something very special in Ruby, in my opinion; something that could not have been created by a committee. There are many other people I want to learn from; but at the moment, he is at the top of my list. I would be pleased if Matz agreed with what I say here. But I would also be pleased if he disagreed, because that is another opportunity for me to learn. Cheers, Hal