Does C++ still deserve a bad rap?
Like every programming language out there, C++ is a tool. And like every tool out there it has its uses.<p>There isn&#x27;t any point of using C++ to count words in a text file. Any high-level language like Python will beat you to it. However, there&#x27;s one thing you can do in C++ and not in Python or JavaScript or PHP: fully control the memory layout of your data.<p>While you don&#x27;t need it in most of the cases, it becomes a killer feature when directly dealing with large amounts of data:<p>* Try implementing an on-disk hash table in Python and you&#x27;re stuck manually packing ints and longs in an out of arrays. In C++ it could a simple template used with a memory-mapped file.<p>* Try doing anything non-trivial on a microcontroller with 32KB of RAM. You could theoretically use a higher-level language, but you will end up using &gt;10x amount of RAM.<p>* Try designing an application-specific data structure in any other language. Let&#x27;s say you have an ~8GB in-memory database that slowly adds records one-by-one and then invalidates them in chunks. A C++ implementation will rip anything else to shreds. You just won&#x27;t get the same speed and memory efficiency.<p>What it means in practice, is that unless you have an existing project that uses C++ anyway, you want to partition it: do the memory-critical part in C++, and communicate to it from a higher-level language via a high-level interface. You will get performance where you need it and a peace of mind everywhere else.