DEV Community

In Defense of C++

Dayvster 🌊 on September 10, 2025

The Reputation of C++ C++ has often and frequently been criticized for its complexity, steep learning curve, and most of all for its abi...
Collapse
 
dyfet profile image
David Sugar

While C++ is complex, it is also often effectively expressive of that complexity. For some things I have also found it better to go back to pure C. There are things I love about go, too. But Rust would now be my very last choice for programming.

Collapse
 
dayvster profile image
Dayvster 🌊

This is why I try to adhere to the just write C++ as if you were writing C until you need some of it's more complex features.

you can get really far with just imitating C in C++

Rust on the other hand for me is the opposite of that, you start with complexity right out of the gate.

Collapse
 
optimisedu profile image
optimisedu

This is a brilliant article your voice and points ring very clearly and brings up the sad facts that we are getting a huge amount of content the is at least partially ran through a neural net giving it the same homogenised voice I have to apologise for my lack of punctuation and hope this makes sense I'm currently time looking for a new Hobby and I think I have matured into being ready to learn C++ from the ground up again a first try learning C++ in 1996 I was five years old and using a textbook eventually became a pretty bad program using basic an eventually SEO got me into performance optimisations for business again however since JavaScript is where my market was I specialised in scripts than a compiled language with pointers and other such low level functionality I have a broken hand and a lot of time to kill any suggestions on a good place to learn C++ from the Ground Up would be really appreciated just extremely frustratingly slow.
great article truly

Collapse
 
dayvster profile image
Dayvster 🌊

thanks, that's a huge compliment, appreciate it.

Collapse
 
jlburgos profile image
Juan Burgos • Edited

C++ is only complex in the variety of ways you can solve any arbitrary programming problem. If you only use the tools and language constructs that you actually need, then the language is only as complex as you need it to be. This isn't even specific to C++. Every other language that has existed for decades has "issues" the people tend to complain about. Only reason newer languages are sometimes considered safer is that they stand on the shoulders of giants, have carved out a specific niche instead of being a generalist language, or hide so many details of the underlying behavior (looking at you python) that memory management is likely not your primary concern.

Ultimately, the best antidote to fear and confusion, especially when it comes to learning "difficult" languages like C++, is as follows:

  • Patience when learning the language and the tool-ecosystem.
  • Mindfully using only those language constructs that you actually need.
  • Less dogma about what is considered arbitrarily "better" or "safer".
Collapse
 
dayvster profile image
Dayvster 🌊

Precisely!

Well put, this is basically one of the points I tried making in the article but you articulated it quite well here.

Thank you :)

Collapse
 
jodaut profile image
José David Ureña Torres

Great article! C++ is a very important language and is widely used actually. As you mentioned, it does not compete with Java, Python or JavaScript. The all serve to different areas of software. C++ is great for Linux/Unix programming for example, or systems where memory management and speed are crucial. Or when you need very small executables. Java and Python cannot offer that xD.

Collapse
 
dayvster profile image
Dayvster 🌊

it's still the language that holds up the most important infrastructure and projects well C++ and C.

It's gonna take a while for any language to replace that, Zig might.

I don't know if Rust can it's nice and all but binaries that are 3-5x the size and often slower just don't seem like the way forward to me.

Collapse
 
teminian profile image
Robert Teminian

Bravo. As a C++ developer myself I can't agree with you more.

Collapse
 
dayvster profile image
Dayvster 🌊

Appreciate it!

Just for my curiosity how many years experience would you say you have with C++ ?

Collapse
 
teminian profile image
Robert Teminian

For professional use, it's been 5~6 years.
But, if I include my "prelude period", I'd say "have you ever tried Turbo C 2.0 with 5.25 inch floppy diskette?"

Collapse
 
csm18 profile image
csm

The first oop lang I encountered was C++.I like the lang.
But, feel overwhelmed to use the build systems.
Do you have any suggestions on it?

Collapse
 
dayvster profile image
Dayvster 🌊

the build system is arguably the biggest weakness of C++

Sadly we are mostly stuck with Ninja / CMake for the foreseeable future.

Collapse
 
aregtech profile image
Artak Avetyan

I would say that not the C++ language is complex, but the frameworks we use bring complexity. The language is very flexible and that's why I love it.

Collapse
 
dayvster profile image
Dayvster 🌊

Eeeh it can spiral out of control pretty fast if you try to use too many of C++'s features.

But that's the secret, you don't need to you should just write it as C until you need more complexity.

Collapse
 
prime_1 profile image
Roshan Sharma

Totally agree, C++ doesn’t have to be super complicated. Stick to what you need, and it’s still super powerful and flexible for real projects.

Collapse
 
prime_1 profile image
Roshan Sharma

I like how you point out it’s still evolving (modules, coroutines, etc.) and that complexity doesn’t always mean bad.

Collapse
 
dayvster profile image
Dayvster 🌊

Appreciate it, thank you.

People love to bring up this point against C++ and even C that they are old. Even though they have been receiving a lot of updates and new features fairly regularly.

Collapse
 
highlightsai profile image
Highlights.ai

good job!

Collapse
 
dayvster profile image
Dayvster 🌊

aww, thanks!

Collapse
 
pauljlucas profile image
Paul J. Lucas

This is mistagged: it should be tagged #cpp. #c is for C.

Collapse
 
eslamlinux profile image
eslam linux • Edited

😎👌🔥
In fact, despite the complexities and some of the challenges I face, I enjoy writing code in this wonderful language. No, it has not been rendered obsolete by time; even after 40 years, it is still considered a powerful and sustainable language.