- great idea
- great design
- great execution
I think C++ was great idea that was masterfully executed, but suffers from a chaotic overall design.
It's not as fast as C++, but C++ isn't as fast as assembly, either. They're at different points on the tradeoff curve - HOW performance sensitive are you? It's not a binary choice.
Also, the state of the JVM on the desktop is kind of sad - also from the graphics perspective. But Java is probably the most performant server-side language out there at this point (if you exempt the masochists who write network code in C/C++).
Are you sure you don't mean semantically difficult. With the exception of a few dark corners (meta programming, function pointers) the syntax is basically the same as another language. Learning that && denotes an rvalue reference is easy. Trying to understand what that means though is a lot more difficult
C++ semantics is completely another can of worms.
Pick any modern OO language: Java, Ruby, Swift, hell, even Python. They are all far easier languages to write in than C++, have much better library support, and don't make you dive into memory management hell.
IMO C++ is syntactically very difficult, and the language too far out of touch with the architecture patterns and styles used by programmers today.