Philosophical (was "UnRebolish") commentary
[1/3] 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: http://www.cs.utexas.edu/users/EWD/ 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 above page!] 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 http://www.cs.utexas.edu/users/EWD/MCReps/MR34.PDF 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 http://www.cs.utexas.edu/users/EWD/ewd04xx/EWD498.PDF (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 processing systems." 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! -jn-
[2/3] from: rsnell::webtrends::com at: 26-Sep-2000 9:14
Very insightful, Joel! I found it interesting, however, that you omitted a quote in the EWD498 document that reads: [Projects promoting programming in "natural language" are intrinsically doomed to fail.] Since Rebol has been designed to have a "natural language" slant (esp. dialects) - is it doomed to fail? (And no btw, I don't agree with that - look at the VID - it is "natural" mainly in it's ease of getting the job done, not in humanized language terms). Just an interesting aside... Rodney
[3/3] from: joel:neely:fedex at: 26-Sep-2000 16:39
> I found it interesting, however, that you omitted a quote >
(I felt I was seriously in danger of overstaying the reader's patience, and had forgotten to put on my asbestos knickers, as well... ;-)
> in the EWD498 document that reads: > > [Projects promoting programming in "natural language" are > intrinsically doomed to fail.] > > Since Rebol has been designed to have a "natural language" > slant (esp. dialects) - is it doomed to fail? >
Bear in mind that EWD was already a practicing computing scientist when COBOL came on the scene. One of the big sales pitch points in the early days of COBOL was "Now the managers will be able to read their programmers' code to see if it is correct -- after all, it's English." In later years, the AI crowd kept predicting that within 5-10 years, we'd be able to do without programmers -- just tell the computer what you want it to do in plain English! (However, over time it became apparent that natural language interfaces to computing systems were ALWAYS 5-10 years in the future, regardless of the current year...) In the early 70s, there was even one company which had a database system whose command language was "English (tm)". These days, the most-popular-programming-languages list includes C, C++, Java, Perl, and Python; not English, Spanish, nor German. Human communication thrives on expressiveness, humor, subtle connotation, and (sometimes even deliberately) ambiguity. Instructing computers still requires precision, clarity, and unambiguity. I have yet to see any evidence that the same mode of communication serves well both sets of criteria.
> (And no btw, I don't agree with that - look at the VID - > it is "natural" mainly in it's ease of getting the job done, > not in humanized language terms). >
I believe EWD was using the phrase "natural language" in the sense of "a language that humans already know, such as English, Spanish, or German". I believe that when a knowledgeable person with experience in a technical area (e.g., a member of this list) looks at a notation for accomplishing some sophisticated task, and describes it as "natural", that we're dealing with a different meaning entirely -- approachable, clear, learnable, relevant, certainly, but not a kind of communication that J. Random Couchpotatoe would be expected to walk in off the street and start speaking with no training. I recall an article from several years ago which cited a number of bad (some nearly catastrophic) business decisions due to bugs complex spreadsheets presumably built by folks who thought they didn't need programming skills. So, having come the long way around, no. I don't believe that REBOL is "doomed to failure", not because I don't agree with EWD, but because I really don't believe that REBOL is doing what he criticized. -jn-