Understanding The Future of MFC

kuphryn

Senior member
Jan 7, 2001
400
0
0
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
 

KB

Diamond Member
Nov 8, 1999
5,406
389
126
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.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
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.
 

kuphryn

Senior member
Jan 7, 2001
400
0
0
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
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
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.
 

kuphryn

Senior member
Jan 7, 2001
400
0
0
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
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
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).
 

manly

Lifer
Jan 25, 2000
12,897
3,675
136
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.
 

joohang

Lifer
Oct 22, 2000
12,340
1
0
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. :p