5 ms·
You'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 fleshe
by tom_mellior 6y ago
You'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.