---1077017559-668567649-1114355740=:32332
Content-Type: MULTIPART/MIXED; BOUNDARY="-1077017559-668567649-1114355740=:32332"
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
---1077017559-668567649-1114355740=:32332
Content-Type: TEXT/PLAIN; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: QUOTED-PRINTABLE
Is this something you have real reason stood behind Matz's design
decisions, or is it just an unkind jab at a design you don't happen to
like?
Ok, I'll try to clear some things up...
I seem to detect an assumption that being backwards-compatible with=20
programmers of more classic languages is something that is negative.
I *haven't* said that.
Maybe the "backwards" word is loaded with negative connotations... but so=
=20
is every other word, given a certain set of expectations on what could be
meant.
It's "backwards" in the sense of just "older", "predating", ... and not in=
=20
the sense of (insert insult here).
One could happily continue using just classes -- and I am still coding in=
=20
a 99% class style, and not going to change anytime soon.
In related news, a lot of people are still using C using techniques of 30=
=20
years ago, and the programs written that way work, and take a large part=20
of making the planet run, and those programs may even be reasonably=20
readable and adaptable, no matter how much the fashion has switched=20
towards class-based programming in the last 15 years. (!) Though surely=20
OOP is not "fashion" in the same way that platform-boots are: there is=20
actually a strong objective advantage to it, but it's just that it doesn't=
=20
show up in all situations, and that the teaching and understanding of how=
=20
to take advantage of OOP hasn't propagated to 100% of the industry yet...=
=20
just like any other piece of knowledge.
However, in Ruby, the design suggests that we're putting a foot in the=20
realm of object-based (in the sense of "prototype"-based) programming, but=
=20
only on top of a more classic design. In retrospect it might have been a=20
good idea to just jump into the prototype-based system beforehand, and=20
then implement a classic class-based system on top of it, akin to what the=
=20
standard libraries of most prototype-based languages are already doing=20
anyway. It probably wasn't something that was that obvious when Ruby was=20
created (and frankly, back then in 1995, *I* didn't know any other OOP=20
than C++).
Adding prototype-like behaviour on top of a class-based system is=20
something interesting, and an idea that was worth trying, but seeing how=20
much head-scratching it generates in ruby-talk, compared to the amount of=
=20
advantage that can be extracted from the concept, I'm now thinking that=20
maybe it wasn't a good idea after all -- and, I repeat, it's not something=
=20
that was much foreseeable 10 years ago, which is why the experiment was=20
worth trying in the first place.
Does that pretty much eliminate the "unkind jab" hypothesis?
Of a more general interest about discussing concepts:
It isn't often that I just like or dislike a programming technique just=20
out of a whim, and when I do, I slap my hand, call myself stupid, and=20
correct the shituation. However I alternately am perceived as too terse=20
and too verbose and it seems like there's no middle ground, but that might=
=20
be because there is no other way to explaining ideas that are not already=
=20
commonplace, than to get long-winded about them. Sometimes I make the=20
mistake of writing something in koan style, but the catch is that the koan=
=20
style is only good for reminding, and not to teach.
Does that clear things up?
,-o---------o---------o---------o-. ,----. |
| The Diagram is the Program (TM) | | ,-o----------------------------o-.
`-o-----------------------------o-' | | Mathieu Bouchard (Montr=E9al QC)=
|
| |---' |
http://artengine.ca/matju |
| | `-o------------------------------'
---1077017559-668567649-1114355740=:32332--
---1077017559-668567649-1114355740=:32332--