Yes, and the developer can use, lets say Win32 API with C# or .NET framework with C++. Saying C# is simpler than C++ for GUIs because .NET framework is better than Win32 or MFC is illogical.
Noooope: it is awkward and difficult both writing GUI using:
C# + Windows API.
C++ + .NET Framework .
Note we are talking of a thing that 'should be easy' not a thing that 'is possible'.
If C++ was backed by a good (easy!) framework for Windows GUI (VCL could be such, as suggested by Espen) then it could be the language of choice for most developers. Unfortunately it is not.
Most business-oriented application development does not require it and can be accomplished more productively in higher-level languages.
Most of the job ads for MS-centric development are for higher-level languages, so naturally devs have gravitated towards them - and Code Project is still an MS-centric site I assume.
C/C++ have just become more specialised or have returned to their roots in system-oriented apps. Windows and desktop apps. such as Office will continue to be written in C/C++ for a while methinks. Plus games and high perf computing.
There are some things about C / C++ which I hate, one of them being the fact that it allows writting the most obfuscated code I've ever seen.
In Bjarne Stroustoup's book "The C++ programming language" there was an exercise in which the task was to fully parenthesise a C++ expresion. None of the C++ programers I knew at college were able to complete the task successfully.
I haven't coded in c++ for years , but some syntactical cleaning would be nice.
I agree with you, each time I look at the code written by others on net or previous existing code-base at workplace even I feel the same. The root cause for this is the fact that, presence of pointers and the ability to work with system hardware to the most granular level I assume.
On the contrary most of the other programming languages, restricts you from doing so.
I agree that C++ is delightful. I don't understand the growing class of developers who are claiming that it is a bad language.
One of my ongoing learning projects has to do with developing iterator classes. STL gives you the power to create custom iterators. I prefer the random access iterator. Once the iterator class has been embedded in the main class you can create your own class::iterator variables and pass them into the STL algorithms like sort, etc... I'm just amazed that somehow was able to make C++ work in this way. It blows me away. Sometimes C++ code evokes the same feeling as looking at a clear night sky when the milky way is visible.
You realise that list is just the number of times that the language appears in google search? It's not a measure of how much the language is actaully used. For instance, just by saying "C++, C++, C++, C++, C++, C++, C++, C++" the TIODE popularity for c++ increases