views:

202

answers:

5

Which graphical environment (MFC, ATL, QT etc.) should I concentrate on, in order to be more employable? I don't want to spend months learning something only to discover that "no one" really use this or this really sucks, and "all" pros are using only such and such.

+3  A: 

Take a look at WPF. It is the successor to Mircrosoft's MFC. Mastering it could provided you a qualification "older" programmers might not have yet.

Danvil
@Danvil I think you can't use WPF while programming in C++ or am I wrong?
There is nothing we can do
Seconded. I believe it's .net only
Brian Agnew
There is "managed C++" which compiles down to MSIL, so this is possible. But not without running on .NET, of course.
Thomas
WPF can be used via managed C++. And yes, it is Windows/.NET specific.
Danvil
It's got a nice designer that auto-generates code, real time saver. But it cannot generate C++/CLI. If the language matters for some reason then WPF isn't a good choice.
Hans Passant
+3  A: 

Regardless of the technology, I would make sure that you understand and can demonstrate sound programming practises surrounding implementing solutions in these technologies (e.g. separation of concerns, understanding the MVC pattern).

Toolkits come and go, but those practises are key. I would happily hire someone with an understanding of these despite their lack of knowledge in my particular chosen toolkit.

Brian Agnew
+13  A: 

Qt is I think the most interesting.

  • The API is very nice
  • the documentation is excellent
  • Friendly licence (LGPL)
  • The IDE (QtCreator, but you don't have to use it at all) is simple but efficient
  • It very multiplateform (Win, Linux, MacOSX) and gives a native feeling on those platforms, and recently
  • Big Companies use it (Google Earth, Opera, Skype...)
  • Since it has been bought by Nokia, the development is rocket fast
Tristram Gräbener
I just wish Qt didn't clash with the standard library so badly.
Inverse
@inverse: Could you elaborate on that?
Dennis Zickefoose
@Dennis: Qt re-implements a great deal of the standard library, and generally only supports their versions. So you can't use std::vector, you have to use QVector for most Qt functions. There's a good discussion of it here http://stackoverflow.com/questions/1668259/stl-or-qt-containers
Inverse
It is true that Qt re-invents a lots of things (from STL but also from boost). I agree it is sad...However, the good side is that it is more an more object oriented so easier to get into than generic programming. For people with C or java background it has a nice learning curve (but IMHO it's not the best approach... but it is an endless debate of opinions)
Tristram Gräbener
+2  A: 

I would also add wxWidgets and eclipse Rich client platform.

when I last looked at it, wx was somewhat simpler than QT.

On the other hand, eclipse RCP provides a lot of functionality right out of the box, however it is overkill for small projects.

aaa
A: 

Compare the number of jobs on various employment web sites for each technology you are asking. I believe MFC is still in most demand, but may be wrong.

Nemanja Trifunovic