Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[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