You don&#x27;t need to use or master every tool in the shed. The hard part about C++ is to choose the right tools and to avoid the bad parts.<p>Things like memory management and concurrency are actually getting better.<p>- Put a smart pointer on the stack to handle your allocations. Share it and it persists. Forget about it and it deallocates your memory. No need to use raw pointers directly.<p>- Use things like futures to manage your concurrency. No need to know the finer semantics of mutexes just to pass around a few values.<p>- Templates enable a lot of cool stuff but you don&#x27;t have to understand much about them to actually use them in a library.<p>That being said, if C solves your problems well, use it. There is nothing wrong with that. If you only need some parts of C++, use them where it actually makes sense.