C/C++ certainly doesn't help, but focusing on the language problem (particularly by waving your hands and saying ObjC "has special features") is shuffling deck chairs on the Titanic. You can't:
1) easily deliver X apps to users (compare "set up a webserver" to "package something for anything more than a single X platform)
2) easily make money on X apps (compare web services, or worse yet mobile apps)
3) easily make X apps location/device independent (compare web services on both scores; mobile at least on location independence)
4) easily make X apps collaborative (consider the process of sharing a document in, say, Abiword/OOo v. gdocs).
5) easily take advantage of the desktop's advantages (local data search, rich inter-app integration, whatever else it is that you think desktop apps rock at- they're all hard to take advantage of, so people very rarely write apps that make you say "I could only do that on the desktop.")