| > I doubt there's layers and layers of template metaprogramming in Ableton Live, or that Maya is a study in inheritance I doubt both of your assertions - public Ableton code uses templates fairly liberally (
https://github.com/Ableton/link/search?q=template&unscoped_q...) - and due to backtrace exposure I know that this is also the case for private implementation things. For Maya just look at the plug-in API : https://help.autodesk.com/view/MAYAUL/2017/ENU/?guid=__files... https://help.autodesk.com/view/MAYAUL/2017/ENU/?guid=__files... https://help.autodesk.com/view/MAYAUL/2017/ENU/?guid=__cpp_r... command pattern, factories, etc... it's textbook OOP. Also, most projects in the wild nowadays are C++11 or later, with actual use of C++11 language features. e.g. look for example OpenAGE, an AOE2 reimplementation - https://github.com/SFTtech/openage/blob/master/libopenage/jo... That kind of thing is as far as "C with classes" as is possible. |
Which means either that their codebase is less than a decade old, or there were serious rewrites involved. Which fits my initial statement: historically, long term (T > 10 years), successful projects should have better used C++ as C-like as possible (or just used C).
I'm not claiming it's not possible to have successful projects using C++ lasting long, just that it would be, long-term (really long term), less overhead to use C for big projects.
Êdit: My personal bias: I was involved in two long-lasting projects, where just dealing with boost dependencies used up more maintenance time than it would have been needed for experienced developers to develop the code which didn't depend on boost. But of course, those who used boost didn't have such an experience to make such calls, and in initial development "look how fast we have a feature x" wins.
I personally consider Google's C++ style guide limiting Boost use as one of the best examples of some influence of some experienced developers on the policies.