In data 3/20/2005 said:
Hi --
I don't think anyone does. But that doesn't mean that every aspect of
its design has to have a countdown to removal or change, nor that new
things have to be added to it constantly. It *is* a good programming
language, you know
Agreed. I think it's healthy to throw ideas around, of course:
if someone thinks that a particular enhancement would work to
the advantage of the language then it should be by all means
voiced if only to see if others feel the same way. It could
even be seen as the responsibility of the community to provide
feedback to the language developers in the form of suggestions
as well as the obvious bug reports and such.
I suppose the important thing, though, is to not _demand_ things
(particularly since this service is provided free) and to not
be horribly insulted if one's suggestion is not viewed as essential
by others or even flat-out shot down (though courtesy could
certainly be reasonably expected from the duck hunters, too).
In any case, I'm not concerned about things breaking at 2.0. For me,
these "x without x" things are more a matter of too many shortcuts
and additions that don't feel entirely integral with the language.
For example, {|| } (lambda without lambda). For me, the question is
not whether it's possible to understand it (which it is). Rather,
the question is: if Ruby had been designed from the ground up with a
literal function constructor, would it have been {|| } ? If so, then
fine. If not, then {|| } would be an add-on that is not properly
integrated into the language.
Excellent point of view. Thanks!
And if the language really needs a literal function constructor, then
the best possible one should be chosen and everything else should be
rolled back until that constructor can be accomodated. And if too
much is rolled back -- if the language overall suffers -- then it
shouldn't be done.
For this particular issue I simply advocate formal first-order
functions of which class/instance methods are just, ah, special
lambda instances with certain scope and parameter bindings. I
certainly have no deep qualms with the current implementation
but, in my lay opinion, such a change would make things more
straightforward (to a user; it might be a language developers'
nightmare). Then again, I like Haskell.
I *think* that this is reasonably close to how Matz approaches things.
The lesson one learns repeatedly in all of this is: trust Matz -- he's
good at this!
Agreed.
David
E