
On 25/10/2010 10:36 PM, Gregory Collins wrote:
Hypothesis: The fact that the average Haskeller thinks that this kind of dense cryptic material is "pretty garden-variety" notation possibly explains why normal people think Haskell is scary. That's ridiculous. You're comparing apples to oranges: using Haskell and understanding the underlying theory are two completely different
Andrew Coppin
writes: things. Put it to you this way: a mechanic can strip apart and rebuild an engine without knowing any of the organic chemistry which explains how and why the catalytic converter works. If you work for Ford, on the other hand...
I didn't say "people think Haskell is scary because type theory looks crazy". I said "people think Haskell is scary because the typical Haskeller thinks that type theory looks *completely normal*". As in, Haskellers seem to think that every random stranger will know all about this kind of thing, and be completely unfazed by it. Go look at how many Haskell blog posts mention type theory, or predicate calculus, or category theory, or abstract algebra. Now go look at how many Java or C++ blog posts mention these things. Heck, even SQL-related blogs tend to barely mention the relational algebra. (Which, arguably, is because actual product implementations tend to deviate rather radically from it...)
P.S. I did my computer science graduate work in type theory, so I may not be an "average Haskeller" in those terms. By "garden-variety" I meant to say that the concepts, notation, and vocabulary are pretty standard for the field, and I had no trouble reading it despite not having seriously read a type theory paper in close to a decade.
OK, fair enough.
If I were to somehow obtain this book, would it actually make any sense whatsoever? I've read too many maths books which assume you already know truckloads of stuff, and utterly fail to make sense until you do. (Also, being a somewhat famous book, it's presumably extremely expensive...) Introductory type theory is usually taught in computer science cirricula at a 3rd or 4th year undergraduate level. If you understand some propositional logic and discrete mathematics, then "probably yes", otherwise "probably not."
I don't even know the difference between a proposition and a predicate. I also don't know exactly what "discrete mathematics" actually covers. Then again, I have no formal mathematical training of any kind. (You'd think holding an honours degree in "computer science" would cover this. But alas, my degree is *really* just Information Technology, despite what it says on the certificate...)