all 4 comments

[–]Vulptex 2 insightful - 2 fun2 insightful - 1 fun3 insightful - 2 fun -  (3 children)

CS classes teach too much OOP

[–]MuhUkraine 1 insightful - 1 fun1 insightful - 0 fun2 insightful - 1 fun -  (2 children)

Yeah, I agree with that 100%. OOP is just such a boring, irrelevant dead-end. Teach the basic syntax (dot operator, access modifiers) and then move on.

I don't even think academics have much of a desire to teach OOP. They started doing it as a somewhat misguided nod to supposed software industry needs.

[–]Vulptex 1 insightful - 1 fun1 insightful - 0 fun2 insightful - 1 fun -  (1 child)

Academics teach you to make objects for everything. Basically make as many classes as you can, and use getter and setter methods for everything, even though it's way more complicated and a lot slower.

And I honestly think that C would be one of the easiest languages, aside from pointers, if only people actually made any libraries for it. That's the real reason high level languages are so much easier, because people make a lot of libraries for them, not because of the languages themselves.

[–]MuhUkraine 2 insightful - 1 fun2 insightful - 0 fun3 insightful - 1 fun -  (0 children)

Academics teach you to make objects for everything. Basically make as many classes as you can, and use getter and setter methods for everything, even though it's way more complicated and a lot slower.

That's interesting. I was educated in C, Ada, and Motorola 68K assembly. OOP became a mandatory class right after I graduated. I never took it, and there was very little room in the classes I did take for that kind of fluff. I mean, if you've got a class that's all about writing a Pascal compiler, you just won't finish the job if you start out with a bunch of time-wasting UML diagrams and hooey about classes and inheritance.

The style you're describing is something I do associate with corporate "architect" types (who I have come to believe should be kept on a tight leash by management). Watching how these people have changed in their thinking over the years, my feeling is that OOP is dying, but it has a loooong tail. Masturbatory getters and setters will be with us for a long time yet, if only because even as we finally embrace a more functional paradigm, we are still trapped in "OO" languages with syntax that forces some modicum of OOP.

Put more simply, we live in a world where you have getters and setters but even the architects have admitted that the latter were always a terrible idea. The single greatest legacy of OOP is a whole bunch of syntax, code, books, etc. that are just dead wrong. "Take this OO language but make sure you don't mutate state... even though it kind of begs you to" is the difficult task being asked of today's programmers, and that's all thanks to the infantile vision of OOP.