[REBOL] Re: Tuples - Was Pair! thread
From: joel:neely:fedex at: 8-Feb-2002 8:28
Hi, again, Carl,
Carl Read wrote:
> Let's say you got your wish and REBOL was open-sourced and some
> here gave their REBOLs the ability to compare pairs for lesser
> and greater. Now, what's to stop them puting scripts on the Net
> that require those comparisons?
>
Absolutely nothing.
Except their own good sense and wish to have other people actually
USE their scripts. (And my earlier post touches on the point that
variations of this sort are *already* happening WRT various
libraries that people base subsequent code on.)
Why do we have to make the assumption that programmers must have
a centralized, absolute control "to stop them" from destroying
the universe?
> It's a recipe for a mess.
>
I must disagree. Let's use me as an example. A few months back
we had a discussion of zero-origin vs one-origin WRT blocks.
There is absolutely nothing *currently* preventing me from
writing my own custom definitions of AT , PICK , POKE , INDEX?
etc. that use zero-origin design, putting those definitions in
my user.r file, then writing code that depends critically on
that choice of origin. And then posting that code to the list.
Actually that's not correct. There's no *external*authority*
telling me that I can't do so, but I am restrained by my own
sense of ethics and my desire to have others use my work
and take it seriously.
If I kept posting such code to the list, I'd run the risk of
confusing newcomers to the language, and causing them to waste
their time, energy, attention, enthusiasm, and interest on code
that they wouldn't be able to use (and might think was their
fault or representative of the state of REBOL). That would be
wrong.
If I kept posting such code to the list, I'd get the reputation
of being "that crazy zero guy" and regular readers of the list
would simply ignore anything I posted. That would be detrimental
to my ability to contribute anything meaningful to the REBOL
community, which would make me unhappy.
However, both of those hypotheticals assumed that I failed to
provide appropriate disclaimers and explanation. Anyone should
have the right to post experimental or demonstration code along
the lines of "Here's what we could do if we had the foo feature"
as a part of a discussion of how things might be done. By the
same token, anybody who isn't interested in the discussion of
the foo feature is free to ignore such discussions. IMHO it's
just a truth-in-labeling issue.
Let's not forget that Freedom of Speech is A Good Thing, but it
also implies the equally important Freedom Not To Listen.
> Like HTML and Javascript are a mess. When HTML and Javascript
> are updated, are all browsers updated at the same time? No,
> because they're produced by a wide range of competing factions.
>
You left out the important adjective "commercial". In the dog-
eat-dog mentality epitomized by The Nameless Company From Redmond,
one must introduce incompatibilities in order to lock one's
customers into using only one's products, to the exclusion of all
alternatives. One's value is largely determined by how much one
can control other people's behavior.
In the marketplace-of-ideas mentality of open source (and the
entire educational system, I might add), there is the freedom for
vigorous debate, exploration, experimentation, and difference of
opinion, but the outcome is usually convergence on what works
best for the greatest number of people. One's value is largely
determined by how much one can contribute that others find to be
useful to their needs and circumstances.
However, the number of outright geniuses that can blaze brilliant
new trail and accumulate a following is an incredibly small portion
of the total community (and the community usually figures out who
they are fairly quickly -- massively parallel processing works!)
The bulk of the community are pragmatic folks who want to get a
job done. They are motivated to stay with what has been shown to
work well, rather than chasing the latest fad. Therefore their
work tends to be portable and re-usable. And -- if it's open to
the community -- others are usually more than willing to help them
make it more so.
I might point out that there's another variation on this issue; in
a standards-and-interoperability-driven world, much of the energy
of competition goes into doing the BEST job of delivering tools
that conform to the standard, so that the consumer gets to make
her/his own choices within the price/performance/features space.
Having a published standard for residential electrical outlets
(and then letting companies do their best to produce desirable
outlets and extension cords) is IMHO a far more beneficial state
of affairs than requiring everyone to buy their cords from a
single manufacturer.
Is that a perfect solution? Probably not, for most definitions
of perfection. Does it always make everyone maximally happy?
No.
But as one wag remarked regarding democracy, "It's the worst
system possible, except for all of the alternatives!"
-jn-
--
; sub REBOL {}; sub head ($) {@_[0]}
REBOL []
# despam: func [e] [replace replace/all e ":" "." "#" "@"]
; sub despam {my ($e) = @_; $e =~ tr/:#/.@/; return "\n$e"}
print head reverse despam "moc:xedef#yleen:leoj" ;