
Thanks Doug for reminding me of points that I had forgotten (and which are
new)
I will insert them into the blog
My comments inline
On Sun, Dec 9, 2012 at 10:01 PM, Doug McIlroy
Yes... CS academics delivers less than it could/should; and whatever this delivery is, its asymptotically sub-linear. Some of it is to do with the not-quick-enough takeup of FP in academia, though there are obviously many other factors as well.
http://blog.languager.org/2011/02/cs-education-is-fat-and-weak-1.html and sequel is about this: how we are not getting over the quirks of the past history of CS in present day teaching. Here too suggestions for modifications/ change of emphasis are appreciated.
Rusi's cogent blog post includes a list of techniques/concepts that the "unconverted" could profitably pick up from the FP community. In fact the FP community came late to some of these, just as programming languages at large came late to garbage collection.
Lazy evaluation--at the heart of spreadsheets since the beginning.
Never thought of that -- nice!
Pattern matching--native to string processing (e.g. COMIT, SNOBOL).
Snobol -- yes, comit Ive heard of but dont know Appeared nearly in its present form in COGENT (1965).
Hmm google gives me different cogents/ I guess you are referring to the Reynolds one? Booleans as first class*--surely this is a joke. Algol 60 had them.
Not sure what you are saying (unless its about the footnote that Boole treated bools as ints! This is new to me) I was referring to the fact that C programmers have great difficulty thinking of bools as first class for similar reasons to why lists as first class is hard. [And python programmers also for that matter, whose language does not have a proper first class bool type]
Matlab exploits them heavily (though represented as doubles).
Not sure what you are referring to Data orientation--COBOL fostered this outlook; see Michael Jackson.
Interesting! I wonder though whether you and I use 'data-orientation' in the same way? See below.
As long as Lisp ruled, FP lagged on data types.
A tendentious point: A lisper would say that since Lisp from the beginning had a universal data-type, it need never bother to restrict types. [Note I recollect first hearing the term data orientation from SICP]
FP also deserves credit for infinite data structures (though the special case of stream processing dates way back).
Doug McIlroy
* It's amusing to note that "real" Booleans--the ones that Boole used--were integers. For Boole, or(a,b) = a + b - a*b.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe