[REBOL] Re: Philosophical (was "UnRebolish") commentary
From: joel:neely:fedex at: 26-Sep-2000 8:15
> [webdev--accglobal--net] wrote:
> ... Do not
> attempt to do anything more serious than a napkin sketch of this
> method without the supervision of an adult or perhaps an attending
> physician unless you wish to go numerically mad with something akin to
> a division by zero.
> Thanks for the feedback, ...
Thanks for the question!
> it was most enlightening and informative.
... and fun! AFAIAC, it provided a welcome break from a very
frustrating network infrastructure problem. Also, by concidence,
it arrived the same day I found the following link:
to a page bearing the title
In Pursuit of Simplicity
the manuscripts of
Edsger W. Dijkstra
[If you don't want to bother with reading the remainder of this
note, please feel free to skip it. But PLEASE don't skip the
opportunity to look through the collection of papers under the
For those who've had the pleasure of reading his EWD series, this
site is a MAJOR treat. Dijkstra is a world-class thinker and
writer in computing science whose entire career is been marked
by the pursuit of simplicity and elegance in the description and
design of algorithms and proofs.
Although his writings are off the beaten track, and though he
uses his own notation for some things, and though he can be very
intellectually demanding (all of which remind me of REBOL),
almost everything he has written has hidden rewards to the reader
who is patient enough to work through it.
His contributions to programming include such crown jewels as:
* invention of the "semaphore", now widely used as a means of
synchronizing concurrent threads/processes,
* the eponymous algorithm for finding the shortest path
between two points in a graph,
* the first clear description of using a stack to support
procedure scoping/entry/exit (created during early
implementation efforts for Algol 60!),
* a lovely, minimalist, nondeterministic programming notation
used for the design and proof of programs (a small part of
which I implemented in REBOL a few months back with great
assistance from the members of this list -- the EWD/if and
EWD/do selection and iteration structures).
He is probably best known to the larger programming community
as the author of the letter published under the title,
go to Considered Harmful
in the Communications of the ACM,
which (for good or ill) is usually credited as the spark that
ignited the "structured programming" movement (although he should
not be blamed for all of the things that have been done under the
cover of that banner!)
His career-long pursuit of beauty as a prime criterion of quality
in programming strikes me as wholly aligned with what I perceive
as "the spirit of REBOL" (and I'm not saying that just to
achieve ob-REBOL-relevance ;-) In particular, let me recommend
that you give a close (and patient! ;-) reading to
which -- although written in 1961 (!) -- states forcefully that
it is the responsibility of a programming language to assist
the programmer in clearly stating reliable algorithms, and that
this responsibility is more fundamental than simply minimizing
CPU cycles or memory bytes. [Over-simplified araphrase, and any
errors therein, are my fault.]
Dijkstra's forceful, uncomprimising, artistic personality and
attitude appear almost quixotic (in the fullest sense! ;-),
especially when he tackles none-too-subtly the behavior of
IBM (the Microsoft of the 60s and 70s). His article entitled,
How do we tell truths that might hurt?
, available at
(from 1975) is a collection of pointed sayings including:
"The problems of business administration in general
and data base management in particular are much too
difficult for people that think in IBMerese, com-
pounded with sloppy English."
"Many companies that have made themselves dependent
on IBM-equipment (and in doing so have sold their
soul to the devil) will collapse under the sheer
weight of the unmastered complexity of their data
and (the last quotation -- I promise!) one that deserves to
be tatooed on the forehead of every programmer (and inside
the eyelids of every programming language designer!)
"The tools we use have a profound (and devious!)
influence on our thinking habits, and, therefore,
on our thinking abilities."
The experience of over 25 years' of exposure to Dijkstra's ideas
is one of the most fundamental reasons why I appreciate REBOL as
much as I do -- and probably also why I sometimes come off as
such a curmudgeon! I'd be flattered if either caused someone
to think of Edsger!