12/29/05: Computer Science vs. Software Engineering

Joel on Software has a great essay about the "dumbing down" of CS curricula world-wide that happened when they all decided to teach Java instead of C and Scheme. While I believe Java is better than C, they are both terribly flawed languages and teaching them is best left to vocational schools -- or, as Joel says, to the first week on the job for someone who already knows functional programming and pointers.

A flaw in Java as a pedantic language left unmentioned by Joel is that people who learn Java think that because they've learned a language with some Object-Oriented features that they've also learned OOP/OOA/OOD. No such luck. As I have mentioned before (and will again -- have a draft post on that very topic), OO is hard. As my pal Miško says,
OO is like teenage sex: everyone says they're doing it, almost nobody is doing it, and those who are doing it aren't very good at it.
At least with MIT's Scheme curriculum there was no pretense of OO: you're learning data structures, and algorithms, and recursion, and continuations, and you get to fully and deeply learn about each.

And argh, why do OO teachers do inheritance first thing out of the gate? Inheritance is just delegation plus polymorphism, with some really nasty semantic problems attached (overloading, multiple inheritance, virtual method dispatching, fragile base classes, etc.)...

Comments made


The new era hats also have a way of giving you a chance to enhance your clothing looks. Depending on the site you visit online to shop, these products normally vary.
03/13/12 20:17:23

Add comment

Sorry, but due to blog comment spam, I have to ask you to create an account before you post a comment. Please log in (using the form on the top right of the page) or click here to create an account: Create an account!