[plt-scheme] five degrees of ignorance (was: Re: to define, or to let)
Bill Richter wrote:
http://list.cs.brown.edu/pipermail/plt-scheme/2004-April/005660.html:
> > That is normally the case, is it not?
> Uh, we normally don't know what we're doing? Hmm, seems like a
> pessimistic view of the human race. Perhaps you're right :D
I'd call it a realistic view. As Donald Rumsfeld[1] famously
elucidated, There are known knowns,... there are known
unknowns,... but there are also unknown unknowns. It is the latter
that turn out to be a bitch. Philip Armour[2] calls these the zeroth,
first, and second degree of ignorance, respectively. (There are also
third and fourth[3].) The reason I mention this is because I secretly
hope that Anton is going to read the book[2] and summarize Armour's
wisdom for us in a concise Zen koan[4] for which he is deservedly
famous[5].
As Armour points out[6], software is a medium for storing knowledge in
an executable form. The more knowledge is captured, the higher the
software's value. In light of this, does it make sense to introduce
and maintain a conscientious distintion between code where order of
evaluation doest not matter and code where it does? As Anton, Brad,
and Joe have repeatedly and convincingly argued, the answer is a
resounding yes. You pack more knowledge into your software by being
cognizant of the evaluation order dependencies or lack thereof. I'd
like to thank you guys for hammering this point home.
I will now return to my regularly scheduled programming. (In Java.)
Thanks,
Vadim (previously deeply suspicious of unspecified eval order)
References
1. http://www.google.com/search?q=Rumsfeld+known+unknowns
2. http://www.amazon.com/exec/obidos/tg/detail/-/0849314895/
3.
http://portal.acm.org/citation.cfm?id=352194&coll=Portal&dl=ACM&CFID=18395474&CFTOKEN=78700527
4. http://www.ai.mit.edu/%7Egregs/ll1-discuss-archive-html/msg03277.html
5. http://www.ruby-talk.com/blade/96368
6.
http://portal.acm.org/citation.cfm?id=345131&coll=Portal&dl=ACM&CFID=18395474&CFTOKEN=78700527
http://www.corvusintl.com/CACM_Aug_2000.htm