C++ is fine for complex software; it's bad for simple software. The problem is that it provides benefits that are irrelevant for most people, and the costs of making those benefits available is pretty high, so for the average developer, it seems stupidly complicated.