Click here to Skip to main content
15,881,715 members
Articles
Article
(untagged)

A Visit to Redmond - Part 4

Rate me:
Please Sign up or sign in to vote.
4.20/5 (2 votes)
19 Oct 2000CPOL 157K   10   37
For those who are curious as to what a hastily scheduled trip to Redmond is like.

Introduction

 Last week I popped on over to Redmond to have a chat with the guys at Microsoft on the future of Visual C++, MFC, and the new .NET world. Instead of presenting a point list of what we can expect in the future, I wanted to give you guys a taste of what a visit to Redmond is like, and I'm dead keen on having feedback from you on your own personal experiences.

A quick Thanks goes to Dundas Software and Microsoft for making this trip possible.

Part 4 - Visual C++

As I mentioned in part 3, and most important thing I got out of the meeting was that Visual C++ and MFC is alive and well. PDC 2000 was a launch of the new technologies surrounding .NET, and unfortunately the message that was delivered was a little murky on the future of C++/MFC.

There were a number of reasons this happened. PDC 2000 was not the 'header file' conference of past years, where loads of Microsoft guys would walk through the new libraries on offer, the new header files you needed to use these libraries, and the new API's available for whatever version of Windows was flavour of the month. PDC 2000 was more about the explaining, and demonstrating, the future directions of Microsoft's vision rather than trying to show every single change that had been made in the move to .NET.

Boo!Another reason C++ and MFC lacked exposure is that it was hopelessly overshadowed by the new kid on the block: C#. Internet applications are the big thing in .NET, and C++ programmers will most likely feel more comfortable writing their ASP+ apps in C# rather than in VB. Then there was the "Is C# Cool" (depends how you look at it), and "Is C# Microsoft's answer to Java" (you decide ) controversies.

But most of all, C++, and MFC in particular, no longer has an evangelist like Mike Blasczak. When you think of MFC who do you think of? George Shepherd, Jeff Prosise and others certainly spring to mind as prominant book authors, and Paul DiLascia writes great code, but who is there to stand up, be opinionated, possibly obnoxious, insightful, and hugely entertaining in their quest to enlighten the peasants about the magic that is MFC?

So, sadly, MFC was a was a bit of a wallflower at the PDC bash, but the guys at Microsoft would very much like to make up for that.

So what's the deal with Visual C++ and MFC in .NET?

Visual C++ is still the development language of choice for many applications. Managed extensions for Visual C++ allow you to create applications that interact with the .NET framework in a way that makes programming simple, quick, and intuitive. Visual Studio is mostly written in C++, as is Microsoft Office (managed wrappers will be provided for .NET). There is simply too much legacy code out there to even think of abandoning or downgrading the language.

 Visual C++ has also been improved in a number of different ways. The debugger in Visual Studio.NET is from Visual C++. There is a new crash recovery feature that allows an application to be restored to its state immediately prior to crashing, allowing post mortems to be carried out. 'Edit and Continue' has been improved, and there is now public access to the debug info file (all the guys at NuMega will be cheering on this one).

C++ conformance has also been improved. My notes are a little smudged on whether the VC++ compiler is the most conformant compiler, or merely the second most conformant (there is a mysterious, unidentifiable, beer-coloured stain on that page of my notes). The Microsoft guys claim that the compiler is so conformant that other compiler manufacturers no longer bother to publish conformance tests.

(brief pause as the din dies down)

No - I never said Visual C++ was 100% conformant, and this seems to be a serious source of aggravation among developers. There were even a number of wry looks among the product managers when discussing VC++'s conformance, but Ronald Laerman, Lead Program Manager for MFC/ATL was very candid on this point. He freely admits that the compiler is not 100% conformant, but what would developers rather have - a new compiler that is 100% conformant and will most likely break legacy code (or fill it with untraceable bugs), or a compiler that is so, so close, but which works seamlessly with all your current and previous code bases. Another point Ronald bought up is that while many developers point to other compilers as being more conformant, what is actually meant by these developers is that the particular compiler they use supports their pet feature. Microsoft would rather keep most of the people happy most of the time than a few of the people happy all of the time. And that "most" is a really big "most". They really are doing their best to make life as easy as possible for us developers.

C++ will always be the language that gives you the most power and flexibility. Microsoft has made a significant investment into the future of the language, and it has been enhanced to work seamlessly in the new .NET environment. While VB and C# may become the GUI application programming language of choice, C++ will the language of choice for writing drivers and components.

I'll talk more about MFC 7, ATL, WTL and STL in a later instalment. The news is all good.

The Microsoft guys felt that they were making Visual C++ more complicated, but for programmers who wish to continue writing non-managed native mode apps in VC++ there is no change. Managed extensions are just that - they are extensions. All your old code will work, and you can continue creating apps the same way until the cows come home (do you have that expression over here?). If you want to dip your toes into .NET then you can. If you want to dive-bomb in and do a big belly-landing then managed extensions allow you to do whatever you want, and the new classes in MFC and ATL will make this even easier.

Next Instalment...

The Compilers.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Founder CodeProject
Canada Canada
Chris Maunder is the co-founder of CodeProject and ContentLab.com, and has been a prominent figure in the software development community for nearly 30 years. Hailing from Australia, Chris has a background in Mathematics, Astrophysics, Environmental Engineering and Defence Research. His programming endeavours span everything from FORTRAN on Super Computers, C++/MFC on Windows, through to to high-load .NET web applications and Python AI applications on everything from macOS to a Raspberry Pi. Chris is a full-stack developer who is as comfortable with SQL as he is with CSS.

In the late 1990s, he and his business partner David Cunningham recognized the need for a platform that would facilitate knowledge-sharing among developers, leading to the establishment of CodeProject.com in 1999. Chris's expertise in programming and his passion for fostering a collaborative environment have played a pivotal role in the success of CodeProject.com. Over the years, the website has grown into a vibrant community where programmers worldwide can connect, exchange ideas, and find solutions to coding challenges. Chris is a prolific contributor to the developer community through his articles and tutorials, and his latest passion project, CodeProject.AI.

In addition to his work with CodeProject.com, Chris co-founded ContentLab and DeveloperMedia, two projects focussed on helping companies make their Software Projects a success. Chris's roles included Product Development, Content Creation, Client Satisfaction and Systems Automation.

Comments and Discussions

 
QuestionWill WTL continue? Pin
Member 789302626-Oct-00 13:59
Member 789302626-Oct-00 13:59 
AnswerRe: Will WTL continue? Pin
Erik Funkenbusch27-Oct-00 13:41
Erik Funkenbusch27-Oct-00 13:41 
GeneralANSI C++ Pin
Jim23-Oct-00 12:08
Jim23-Oct-00 12:08 
GeneralRe: ANSI C++ Pin
Erik Funkenbusch24-Oct-00 9:07
Erik Funkenbusch24-Oct-00 9:07 
GeneralHmmm - VC is not that funny :( Pin
Reader20-Oct-00 16:40
Reader20-Oct-00 16:40 
GeneralYes, "the cows come home" in the US, too. Pin
John20-Oct-00 9:04
John20-Oct-00 9:04 
GeneralVC++ Conformance Pin
alias_na20-Oct-00 7:50
alias_na20-Oct-00 7:50 
GeneralRe: VC++ Conformance Pin
William E. Kempf20-Oct-00 11:05
William E. Kempf20-Oct-00 11:05 
GeneralRe: VC++ Conformance Pin
Chris Maunder20-Oct-00 16:43
cofounderChris Maunder20-Oct-00 16:43 
GeneralRe: VC++ Conformance Pin
Erik Funkenbusch21-Oct-00 21:47
Erik Funkenbusch21-Oct-00 21:47 
GeneralRe: VC++ Conformance Pin
shimon22-Oct-00 4:03
shimon22-Oct-00 4:03 
GeneralRe: VC++ Conformance Pin
crispy23-Oct-00 8:33
crispy23-Oct-00 8:33 
GeneralRe: VC++ Conformance Pin
shimon23-Oct-00 20:07
shimon23-Oct-00 20:07 
GeneralRe: VC++ Conformance Pin
alias_na24-Oct-00 5:36
alias_na24-Oct-00 5:36 
GeneralRe: VC++ Conformance Pin
alias_na24-Oct-00 5:37
alias_na24-Oct-00 5:37 
GeneralRe: VC++ Conformance Pin
Anonymous24-Oct-00 5:37
Anonymous24-Oct-00 5:37 
GeneralRe: VC++ Conformance Pin
Daniel Lohmann24-Oct-00 8:00
Daniel Lohmann24-Oct-00 8:00 
GeneralRe: VC++ Conformance Pin
Ronald Laeremans30-Oct-00 16:18
sussRonald Laeremans30-Oct-00 16:18 
GeneralCan't master them if you can't use them Pin
Jonathan Gilligan14-Nov-00 14:32
Jonathan Gilligan14-Nov-00 14:32 
GeneralRe: VC++ Conformance Pin
Brian C Hart19-Nov-00 9:10
professionalBrian C Hart19-Nov-00 9:10 
GeneralRe: VC++ Conformance Pin
Erik Funkenbusch20-Nov-00 12:50
Erik Funkenbusch20-Nov-00 12:50 
GeneralRe: VC++ Conformance Pin
Member 120896522-Oct-00 4:33
Member 120896522-Oct-00 4:33 
GeneralRe: VC++ Conformance Pin
Member 366023-Oct-00 9:15
Member 366023-Oct-00 9:15 
GeneralRe: VC++ Conformance Pin
Member 120896523-Oct-00 12:55
Member 120896523-Oct-00 12:55 
GeneralRe: VC++ Conformance Pin
Walter Sullivan24-Oct-00 9:23
Walter Sullivan24-Oct-00 9:23 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.