It's of particular interest to me because it really strongly illustrates the gulf between the two. It's a pretty solid introduction to both of their positions, and goes in interesting places.
> Imagine if I wrote hopefully useful code, but it was extremely hard to read
> and poorly documented... What properties would we expect that code to have?
This is not the right analogy. The right analogy is a C programmer looking at some Haskell code, and complaining that they don't understand where memory is allocated, where the pointers are. I mean, after all, who can get real work done without pointers?
Let's examine his essay, but substituting in Haskell and C... actually, wait a minute. I know I've heard this before... ah yes, here: http://byfat.xxx/chomsky
Okay, so that's only kinda what I'm saying... what would you think about this paragraph?
> But from 50 years in this programming game, I have learned two things: (1)
> I can ask friends who work in object oriented areas to explain it to me at
> a level that I can understand, and they can do so, without particular
> difficulty; (2) if I'm interested, I can proceed to learn more so that I
> will come to understand it. Now functors, arrows, hylomorphisms, monads,
> etc. --- even first-class functions, whom I knew and liked, and who was
> somewhat different from the rest --- write things that I also don't
> understand, but (1) and (2) don't hold: no one who says they do understand
> can explain monads to me and I haven't a clue as to how to proceed to
> overcome my failures. That leaves one of two possibilities: (a) some new
> advance in intellectual life has been made, perhaps some sudden genetic
> mutation, which has created a form of "programming paradigm" that is beyond procedural
> programming, structured programming, etc., in depth and profundity; or
> (b) ... I won't spell it out.
You'd probably say "seriously, stop being an idiot. Haskell is hard, and strange, and weird, but it has value. If you like C just keep on writing C, no need to be such a jerk about it. But Haskell is for doing different kinds of programming than C."