Since you asked...
Depends on the os platform you're targeting. Afaik, on Linux/Unix, C/C++ is still the de facto language for serious programming. This is purely a matter of
perception within the Linux community of course.
Of course, there are some other stuffs written in Python, Bash and Perl scripting. Because they're still open source, the community still finds it acceptable.
A programmer will probably be dismissed by the Linux community if he says he has something written something for Linux in Java or .NET (runs under
Mono). Maybe they're just anti-Oracle, anti-Novell and anti-Microsoft.
All these are simply cultural and a matter of perception, not because there is some technical rationale. Not that Java and .NET runs poorly on Linux.
For Windows, it's pretty much anything goes, so long as it runs, and no one cares if it's written in C++, VB, C# or Java.
C++ can do all these. Client-server using socket programming, CGI for web and QT for GUI.
But do you need those heavyweight enterprise technologies like JavaEE EJB? Or some sort of distributed programming framework? What about third party libraries or components that you may need?
So it boils down to your existing infrastructure like desktop and server environment (Microsoft? Java? Linux/Unix-based?)? These would probably push you in certain direction, or constrain your choices.
Performance (native codes vs. interpreted codes), and resistance against reverse engineering are other factors you may be concerned about. Native C++ codes wins on these against .NET and Java, which are in bytecodes. But for most applications, the performance difference is probably too tiny to be noticeable.
It also depends on programmer's proficiency and familiarity. Some are C++ masters but hopeless in Java or .NET. Others are Java/.NET experts but totally lost when faced with C++. It's not just the programming syntax, but a programmer's knowledge of the available libraries, components and toolkits that he can efficiently pull and plug into the application. So programmers tend to stick with the language they know best because it is the fastest and easiest way to produce something and get it running.
Yes, definitely. iirc,
Nokia even acquired Trolltech for QT. This speaks a lot about the QT Framework.
If it is deemed good enough for Nokia, I guess for most other developers or software applications, it should be good enough too.