[REBOL] Re: Correct Behaviour? Was False = 2 ????
From: jeff:rebol at: 5-Jul-2001 11:32
Hello, Robbo:
> Are you saying then that almost ALL other computer
> languages get this wrong then by using zero based indexing?
I don't think it's a question of wrong or right. As I said
to Joel, previously:
"Weigh the advantages of zero based indexing against it's
lack of conceptual portability."
The fact that people do use zero based indexing in some
limited areas is immaterial compared to the areas where one
based indexing is used, and no one seems to have argued
otherwise. I haven't heard a 0-baser argue that 0-based
indexing is what most people are used to in everyday life,
only that people can understand it. Sure, we can understand
lots of things..
This gets to justifications of REBOL design decisions. I'm
not qualified to speak too broadly here, but I have had some
experience with what goes into making design decisions in
REBOL.
One of the mainstays of REBOL's design is to prefer
familiarity and intuition to "academic correctness".
One big example is REBOL's free format. Free form is less
"academically correct" because arity becomes ambiguous.
What could the following be?
foo bar baz
It could be that foo is a function taking two arguments. It
could be that foo is a function that takes one argument, and
bar is a function that takes one argument... It could be
that none of them are functions.. etc.. etc..
So if we're interested in academic correctness we can't have
free form code, and scripts look ugly because we have to
parenthesize everything, and then I enjoy coding in REBOL
less since I now have to fully qualify everything because
someone wanted correctness above all.
ML is an academically correct language and it is such a pain
to create even a simple program in, let alone one that
builds GUIs, talks to the net, mines data, etc ..
It's not a matter of right or wrong, or if it is, "right"
for REBOL is more often defined as being better for more
people, easier to use, friendlier to the eye and mind -- and
often times that means that "academically correct" is
"wrong".
> There is still MUCH room for improvement in terms of the
> final language design of REBOL IMHO.
>
> Do you agree?
Eh.. I like to keep things in perspective.
It may be more gratifying for you and those of the "REDESIGN
REBOL" mind-set to characterize REBOL's design as very much
incomplete. REBOL is a work in progress, true, but
personally, I don't see where all this is getting us. Is
this really an area crying out for great design improvement?
Beyond that I don't see much "alternative" design being
offered up that maintains or embraces the hard fought goals
of REBOL.
I mean, if you're just using vaguely defined notions of
"right" and "wrong", "academically correct", or "all the
other languages are doing it too" as justifications for your
design, then I think you've totally missed the boat.
I'm happy with the design decisions in REBOL because I know
they were made very consciously, with out haste and always
with the best of intentions. There's not a single simple
formula to those decisions. Many times there has been much
agonizing over the addition of even the smallest piece of
functionality. But it's this great conscientiousness of
design what makes REBOL such a swell language.
It seems fairly obvious to me that the kind of REBOL others
might build may not be as thoughtfully constructed -- though
perhaps they might be more consistent.
:-)
-jeff