What's that Windows Library that's 'in' at the moment? WTL, ATL,.net , or MFC?

I'm a Computer Science student with some C++ experience and would eventually like to learn a windows GUI library. Some sites have warned that MFC is losing popularity because some of the programs made with the other libraries available have shown to have faster development times, but since MFC has been used for so long, there are more people who know it. So, if I were to learn a windows library, which would be my best bet if I wanted to get hired in the next 3-4 years (the time it will take to graduate with a B.S. and learn a library)?

Last edited on
Currently on top is QT - it's multi platform library : windows, mac, android, etc.. Its gaining popularity mainly because of embedded systems support.

If you want windows only programing c# .net is for you (which soon might be also ported to other platforms).

Honestly, if you will learn all components/widgets types you will easily move to any GUI framework.
closed account (z05DSL3A)
tapir2 wrote:
So, if I were to learn a windows library, which would be my best bet if I wanted to get hired in the next 3-4 years (the time it will take to graduate with a B.S. and learn a library)?

I would learn things like; Windows API, COM, Direct2D, Windows Runtime Library (WRL), and have a look at what Microsoft are saying for Windows 10.
If you want windows only programing c# .net is for you (which soon might be also ported to other platforms).

It already is!

Write your apps entirely in C#, sharing the same code on iOS, Android, Windows, Mac and more.

http://xamarin.com/

And they're already recruiting for people with this skill on jobserve.com (checking the site just now, there are 5 US based roles which mention Xamarin and 21 based in the UK.)

Andy
Last edited on
C# is definately more popular and has much faster development times. There are also MANY more jobs for c# than c++.

but your question was specifically C++, and specifically windows api, and if you are like me (no interest in c# whatsoever) your options are narrow (.NET / MFC / WTL / WinForms).

QT is not a windows api, its generic across many platforms and wont help a bit in learning windows ui, but obviously your skills would be portable and your oportunity for employment much better. (the same can be said about .NET now its open source)

I use MFC at work, its still maintained and every release of visual studio has an updated version with more features.
http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library#Versions

So if you are looking for best job oportunities, switch to C# and .NET, if you dont want to switch to C# take a look at .NET. If you want to be a purist go with MFC / WTL.

Your options are many, i guess it comes down to job oportunities in your part of the world and how purist you are about c++/windows.

Last edited on
C# is definately more popular and has much faster development times.


I though C++ was supposed to be the best and most widely used programming language out there.

http://jabroo.blogspot.com/2012/08/c-plus-plus-applications-list.html
http://www.mycplus.com/featured-articles/top-10-applications-written-in-c-cplusplus/

I even saw a video where someone said Google Chrome used C++ and ATL (similar to WTL) for the windows version

Your options are many, i guess it comes down to job oportunities in your part of the world and how purist you are about c++/windows.


It's pretty frustrating to have the question 'what programming language and library should I learn' up in the air. I could learn learn C# and .net but in the in the next 5-10 years, C# and .NET might be replaced yet another library and language that's said to be better, making the years spent learning the library worthless, since it may go the way of MFC, and almost die and have barely any jobs opportunities to use it.

I'm not familiar at all with windows programming or GUI programming, just console apps. Why exactly does C#/.NET result in faster development times and are there any drawbacks to using it over another library like MFC or QT?




Topic archived. No new replies allowed.