
<snip>
Call me elitist if you want, but I don't want anyone who refuses or is unable to learn calculus to be, eg, a civil engineer. He don't have to be an expert in real analysis, but if he don't understand the basics, I don't want him building any bridges that I'm going to be driving on!
Excellent point that certainly does not make one an elitist. Many engineering disciplines such as civil, chemical, architectural, aerospace, etc. enjoy a mature relationship between their best design practices and mathematics/hard science. Also note that a bad bridge almost certainly endangers multiple peoples' lives (consider the history behind http://www.ironring.ca/).
In a similar way, if a someone refuses or is unable to learn the mathematical foundations of computation, I don't think I really want him programming any systems that I'm going to be relying on. He don't need to be an expert in category theory, but if programmers aren't learning the skills they need to understand the basics and mathematical notation of PL theory, then something is very, very wrong. (Not to beat you over the head with my point, but what I'm saying is that programmers really ought to know this stuff and the fact that most do not is a terrible state of affairs).
I hope to someday agree with this, but for now I cannot. The fact of the matter is it's a rare case when a programmer's lack of mathematical background threatens lives. If my GUI crashes, I'm angry but not injured. Programmers make a living without the math background because the vast majority of employers don't seek it--their products simply don't need it. Note that I said "rare case"; I think there are plenty of safety critical programs out there. Consider the shuttle, deep-sea equipment, military or medical equipment, etc. Now if the programmer you're worred about is on one of these projects, I most certainly share your unease. Software engineering is as of yet misnamed. A professional engineer's design work should never include figuring out why the first attempt exploded/collapsed/failed--professionals in mature engineering fields only debug catastrophes. My intended takeaway is that design in software engineering does not yet compare to design in the mature engineering fields. In my engineering-centric opinion, the goal of computer science is to enrich the design principles of software engineering so that it does compare. [Disclaimer regarding that paragraph's punch-line: there's obvious gradations between engineering fields, as well as gradations within a field between researchers progressing the best practices and professionals simply using best practices.]
If a responsible scientist wanted to counter this cynical, mean-spirited, and generally Luddite and Philistine argument, what would he or she say?"
Mu
Rob Dockins
Speak softly and drive a Sherman tank. Laugh hard; it's a long way to the bank. -- TMBG
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Nick Frisby