I loved to hear the news about OOP being pushed ahead and turned non-essential in the CS course at CMU. I applaud the decision!
Much of the arguments against the move are sounding to me like any other discussion that involves OO in general… First of all, it always falls back at OO’s _definition_.
I believe in integers, vectors, data structures, algorithms, procedures. I understand what are “objects”, but the truth is “methods” are not much more than syntactic sugar, and most of the high-level OO theory only serves to please those paranoid library programmers to forbid their users to do this or that… It’s all about scope, permissions… Why is this taken as so much essential to programming?
“Paranoid Object-Oriented Programming” (POOP) may have its place in the industry, when you have to make libraries that will be used by hundreds of thousands of tired/lazy/bad programmers to make critical and very large applications. But the university must not make this paramount. Students must focus back on more essential aspects of programming.
This obsession with OO also grew along with Java. Universities kind of picked it up from the industry and started to turn CS courses into “Java programming” courses. Could it be that this weakening of the OOP fever is related to the dusk of Sun?
via Existential Type