Previous Entry Share Next Entry
01:20 pm, 29 Dec 05

java schools

Joel is totally wrong in complaining about Java schools: programming is about the programs, not about the features of the language you use.

What I think he wanted to say, though, is that schools that use Java seem to correlate with schools where the grades are not discriminative of good programmers, and I do believe this may be true, in part because Java correlates with computer-science-as-skill schools instead of computer-science-as-science (and more generally, schools with good names). But it is pretty easy to make classes more discriminative: make them harder. I had a few classes in school which were difficult and the grades reflected that; in one of the hardest I did most of my homework in matlab. The hardest one I was involved in teaching used Ruby.

C pointers and bit-munging are just another piece that can be learned, like writing an event-driven program (GUIs and select()), or what monads are or how to use threads properly and efficiently or what "fold" is -- and you'll note that the rest of that list can all be done with Java. His mention of segfaults as some primary level of difficulty is easily recast at a lower level (I think of poor jeffr debugging with a logic analyzer) or a higher one (imagine trying to figure out why your distributed system deadlocks).

(Finally, and especially sadly to this functional programmer, people like to point at MapReduce as why functional programming matters but it's just as easily understood as some libraries with some constraints on data flow for efficiency reasons. I do think functional programming matters, but this is not why.)