4 ms·
Yes, C++ is not an "object-oriented language" and never was. The OO features were added because at the time it was the raging fad and people thought that every
by otabdeveloper4 6y ago
Yes, C++ is not an "object-oriented language" and never was.
The OO features were added because at the time it was the raging fad and people thought that every language simply must have "OOP".
But "OOP" was never a foundational principle for C++, more like a tacked-on sidecar.
- tom_mellior 6y agoYou're arguing that a language that arose specifically to add classes to C was not meant to be object-oriented? I'd be interested in seeing that argument fleshed out in more detail.
- gpderetta 6y agoIt is true that subsequent c++ evolution de-emphasised OOP, but you are completely right that the original selling point of C++ over C definitely was (Simula style) OOP.
- otabdeveloper4 6y agoThree points: a) 'Simula style' isn't at all like the Smalltalk-derived programming patterns we call 'OOP'. (Simula was about actor-oriented programming anyways, hence the name.) b) The unique differentiator for C++ was the STL, and not the OOP features that were done better and cleaner in other languages. c) The killer feature for early C++ adoption was operator overloading, not inheritance. (Pretty much nobody liked using inheritance in C++ even back in the day.)
- tom_mellior 6y ago> Simula was about actor-oriented programming anyways, hence the name. Nothing about the name "Simula" suggests actors. > The unique differentiator for C++ was the STL https://en.wikipedia.org/wiki/C%2B%2B#History https://en.wikipedia.org/wiki/C%2B%2B#History isn't very clear, but it seems to suggest that templates weren't added to C++ until 1990 or later. The STL came around 1993, eleven years after the development of C++ started, not even counting its previous life as C with Classes. Surely in those eleven years people found other differentiators that kept up interest?
- antonvs 6y ago> The unique differentiator for C++ was the STL This involves such a level of ignorance of the history of C++ that you should consider deleting your comment. The STL didn't exist in C++ for the first decade of its existence. > Pretty much nobody liked using inheritance in C++ even back in the day. What is your basis for this claim? Don't bother responding, the answer is that it's nothing more than your fantasizing.
- gpderetta 6y agoSimula and Smalltalk were the two original OO languages. C++ firmly takes its OO capabilities from Simula (the virtual keyword literally comes from there with the same semantics), and is quite distinct from the OO flavour of Smalltalk. Objective-C, with its selector based late binding for example, is clearly Smalltalk inspired.
- antonvs 6y agoIts original name was actually "C with Classes".
- mrkeen 6y agoI can try: > add classes to C C is the foundation. Classes is the sidecar.
- antonvs 6y agoEvery statement in your comment is factually incorrect. See: http://www.cplusplus.com/info/history/ http://www.cplusplus.com/info/history/