From: "M. Edward (Ed) Borasky" Date: 2006-08-09T11:58:56+09:00 Subject: Re: Language chatter Francis Cianfrocca wrote: > It's fundamentally more natural for people to approach many computations > by imagining a working set of discrete values and constructing recipes > for manipulating them in discrete ways. It's fundamentally less natural > to construct what amounts to a mathematical field to do the same thing. > A perhaps poor analogy: most people have an easier time with arithmetic > on natural numbers than they do with group theory (even though they are > mathematically unified). > Well ... actually I think the "new math" experiment aka disaster showed the contrary. It was just as *easy* for grade school children to learn set theory, binary arithmetic, symbolic logic, groups theory, etc., as it was for them to learn addition, subtraction, multiplication, division, etc. But it was all useless when they got into the real world and couldn't balance a checkbook. :) > The contentious word in that paragraph is "natural," and it gets to what > I care about the most (writing all the software that needs to get > written with measurably high quality at a reasonable cost in dollars and > time). Is the Turing approach more "natural" or just more "familiar" > than the Church approach (even though they are mathematically unified)? > Well ... first of all, let's look at why there are computers at all. I won't expound on it here, since I posted my opinion at http://borasky-research.blogspot.com/2006/06/why-are-there-computers-attempt-to-be.html. But given that posting, I think the reason we followed the Turing and Von Neumann path rather than the Church/Curry/etc. path is simply that Turing and Von Neumann were both instrumental in applying computer technology to winning World War II, and Church wasn't. (At least as far as I know, Church wasn't ... if that's incorrect, please let me know.) To be a little more accurate, most of the things in computer technology we remember Von Neumann for occurred *after* WW II and so properly belong to the early days of the Cold War. Moving on, when it comes to "writing all the software that needs to get written", there just aren't any silver bullets, free lunches, etc. There aren't any "global optima" and I'm not sure there are even local optima. In short, we *satisfice*. The IAS machines were "good enough", the Cray 1 was "good enough", Lisp 1.5 was "good enough", (holding nose) FORTRAN II was "good enough", and Ruby 1.8 is "good enough." Ruby 2.0 will be better than 1.8 but it will still be "good enough."