[REBOL] Re: Tuples - Was Pair! thread
From: joel:neely:fedex at: 8-Feb-2002 7:36
Hi, Carl,
I must disagree with the assumption that open source software
will "be sure" to fork. (I assume we're talking about the
issue of random incompatibilities due to the uncoordinated
fiddling about of various random individuals, and not the
kind of version-to-version evolution -- and occasional lack
of backward compatibility -- that every real programming
language I've used during my 30+ years in computing.)
Carl Read wrote:
> That may be fine for some software, but it isn't for a cross-
> platform, cross-Internet language. You can be sure that once
> people started rolling their own REBOLs the Net would fill up
> with scripts that weren't compatible with your version of REBOL.
>
The history of the open source movement doesn't bear this out.
Instead of sending the impassioned pages of deathless prose that
I was first inspired to write ;-) I'll simply point out that some
of the most important languages and tools, and IMHO one of the
most significant developments in operating systems in many years,
are all open source.
Perl, Python, Ruby, gcc, Linux, GIMP, gawk, gnu-make, emacs,
vim, gtk, Gnome, Apache, ...
Far from destroying these languages and tools, the availability
of source has caused them to be ported to far more platforms than
the inventors ever would have been achieve to do on their own,
and debugged far more rapidly.
Most of these use some combination of respected-leader-guidance,
delegated-responsibility-network, and marketplace/democratic
let-people-try-it-and-see-what-wins strategies to effect the
evolution and maintenance of the software. Do people try out
different, unorthodox, and even hairball ideas? Absolutely!
But the open source community does a good job of distinguishing
experimental/unstable/work-in-process releases/branches from
stable versions that represent the collected wisdom, preferences,
and QA of hundreds, thousands, or tens of thousands of eyeballs
and brains.
Serious developers also know -- assuming they want their work to
be accessible to the widest range of users -- that they should be
cautious about depending on uncommon features, libraries, etc.
The wild-eyed crazies who go off in random directions trying to
make their pet version of emacs scriptable in VisualIntercal++
are free to do so, but their gibberish isn't taken seriously.
Unless, of course, it's really good, in which case it will gain
enough of a following that it will begin to influence the
addition of capabilities to the "official" version. But people
still know which is which. That's called massively-parallel
progress.
On the other hand, the very nature of highly-extensible languages
such as FORTH, Smalltalk, and REBOL tends to work in *exactly*
the direction you feared. How many people on this list have a
library (or two, ...) of their own favorite tweaks and functions
and then write new code based on those extensions? How many
experienced REBOL users have customized their user.r files?
How many times have we seen:
- A bug reported and someone responding with a fix of the form
"here's a rewrite of that function; put this in user.r" ?
- A posted script, followed by a post that says "It doesn't work
on my box", followed by a post that says "Ooops, here's my
foo.r" or "Go get so-and-so's quux.r"?
and so on. Open source doesn't create such problems; it actually
helps alleviate them because it's a more efficient mechanism for
fast-cycling both the bug finding/fixing process and the rate of
scrutinizing (and then adopting or rejecting) potentially useful
new ideas.
I truly believe that open source works, and is in the long-term
best interests of the advancement of our art. Consider where
we would be without a modern educational system, which is founded
on the notion that one achieves value to society by creating new
ideas (or new ways to express useful ideas) ang giving them away
as rapidly and enthusiastically as possible. Consider the fact
that students of architecture can learn their field by going and
looking at all of the details of the design and construction of
great buildings. Even in the failure of specific projects, there
is value in openness. What if the design of the Tacoma Narrows
bridge had been kept secret? How many more bridges might have
collapsed (and with what potential loss of property and life) if
the next generation of engineers had been prohibited from seeing
both the design and construction of Galloping Gertie?
All of that said (and aren't you glad I shortened it ;-) , I am
a firm believer in the right of a creator to determine the fate
of his creation. REBOL is Carl's baby, and he (alone!) has the
moral right to decide whether he will make it available via
open source or whether he wishes to keep it closed.
Likewise, prospective users of REBOL (or any other tool) have the
right to make their choices: either to invest their time and
energy in a language that they know in advance is not an open
source project, or to take themselves and their time and energy
elsewhere. Either way, all parties should respect the rights
and decisions of the others.
-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" ;