>How can anyone come up with a counter argument to that?
I'm sure you can give a reasonable argument against one his paragraphs. No? That's what I thought.
Mfw i'll never understand C++ and OOP as a whole
It is different. Doctors save lives. Jow Forums posters are unemployed computer hobbyists.
This. Too bad the person is too dense to understand the simplest of things. C sure rotted his brain away.
This is what I thought too when I was first learning OOP. Seems like if you can define your own functions, you have all you need, right? Yeah, but you've probably never worked on a large project. Or if you have, you wouldn't be able to imagine it without OOP. In my opinion the most important thing about OOP is not abstraction or inheritance at all, it's encapsulation and polymorphism, especially polymorphism. It allows you to define interfaces and implementation separately, which is enormously useful to teams of programmers. Let's say we're writing a complex document storage application (this is a real life example of a half a billion dollar software company I worked for about 5 years ago). If you upload a scan of a form, you want to be able to search for the words in the JPG you uploaded. So you'll need a service responsible for the actual storage of your documents in whatever hierarchy you define (maybe you want versioning on your documents, folders and subfolders that live within a customer "workspace", etc), a service for getting the text out of whatever document you upload whether it's a JPG or a XLSX, a service for indexing your text, and probably much more. Well, each service is complex enough to require a team of a few people. So how do you transfer data from your text generating service and your indexing service? Via an API that the indexing service team defines. They tell other users the API (the interface) while they take care of the implementation yourself. The text getting service is complex enough that you may use different algorithms and expect different document types, but each time you process a document there are more simililarities than differences, this is where polymorphism and generics comes in as you can write one method to handle inputs of different types. Then access modifiers like private/internal/public can be used to define how your API is used. Some functions you want others to use, some are for your program to use internally.
I didn't mention it because I thought that it was irrelevant, but we moved on to a bigger project with polymorphics right after that. This meant that most of the people in my class knew the basics and could more easily learn the more complex stuff. There's probably some people here that think poly is the basics. But it's better to learn slow to avoid overwhelming yourself with new things
OOP is like a big fat pussy waiting to get fucked. C++ is the cock.
OOP is okish for quick prototyping