Come Get Some

Sunday, January 01, 2006

Joel On Software

I don't read Joel's blog too much, but people point me at in on occasion and I take a gander. I usually find myself half agreeing with him. So now I've decided to record my partial agreement.

Joel's entire post: http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

Joel: "Instead what I'd like to claim is that Java is not, generally, a hard enough programming language that it can be used to discriminate between great programmers and mediocre programmers. "

He doesn't go on to explain this and I'm at a loss. Presumably based on his earlier comments he believes that C is hard enough to make such a determination. Why? If a person remembers to guard all their allocated resources and recover them on errors, does that indicate they are great rather than mediocre? There is definitely more to take care of in implementing most algorithms in C over Java. However, I don't see how getting all those details correct in an interview is an indication of very much. But if you want to see some details implemented correctly, why don't you ask a question that has algorithmic details to get right?

Joel: "You used to start out in college with a course in data structures, with linked lists and hash tables and whatnot, with extensive use of pointers."

Yes, but for those data structures the pointer manipulation is identical to the reference manipulation you'll do in Java.

Joel: "Now, I freely admit that programming with pointers is not needed in 90% of the code written today, and in fact, it's downright dangerous in production code. OK. That's fine. And functional programming is just not used much in practice. Agreed."

See, I agree with him sometimes.

Joel: "But beyond the prima-facie importance of pointers and recursion, their real value is that building big systems requires the kind of mental flexibility you get from learning about them, and the mental aptitude you need to avoid being weeded out of the courses in which they are taught."

I agree again, but I think Joel has blinders on. Most programmers don't make big systems. They make interdepartmental apps. And there is nothing wrong with that. There is way more demand/need for people to write those apps than to write big systems. Get some perspective, yo. You have to remember that even before Java became the rage at universities that Visual Basic was the most popular programming language. The schools aren't making people stupid. They are taking people who were never going to be great at programming and making them at least capable of creating "Yet Another Accounting Application".

Joel mentions MIT several times. I think MIT is an interesting school to hire from. There are a lot of very smart, very talented computer scientists coming out of that school. Most of them have done so little real programming that they are basically useless for that task. The kids from Carnegie-Mellon seem to more often be very skilled at both.

0 Comments:

Post a Comment

<< Home