4 ms·
I think you might be missing the main point of what this person is saying, which is: "I'd claim that the less they used C++ and the more used C++ compilers to
by sramsay 7y ago
I think you might be missing the main point of what this person is saying, which is:
"I'd claim that the less they used C++ and the more used C++ compilers to write a C-like code"
And I bet that's true. I doubt there's layers and layers of template metaprogramming in Ableton Live, or that Maya is a study in inheritance. Game engines, certainly, are C++ written as so-called "better C."
"Yet here we are" -- a place where people reinvent C and call it "data-oriented programming." /s
- jcelerier 7y ago> 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=template 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_Writing_a_Shading_Node_Writing_a_shading_node_plugin_htm https://help.autodesk.com/view/MAYAUL/2017/ENU/?guid=__files... https://help.autodesk.com/view/MAYAUL/2017/ENU/?guid=__files_Polygon_API_polyModifierCmd_example_htm https://help.autodesk.com/view/MAYAUL/2017/ENU/?guid=__files... https://help.autodesk.com/view/MAYAUL/2017/ENU/?guid=__cpp_ref_class_m_px_attribute_pattern_factory_html 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/job/worker.cpp https://github.com/SFTtech/openage/blob/master/libopenage/jo... That kind of thing is as far as "C with classes" as is possible.
- acqq 7y ago> most projects in the wild nowadays are C++11 or later 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.
- jcelerier 7y ago> or there were serious rewrites involved why do you assume that ? if someone was using, say, "Modern C++ Design: Generic Programming and Design Patterns Applied" from Alexandrescu (released in 2001!) as a guideline when writing one's codebase, "migration" to C++11 is maybe replacing some custom types by std ones for stuff like mutexes and threads, etc. but all the architecture would stay pretty similar. > Which fits my initial statement I really don't see how - all those projects I listed are successful, you seem to be saying that it is despite of C++ but I don't see any argument towards that. I personally don't know anyone who would willingly go back to writing large-scale projects in C after working in C++.