• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Understanding The Future of MFC

kuphryn

Senior member
Hi.

I had an interesting conversation with a programming (C++, Java, and soon, C#) professor at my college.

Background
----------

I am current practicing design and implementation using MFC. I am proficient with C++ and is gaining considerable experience with MFC.

Scenario
--------

I asked the professor if she teaches MFC in one of the upper-division programming courses I am planning to take next semester or the following semester. It is basically a couse on OOP C++, which I understand well now. I asked her if he teaches MFC. She says yes. However, I asked her aid who has taken that same course with her just an hour earlier, but he said there was no courses on MFC. The course that the professor teaches is more on OOP C++ concept.

Anyways, she went on to say that C# really interests her. So the conversation went on, but there was one thing that caught my attention. She said she *heard* that Microsoft is planning to *not support* MFC in the near future. What?

What is the future of MFC? Is C# affecting it at all?

I think C++ w/ MFC (or Win32 API) is the most powerful Windows programming tool.

Thanks,
Kuphryn
 
I have also heard this rumor but can't confirm it. MS doesn't wantt to have to support two Class libraries so it would make sense for them to disconinue support for MFC and to focus on C#. In addition MFC is very extensive and there are few classes they could add to it. If they do discontinue support for MFC don't expect it for many years.
 
Microsoft will probably want to move to Windows.Forms (I think that's what it's called) after a while because it's cleaner than MFC, although the MFC dlls will still be there for backwards compatibility I'm sure.

I think C++ w/ MFC (or Win32 API) is the most powerful Windows programming tool.

You read a lot about it, of course you do. Depending on what you read and learn your opinion may change.
 
Thanks.

I am not familiar with WinForm GUI design. I am having a lot of fun with MFC right now. I cannot see any reason to really look at another GUI design tool (note "GUI," C++ is #1). I love C++ (design and implementation) too much and I enjoy learning MFC.

What makes WinForm GUI tool so powerful?

Kuphryn
 
I honestly havn't used WinForms at all, but I believe it's a lot cleaner than MFC which I personally find overly convoluted (or maybe it's just VC's way of working with it). Pretty much all my GUI programming has been done with either Borland C++ Builder or VB, both of which are so much easier to use than MFC it's insane.

I've also heard rumors that MS is going to try and replace VB with C#, since VB is such an abomination and with C# they essentially get to start from scratch.

But there's nothing to worry about, MS is known for supporting 'old' technology for incredible amounts of time (hell they support Win95 for ~7 years) meaning the MFC runtimes will be included with all the OSes for the forseeable future.
 
Thanks.

I think a strong background in C++ design and implemention will allow any program to learn anything except for maybe C and ASM easily.

The reason I am excited about the future of MFC is because, first, I love C++, and second, I really enjoy learning MFC. I have many ideas for small and practical programs want to one day produce (even an FTP server support encryption, but that is merely a dream right now).

Kuphryn
 
I think a strong background in C++ design and implemention will allow any program to learn anything except for maybe C and ASM easily.

Nah, C is simple, for the most part it's C++ without objects =) structs are like classes without functions (although you can mimic them with function pointers, but that could get ugly easily).

And asm isn't hard, it's just long winded because it's so simple. And it ties you to a specific processor, which I think is bad (probably becaue I have a Sparc and an Alpha in addition to my x86 boxes).
 
It's already crystal clear that C# and ASP.Net are the annointed standard programming model for web applications. VB.Net can be substituted for C# but it begs the question, why bother?

It's less clear whether C# and the framework libraries will largely displace C++ and MFC for standard applications development.

Since I don't know much about MFC, I probably shouldn't comment but my hunch is because C# is a much more productive langauge than C++, it will largely displace it as the implementation language of choice for Winblows. The complexity in C++ really is wasted at least 80% of the time.

Look at this way, just because the C standard library is fixed, it isn't going away, nor have developers abandoned it. At the same time, it's preferable to use a higher-level language and libraries whenever possible.
 
I know next to nothing about C++ and MFC, but the current Microsoft approach is a "slow transition" of existing C++ code into .NET through Managed Extensions.

And your professor is quite correct that Microsoft will eventually push everything with the .NET class libraries. From what I understand, the Managed Extensions literally adds new extensions to C++ so that the programmer can access the .NET class libraries while maintaining compatibility with existing codebase. So this allows applications to slowly transition by small pieces. It's quite a different approach compared to C#, VB.NET, JScript.NET (anybody use that?), and most other .NET languages.

In enterprise development, it looks like C# and VB will emerge as the dominant languages in .NET development. I am not sure what will happen to C++ in the future. I personally am a fan of C#.



<< What makes WinForm GUI tool so powerful? >>


Try Visual Studio .NET and the new GUI designers. You'll learn to love it. 🙂



<< Since I don't know much about MFC, I probably shouldn't comment but my hunch is because C# is a much more productive langauge than C++, it will largely displace it as the implementation language of choice for Winblows. The complexity in C++ really is wasted at least 80% of the time. >>


Agreed, except for the "Winblows" part. 😉 Well.. I guess I gotta admit that Windows is damn bloated. 😛
 
Back
Top