|What type of programs or uses are good for C++|
The way I see it, the main niches of C++ are:
1) resource-constrained programming, especially with hard real-time requirements
e.g., generate a signal on a wire in respond to a signal on another wire in under 50 microseconds while juggling hundreds of threads doing different things, or the airplane will crash.. or the missile will miss the target, or the call will be dropped, you name it. C++ is good at this because it supports (and became inseparable from) deterministic resource management
2) software infrastructure
- this involves the core libraries, virtual machines, and other stuff that forms reusable components on which application software depends upon. C++ is good at that because its abstractions come at (almost or completely) no runtime cost.
3) high-performance programming
Because it provides unmatched opportunities for optimization and control of system-level resources.
and what type are not?
The opposites of the above:
1) batch processing, user interaction, and other software that has no realtime requirements
2) non-performance critical code (and even if performance is important, it may be cheaper to buy new hardware than use C++.. C++ comes in handy when you already own the fastest hardware made, and so do your competitors)
3) code that's not intended to be reusable or reliable: prototyping, scripting, etc