From: Florian Gross Date: 2005-01-20T04:26:01+09:00 Subject: Re: value by reference Michel Martens wrote: > Actually I've never had the need for this hack, I just wanted to share > my opinion. That said, I think many people gets way too defensive > (offensive?) when this kind of issues arise. Lots of virtual ink is > wasted explaining why it won't work in the current model insted of > taking a look at the benefits it could bring. > > So far, the cons are two: > > 1. The current model doesn't support it. > 2. The performance would be poor: > > [...] but maybe that statement ("ruby doesn't > work that way") is enough to stop any further improvement. I disagree. I think there are some core principles of Ruby that make it Ruby. These should not change, especially not if there are no good sample situations that would require the change to work correctly. I'm not a conservative, but Ruby can not be everything for everyone, part of its attractiveness is that it is simple and consistent. If we keep adding everything that is requested that will not be true any more. I don't have anything against trying out this kind of ideas, hell, I've even done so repeatedly by myself, but there's a huge difference between requesting a change (or asking why it is not like that) and toying around with the idea. Toying around with ideas is IMHO a nice thing as it provides a way of testing new ideas without risking a complexity explosion in the main language. If the feature turns out to be worthwhile or important it can after all still be added. matz has one of the hardest jobs I can possibly imagine. If he does add something to Ruby that later turns out to be a bad idea he will have to slowly deprecate it and find a way around it. At that time it might also be too late however. I can certainly understand him being so careful about adding new things whose implications can not be seen up front. It's hard to do the right thing when adding new features is so easy and removing them is so hard. Maintaining overall simplicity however requires refactoring and removing stuff and breaking compatibility is frequently not an option.