Re: [Haskell-cafe] education or experience?

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. Pattern matching--native to string processing (e.g. COMIT, SNOBOL). Appeared nearly in its present form in COGENT (1965). Booleans as first class*--surely this is a joke. Algol 60 had them. Matlab exploits them heavily (though represented as doubles). Data orientation--COBOL fostered this outlook; see Michael Jackson. As long as Lisp ruled, FP lagged on data types. 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.

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

On 9 Dec 2012, at 16:31, Doug McIlroy wrote:
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.
Lazy evaluation for the lambda calculus - 1971 (Wadsworth) Lazy evaluation in a programming language - 1976 (Henderson&Morris, Friedman&Wise) I wouldn't call those dates late, especially since VisiCalc, the first widely-used electronic spreadsheet entered the market in 1978. Regards, Malcolm

On Sun, Dec 9, 2012 at 11:04 PM, Malcolm Wallace
On 9 Dec 2012, at 16:31, Doug McIlroy wrote:
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.
Lazy evaluation for the lambda calculus - 1971 (Wadsworth) Lazy evaluation in a programming language - 1976 (Henderson&Morris, Friedman&Wise)
I wouldn't call those dates late, especially since VisiCalc, the first widely-used electronic spreadsheet entered the market in 1978.
Regards, Malcolm
You are reading an associativity/parse to Doug's post that he probably did not intend. "FP came late" was meant to apply to the data orientation (I think) thanks to the long domination of Lisp

On 10/12/2012, at 6:34 AM, Malcolm Wallace wrote:
On 9 Dec 2012, at 16:31, Doug McIlroy wrote:
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.
Lazy evaluation for the lambda calculus - 1971 (Wadsworth) Lazy evaluation in a programming language - 1976 (Henderson&Morris, Friedman&Wise)
Pop-2 had lazily evaluated streams about 1970. In fact that's how it did input: a 'character producer' was nothing other than a lazily evaluated list of characters. The book about it appeared in 1971.
participants (4)
-
Doug McIlroy
-
Malcolm Wallace
-
Richard O'Keefe
-
Rustom Mody