3 ms·
I moved to C++ in 2000, from C, because it made it easier for me to do more with less code, and as consequence of that, require less time to build what was need
by markpapadakis 11y ago
I moved to C++ in 2000, from C, because it made it easier for me to do more with less code, and as consequence of that, require less time to build what was needed and less time to debug and maintain it.
I have looked at various other contenders over the years for a replacement, not because I felt I needed one, but because they all had something interesting to offer, and because the buzz have gotten to me.
I have concluded that C++, especially with the recent ‘modernization’ initiatives (C++11/14/17) is as good as it gets for me, considering my needs and expectations, and obviously factoring in my familiarity with the language.
Most popular programming languages nowadays are providing fancy runtime features (GC, introspection and reflection, dynamic dispatch) at the expense of performance and unpredictable operation. You may get some control over the execution semantics, but not much.
For most use cases, I suppose this is fine, but when you go deeper or higher(in the Y performance and scalability axis), you start to question your choice and realize you don’t know what is really going on, especially if the profilers tell you that the culprit is the language runtime, and so you end up spending your time working around the language limitations instead of doing ‘real’ work.
The prevailing opinion nowadays is that C++ is complex, and use of templates, operation overloading, and even hierarchical objects structure, makes it hard to understand what is going on. It certainly mystifies many ‘pure C’ developers who are eager to come out and speak against the language, as if they are on some sort of mission to bash it, or just because they are not familiar with the language themselves and, well, if other like minded people are speaking against it, they may as well join them.
C++ is is a superset of C, and everything availed by C++ is optional — you absolutely don’t need to use anything you don’t want to use, or don’t feel yet comfortable using. I don’t understand why this just escapes more people who speak against it. Maybe because it’s not helping their cause, whatever it is.
There are brilliant people who will work around the limitations of a language and deliver incredible products, frameworks, libraries (Aeron - https://github.com/real-logic/Aeron https://github.com/real-logic/Aeron comes to mind).
There are languages that are better suited to many tasks than C++ - where performance is a big concern, but managed runtime environments and writing high level code makes more sense (or maybe you just care about compilation times, a very valid concern). There is no perfect programming language.
There is only the language that works best for you and your needs. For me, that is C++, and I can’t wait for the C++17 updates.