Tony Goodhew: VC++ Developer Communication - Questions and Answers

Download this episode

Download Video


Tony Goodhew is a Microsoft veteran in the developer tools division and has returned home to his roots in VC++. He was a product manager on VC6 back in the day. One of Tony's priorities is effectively communicating with developer customers who expect open and honest answers to ALL of their questions. How does this process work? How can you effectively communicate your plan if your plan is still being created?

Developers want answers. Period. Tony and team have the responsibility of ensuring that the answers they give to developers regarding VC++ are in fact accurate and unequivocal. Developers ask, "OK. So, what's the plan for the next version of VC++? Why did you decide to not support C++ feature x? What about y++? What's going on here? When are you guys going to wake up?" Welcome to Tony's world (and the world of many other product managers across the company and industry).

I brought my camera to Tony's office to talk about C++, VC++, developer dark matter, the C++ Renaissance at Microsoft,  VC++ versus GCC, and much more. This is a very candid conversation about developer-oriented public communication and the delicate balance between promising too much and promising too little. At the end of the day, it's all about what you deliver.

So, how do you decide how and when you will tell developers what your plans really are? How did you come to the decisions you make and execute on? Did you get enough feedback from the community to ensure you give developers what they most want? Have you implemented the things native developers have been asking you to do for years? When do you say yes and when do you say no? Tony, talk to us, man. What's going on here? How does it really work inside VC++ world?

Nice to have you back on C9, Tony! It's been a while.

Tune in. Enjoy.




Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • petke

      I appreciate you guys recording these informal converstaions.
      On the top of my c++0x wish lists for VS2010, is initializer lists. Variadic templates would be cool although has lower priority.
      I bet the "standards person" that said not to bother implementing all of the standard was mostly talking about export temples. Thanksfully thats gone now in c++0x. 
      Keep up the good work. And dont worry too much about the occasional flying rock. I think as long as you guys care about the standard, the community will open up.

    • Charles

      @petke: Right on. Please remember to speak your mind and engage with the VC team. Folks like Tony and Diego are listening - that's what they do and your feedback will not go into a black hole. Now, it could be that the interaction between black holes and dark matter shape the cosmos (dark matter entering a black hole affects the shape of galaxies that formed around the black hole, etc), but how far can we really take this analogy Smiley



    • Nicol Bolas

      What do I want in C++0x from the next VS2010 release? The flippant answer (everything) is obviously not practical, so what are my priorities? In order:

      * Constructor enhancements. Delegation + the ability to use initializers with non-static member variables.

      * Unicode string literals. The u8"", u"", and U"" syntax, along with the appropriate std::basic_string types.

      * Initializer lists/uniform initialization. This would change so much about how people code. Especially the uniform initialization part. So much not having to provide types for obvious circumstances.

      * Variadic templates.

      But to be honest, the biggest thing I want from VC++ 2011 is a Standard Edition. I simply can't justify the expense of the Professional VS2010, and the Express Edition doesn't allow me to use plugins. I've become quite addicted to Visual Assist, and I refuse to do any serious coding without it. The Standard Edition was a great featureset for a good price; I want to see it return.

      Yes, I'm willing to pay $150 for just the Express Edition with the ability to use plugins. Indeed, I'd have switched over entirely to 2010 by now if not for this deficiency.

    • Alexandre Jasmin

      Sure you can care about the C++ world without implementing C99. C++ developers don’t really want to see changes to the C subset of the language anyways.
      It would make a difference for those running the compiler in C mode though.

    • new2STL

      @Nicol Bolas: Total agree with the Standard Version, is painfull see fun and usefull stuff like the VS2010 Feature Pack 2, even a simple syntax highlight for HLSL/GLSL/Cg and can't use it on Express version. Professional version costs a full month of salary to me :(

    • patrikp

      Totally agree, to see VS StdVer back again in shops would be great!
      Thumbs up guys!

    • tgoodhew

      Hey All,
      Thanks for the comments on C++0x - Please keep them coming.

      I have a question for everyone on the Standard product - Is extensibility the only reason you want Standard or is there something else?


    • benyaboy

      As a plugin developer, we have less options for what versions of the runtime and compiler we use.  I can't even recommend my team learn about the new c++0x features.

      Major vendors like Autodesk are still using vc9sp1.  So my recommendation is advocating the switch and potentially creating tools and tutorials for maintaining backwards compatiblity. (either vc10 exe and vc8,vc9 dll, or vc8,9 exe with vc10 dll).

      Other features? Some of these aren't language features rather visual studio features.


      OpenMP 3.0 (Or depriciate 2.0)


      MultiDimentional_Array<T> (I've written and rewritten this class over and over)

      OpenCL syntax highlighting



    • new2STL

      @tgoodhew: Well, I think in VC separated things, in the side of IDE, yea, if it let at least  some extensibility avaible, even if it has the only feature of a Standard version from a Express version. The other side is the compiler and, oh yea, I'm passionating the new c++0x and will be great more support for it. I think stuff like OpenMP can be part of an extension package, so people buy it if they want, I'm fine with the Microsoft ConcRT. Will be great if VC move towards modularity, like, for example MathLab with thousand packages and you can buy the "ultimate" version with all of them or simple buy only the ones you want.


      I am not sure why !!!, if Tony Goodhew and microsoft knew that the some 40+ percentage of the mobile developers use C++ ( I guess it is far more than that.. ) from whatever your developer research came up with, then what on earth microsoft decided to use only managed languages  (C# and  for Windows Phone 7 ??? 
      From my point of view microsoft was reluctant to change their windows look and feel to Windows Mobile OS even though the interface was no way suitable for the device space. When others did it with C++ in a mindblowing way... you guys freaked out.. and come up with Windows Phone interface, but it was late. Most the Windows Mobile C++ developers and companies went on to work on other mobie platforms. You guys are doing the same mistake on the tablet pc as well... not providing the user interface suitable for that space.

    • tgoodhew

      The numbers I mentioned came out of our new survey and detail the state of the market when it was fielded in the 2nd half of 2010 - Prior to that our survey data didn't show what I think is the true reflection of C++ usage in the market - I believe that it now does and so we are taking that data around to the various teams here to make sure they understand the importance of enabling C++ development.

      - I'm not sure that I understand the point you're trying to make w.r.t the UI because, having owned both several Windows Mobile devices and having today a Windows Phone 7 device I think the UI's are very different. Are you simply saying that "not having C++ development on the phone is hurting your adoption"? If so I happen to agree with you. The ability of C++ to enable development of applications that sit outside the bounds of the app types considered when a framework is created is where real unexpected innovation occurs (and is actually why I used the example of Word Lens for AR apps).


      As for why the Windows Phone 7 team decided on a managed only approach I'd have to suggest that you head over to their site/forum and ask. Much like Apple when they released the iPhone without any native application support I'm sure the team has real reasons for why they did it.


      In any event I have been sharing this new usage data directly with them but their future plans are for them to decide and I can't speak for them.

    • John Schroedl

      Great video - I welcome the open discourse w/o the rocks. We develop s/w too and feel much of the same pains.
      I am one of the (underrepresented?) devs caught in-between the Native C++ and Managed world. Our app has a WPF UI and we love the goodness that enabled. We have loads of portable (Mac, Windows) C++ which will never go away. To use WPF, we've had to code much of our system with C++/CLI. I would love to be able to use XAML with C++/CLI as the code-behind. In the same vein, I'd want to continue to evolve C++/CLI to include things like the ability to use lambdas as delegates or even LINQ features in the extensions.  I'm sure you're keenly aware of the IDE failings WRT C++/CLI intellisense.
      I would be nice to see a 'voteable' roadmap.  ex. We're considering these n features... please rank them by desirability. No promises (cf. this video). Sadly, ballot boxes can be stuffed.

    • John Schroedl

      Wow - that's a huge chunk of text in my comment. This blog s/w seems to loose blank lines.

    • tgoodhew

      Hey John - I like the idea of a votable roadmap but I'm not sure if we could make it work outside of the context of a specific piece of disclosure (as I referred to in the video about the disclosure gates, etc) - However I think it's an interesting idea and worth us considering what, if anything, we might be able to do on that front. Thanks.


      @tgoodhew - The point I was making was C++ development was not supported in Windows phone. I just pointed out the UI things because microsoft have had the time to change the whole UI of mobile devices loong back. They could come up with a good design and native support api's in that time.
      I used to write application for windows mobile, now that is out of the way. Now I have to switch between two languages to function in my current job. The problem is learning stuff from both sides and it is hard to concentrate on a single technology side.

    • Charles

      @John Schroedl: Unfortunately, we do no support formatting for anonymous comments. If you join C9, then you will get formatting Smiley This is a known bug and is in the queue. Obviously, we want to prevent markup in anonymous posts to limit spam tactics (like URLs, etc). The policy is to remove ALL HTML, which probably is a bit dramatic.



    • bdhc73a

      @tgoodhew:  Standard VC++ supported MFC and was priced lower than Professional which is my current version.   


      The current pricing and feature structure of Express and Professional tells people that Microsoft wants you to switch to C#, since they provide GUI development in C# Express for free, but force you to buy Professional to get MFC if you want to do GUI development supported by C++ classes.    The fragmentation of the C++ GUI libraries has been a problem in the past, but may be an opportunity now.  

    • Charles

      Love the feedback so far! Please keep it coming.


    • tgoodhew

      As Charles says, thanks for the comments.


      I want to drill into the Standard issue a bit. So far I've seen 3 desires expressed for Standard:


      1. Extensibility
      2. MFC (I assume ATL fits here too)
      3. Price


      NEW2STL suggested a restaurant menu approach to acquiring the product - Let's discuss - You can get a new license of VS Pro for $549 (USD - Hang with me on this, I'm not saying suck it up and pay me, I'm using this to try and get a feel for how you see value in the product).


      VC++ Express is basically a Win32 API and Console dev tool. If I was to say to you:


      "Pro is $549 - I'll give you VC++ Express for $0, VC++ Express with Extensibility for $199, VC++ Express with MFC/ATL for $199 or VC++ Express with Extensibility, MFC & ATL for $349."


      What would you think of that? What if we said that the $349 product above would also have the ability to download and install things like OpenMP, etc?


      What instead if I said, "Hey I'll give you a subscription to VC++ for $25 a month and you get everything"?


      The reason I ask is because the natural tendency is for everyone to say "I want everything and I don't want to pay for it" (gross generalization warning) - The reality is that there needs to be some level of money in any product for it to be a business (I'm really not trying to get into the argument of cross-subsidies, pull-through, etc - I'd like to scope the discussion to the world of unicorns and rainbows where that doesn't exist). So I'm trying to get an understanding of what part of the tools your value in what way.



    • The​Banjomatic

      @tgoodhew: I'll throw in a 4th sticking point for Express. The Express products are isolated from each other and the development experience when dealing with multiple projects that cross the managed boundary between C# C++/CLI and native C++ is a real hassle compared to how things work with the Standard and Professional versions.


      Extensibility isn't as important to me from a hobbiest perspective (though I wouldn't be able to live without Incredibuild at work). But the lack of MFC is pretty appalling to me. And for these reasons combined, I called and filed a complaint when I realized that you would rather I use the under-developed free product than pay money for something you used to offer. What kind of business model is that?


      My understanding of the matter is that the main motivation for cutting the Standard edition was that many businesses would still purchase the Professional version if that was the only option, but businesses were previously buying Standard because it did most of what they needed. By cutting the Standard product, companies just upgraded to Professional and that was the end of it. Don't get me wrong, I have no problem with this, Professional should be used professionaly, I was just somewhat taken back by the lack of licensing options for home-use and hobbiest who like to program for non-commercial purposes. 


      I want to give you my money, I do... But for my needs at home, Professional has more than I need, and Express doesn't have enough. 

    • The​Banjomatic

      @tgoodhew: As an additional followup, I'm not sure I like the a'la cart pricing aproach as it fragments the sku's too much. I say cut the difference and just offer one product.


      $275, with support for C#,, F#, C++/CLI, and native C++ cross-development via solutions along with MFC and ATL support, and the same plugin model as seen in Professional. It would still be missing a lot of the more advanced features such as intellitrace and parallel task debugging that are included in Professional, but would be vastly more useful than VC++ Express in its current state.


      I'd also be open to Professional at a discounted price in exchange for a home-use license that wouldn't allow for deployment in a commercial environment.

    • ryanb


      - Some sort of feature roadmap voting system would be great if you could find a way to do it (without revealing all the secrets).


      - I pretty much agree with the previous comments regarding new C++0x features for the next version.


      - VC Standard:  I end up shelling out the cash for pro normally anyway (there's always something that forces that move -- used to be optimizations, now it's MFC, etc.), but to me, the biggest lacking in Express is the lack of MFC/ATL support.  Extensions aren't a big deal to me, and probably won't be for a lot of express developers.  (I can't remember if Express 2010 has 64-bit build support -- if not that would be next on the list.) 


      - The ala-cart model would seem like it would only really work in a situation where there was an extensible base product and all of the "tools" were plugins that could be purchsed and added individually at some incremental cost each.  There are probably a lot of reasons why it wouldn't be good to do that with a bunch of the tools.  It probably doesn't really make a decent business case either.


      - It's easy for us, as C++ programmers, to complain about the lack of MFC in Express, but I bet that only applies to a very small part of the market.  Surely almost all of the Express users in the World are either developing managed code, or are just looking for a free compiler for command line C/C++ code.  The numbers of us still doing C++ GUI programming on Windows are dwindling fast.  I'm not sure whether that justifies a business case for excluding MFC from Express or proves that you wouldn't be giving much away by including it in Express.  The line has to get drawn somewhere, and too many SKUs won't work.  But the bottom line is to get VS into more developers hands so they create more software for Windows.  As the VS pricing structure steadily creeps up over the years, more developers on the low end are getting squished out (more so for C++ than C# or VB).


      - To me, the gap between express and pro is not as much of a problem as the gap from pro up to ultimate.  Holy sticker shock Batman!  (I can't see any point in the Premium SKU, as it doesn't seem to add any real value over pro.)  The trend of late has been to pile a lot of the new tools (architecture/code analysis tools, backstepping debugger, multithreaded debugging/profiling, etc.) into the top sku only.  I can understnad that you have to charge more for the extra tools, but to have a jump of thousands of dollars to get a couple more tools is out of reach.  There's a lot of other stuff in ultimate that I have no need for.  I don't need enterprise tools.  I have no need or want to pay for a mandatory MSDN subscription along with it either.  There are a number of tools in ultimate that are appropriate to non-enterprise level development, but there is no access path to them from Pro.  If some of these tools cannot be moved to Pro, it would be good to have an extension model where they could be purchased upgrades to pro without having to step all the way to ultimate.  (Maybe that's what Premium was supposed to be, but it isn't.)  Unless you have a well-funded corporate IT department behind you, ultimate is not an option.


      - Just say NO to subscriptions!  I will not under any circumstances play along with a subscription model (like the $25/month for everything you suggested).  These vendor-revenue-streams have been soundly rejected over and over by the market.  Forcing a subscription model will drive me to switch to another vendor's tools.


      I'm glad to see the C++ renaissance going on at Microsoft.  Good things are happening.  Thanks for listening to feedback.  I'm looking forward to watching this video as soon as I can find a chance.

    • tim stacey

      I'd love to have c++ for WP7. Silverlight/XNA are great but don't allow cutting edge apps.

    • ryanb

      Don't hold your breath for C++ for WP7.  Of course, MS can produce native code for the phone, but there are very good reasons why they won't allow third-party apps to be done in any non-managed language.  Same goes for not allowing third-party apps to run background threads.  But none of that is relevant here.  Those are questions for the WP7 people, not the C++ people -- C++ is not what is lacking.


      Now a native version of WPF to work with C++ would be very interesting (a modern GUI framework for native apps, not C++/CLI using managed WPF).  If rumors prove true, there just might be something along those lines coming at some point.

    • tgoodhew

      Banjo, Ryan, Tim - Thanks for the comments.


      Just for clarity I do want to point out that the questions I asked were my own and not any plans - Yes, Ryan, this is an attempt to ensure that the subscription pitchfork and flaming torches stop before they get to my house Smiley


      With that out of the way I'd like to ask a few more questions - If I just gave you the MFC/ATL source & libs for download but made no other changes to Express would that address the need?


      What would you think of a Visual Studio Home edition, priced at say $399 but for non-commercial (free, open source, etc) development?


      (Now I'm going to ask something and please, seriously, please don't read anything into it, there isn't a conspiracy theory angle here or anything) - If instead of providing MFC, what if we worked with an existing open source UI library that runs on Windows (like GTK+ or Qt) to make it installable on an Express install (like the ASP.NET Team did with jQuery but provided no other changes to Express?



    • bdhc73a

      Since I have a lot of time invested in learning and writing C++ (Quick C to VS2010),  I welcome a renewal of interest.  At the moment I don't use either MFC or ATL.  I did use MFC some but found it diverged from the C++ standard library. For example, CString instead of std::string, not using std::vector, or templates.  Also Microsoft did not seem to be behind MFC, as they diverted resources to .net.  My GUI needs are normally small, and when I do larger GUI programs they tend to be cross platform Java in Swing.  I would prefer a compiled C++ GUI though, and own VC++ Prof.  Quite often I'm doing a DLL which requires the use of a C API or library  for JNI or C# use.  At this point I could probably just use Express.  However,  I bought Professional in case I wanted to do MFC again, and so I could use the Resource editors.  Ther are also a number of minor things not included in Express which I can't remember at the moment.  I wish I had code profiling and coverage.   I use Smartwin++ for some all C++ utilities with minimal GUI.   I don't use the "managed" C++ or .net at all.   I value the VS debugger most of all.   If you had a modern GUI C++ class library that followed the C++ standard, and had some commitment behind it, I would use it instead of Java.

    • ryanb

      You mean a "Visual Studio Home" that would be the same as Pro (err... pretty much) except for the license?  Interesting idea.  Sounds a bit too expensive to me.  I would think the people looking for that option want to be under $200.  At $400 you start to seriously look at pro.  Then again, my opinion doesn't count much since I will probably stick with pro anyway.


      As for the GTK+/Qt idea, I don't see anything wrong with that, but don't see the advantage either.  Anyone can add those now if they choose.  Bundling them seems like it would just cause headaches for MS.


      This is a good conversation.  Keep the ideas coming!


    • bdhc73a

      RE: QT, GTK+, MFC for Express.

      Yes, MFC source would probably be the simple route.   Since you are considering the various options, that might indicate a lack of a Microsoft roadmap to evolve the C++ GUI.  Ouch.   Bjarne picked FLTK for his C++ textbook.

    • new2STL

      @tgoodhew: I'm more like @bdhc73a, I'll use VC more for self learning and some teaching, my need on MFC/ATL are near zero, in part too because I'm interating with DirectX/Direct2D/OpenGL/OpenCL etc, so the prompt feed back was just fine.

      When I need some sort of menu the native compiler for Ribbon fullfill all my requeriments.

      But for me extensibility is the prime feature, as the community can provide nice free tools for sintax highlight and even context sensitive (like the already existent plugin on codeplex, the NShader)

      I don't bother if the Standard come with a 'for non-commercial use', it is in fact legitimate.

      About the price, my problem is here we can't buy individual packages of VS, it's not like Ms Office or Windows 7 that u can find on a business store, only option is Volume Licensing with a minimum of 5 licenses (about USD$ 700 each with one year of MSDN subscription)

      If extensibility is offered I'm sure it will surge plugins for WxWidgets or Qt.

      P.S.: Perhaps MFC/ATL can be shiped with the SDK/IDE but without wizards, only for correctness of compile of SKUs. As my main focus is C++ conformance too, i prefer using the std::bar libraries than the CFoo ones.

    • ryanb

      @bdhc73a:  I disagree about the lack of a GUI roadmap.  I'm pretty confident that there IS a GUI roadmap, just that it is not yet to the point of showing bits to the public.  We might get a preview of something later in the year ... maybe even at PDC this year.  I'd say it's a safe bet that MFC is not the future roadmap though.  I don't think the feature set included in a free version of the product can be interpreted as an indication of any future plans though.

    • felix9

      usually the 'non-commercial' license is applied on free (as in beer) software, it will be uncommon if you add this limitation on a nonfree product, while other free editions exists and without the limitation, kinda strange to me. (obviously WinPhone tools are free and can build commercial apps, if you add native sdk to WinPhone, then it'll get weird.)

      GTK/Qt, good idea. GTK+ is not ready for Windows yet, but Qt has an existing official vs addin, and ms can please the Nokia guys, so why not. (ps, not conspiracy but actually I do remember some ms guys said their are considering options to support Nokia's other ecosystems, Smiley )

      , ryanb wrote

      As for the GTK+/Qt idea, I don't see anything wrong with that, but don't see the advantage either.  Anyone can add those now if they choose.  Bundling them seems like it would just cause headaches for MS.


      you can compile the code but you can't get the designer/wizards/debug extensions/etc working.

    • tgoodhew

      BTW We just posted on C++/CLI IntelliSense being part of Visual Studio vNext at the VC Team Blog here - The post provides some of the background for how we ended up in the situation we're in and I hope it shows some of the transparency aspects I talked about in the video.

    • felix9

      WHAH! This means I will suffer THE PAIN so much longer, arrggghhh.

      Actually I just want native c++ Intelisense to work inside a C++/CLI project, and inside a ref class, then it will be so much better for me, sigh.


      VisualAssist X is my friend but still ...


      But there is still hope, since you should release Win8 really fast, and AppStore is important for Win8, especially the Tablet/ARM edtion, so the dev tool for AppStore need to be released even soooner, then I can get my v.Next.

    • tgoodhew

      New2STL - Can you elaborate on why you can't get individual VS licenses? You should be able to get them through the same channels as Office & Windows - For example, here is the Amazon link to the product.


      Felix - In general there is always some sort of "deal" when a company gives away something. In our case the deal for our free tools (the Express versions) is that they're free but you don't get all the functionality in the Professional tool. For a "Home" version I was thinking that the deal would be that you get everything in Pro but can't build commercial products (my thinking here is that if you're a company making money off software you should get the Pro tool).


      Everyone - I want to be clear that in no case do my questions imply that we are not going to continue to support MFC - We're about to release SP1 that includes enhancements to MFC to take advantage of Windows 7 functionality - If you're using MFC we're going to keep supporting you.

    • new2STL

      @tgoodhew: [Elaborating], I'm in Brazil, Amazon need international credit card but even if i had one, anything that have physical package need pay taxes over taxes and play with shipment papers, with is a bit complicated (Book and cd's are the only special clause on importer legislation [passthrough]).

      Local shops do not sell VS (Extra, Carrefour, Saraiva, Walmart, FNac etc), the few business I found only sell to partners (busines2busines partners) or to comproved students (business2faculty, not business2student), unfortunate I'm no more a 'student'.

      Local VS site only offer volume license:

      PS.: Almost forgot, native 64bit environment are good too, VC express is 32bit and WindowsSDK are 64bit, this sometimes cause a bit of confusion, and sure problems when playing with the nVidia CUDA SDK.

      PS.2: Buy by Download cut-off a lot of the bureaucracy, Valve's Steam make a huge success over my friends cause that Big Smile

    • Int64

      What I'd like to see is a stand-alone VC++ product like you had back in the 90s. (I think it was called VC++ Pro?) I never understood why you guys deviated from that - is it really fair that I have to pay for C#, VB and whatever other .Net language is in VS Pro when I have no use for them? It's like being forced to buy the Godfather boxset when all I want is I and II. (Clarification: I'm not saying C#/VB quality = Godfather III quality, I'm simply saying I don't use them)


      MFC - I think it's the best c++ option when you want an app that looks and feels like a Windows app. As others have said, the big problem is the code feels too non-standardish and outdated. I think even Qt suffers from this, but not quite to the same extent. It would be great to see std::containers, algorithms, etc. used in the MFC library, as well as some refactoring to use some of the current popular design patterns. (say, MVC)


      C++0x - My guess is that it will be a good 3+ years before you can write code that's truly transparent across the major platforms/compilers, and I don't really see the point in writing C++0x based code until then. (I can get by with current standard + boost for now)


      But, since you are looking for input, the items I prefer from the new standard are the ones that decrease verbosity - initializer lists, range-based for loops, constructors calling other constructors, data member initialization, etc. The less typing, the better IMO.

    • ryanb

      , Int64 wrote


      MFC - I think it's the best c++ option when you want an app that looks and feels like a Windows app. As others have said, the big problem is the code feels too non-standardish and outdated. I think even Qt suffers from this, but not quite to the same extent. It would be great to see std::containers, algorithms, etc. used in the MFC library, as well as some refactoring to use some of the current popular design patterns. (say, MVC)



      Indeed.  I agree.  Updates to MFC are certainly welcome.  The problem is that building a modern GUI framework out of MFC would be almost impossible.  There is a ton of MFC code out there that requires maintenance.  MFC has to continue that backward compatibility, and MS will surely continue to support it for many many years.  But MFC is an old-school, C-with-some-classes, type of interface that is really showing it's age.  C++ needs a GUI framework that is fully object oriented, built upon and integrated with the standard library, and keeping pace with the likes of WinForms, WPF/XAML, vector drawing, etc. for graphical capabilities.  Trying to force that onto the existing MFC framework would just be a mess, and building it all as a wrapper layer over MFC wouldn't be a good path either.  It's time to drop the C-style interface and move forward.  (Native GUI development in Blend would be very cool!)

    • felix9

      oh, MFC is way too old and not really worth put more resources on it, given how 'resource constrained' your teams are. you should really design your architecture in a modern and standard way, WTL looks better but it operate on those GDI/HWND directly, so its not suitable for a modern rendering stack using D2D/DWrite and support for touch/NUI stuff. Hopefully the native and managed GUI framework (WPF) can share the same underlying rendering stack, and a similiar markup language (XAML). actually the XAML support already exist in the Windows Ribbon Framework, with UICC.


      well, but my concern is, if you build the stack using D2D, it means no XP support, which is not acceptable, and become totally useless to me, unless you designed it in a pluggable way so we can fallback to other things on XP. just like what WPF4 did with text rendering.


      , ryanb wrote

       (Native GUI development in Blend would be very cool!)


      it is called Silverlight for Windows Embedded.

    • new2STL

      @felix9: Windows XP SP3 end of support will already extended by Microsoft to until april@2014. I know lots of people still using it but I really encourage to change to Win7 (even with Win8 coming). You can't even find more 'new' boxes of Windows XP arround (at least not officially, if you find any it is end of stock)

    • tgoodhew

      Thanks everyone for the comments and answers.


      New2STL - Apparently we're in the process of enabling VS to be bought in Brazil via the MS Store as a single lincese - I don't have any information on when that will go live but they're doing the work right now.

    • felix9

      @new2STL: well, as a user I do love Window 7 and never looked back after upgrading from XP. but as a developer its another story, I need to deploy my software to the existing infrastructure of those large and sturborn orgnaziations, I cant tell them to upgrading all their machines so I can sell my product to them, heck, I even need to support Windows 2000 in some special scenarios, and in VC2010 this need some nasty hack:

      fortunately its not a show stopper. but abandoning XP definetly is, oh, guess I have to stick with VS2010/NET4 for a while. but I guess Silverlight 5+ will support XP at least, with P/Invoke support there is hope for me to switch to Silverlight OOB or desktop app model, wooho.

    • new2STL

      @felix9: [sarcasm] I love how they start the blog "One of the annoying things about Visual Studio 2010 is that it does not create applications that can run on Windows 2000, Windows XP up to SP1, and Windows Server 2003 RTM..." If let to some people (and companies) they still using DOS :S.@tgoodhew: thank you its nice to know, if they put that working for time to the VS vNext will be amazing :)

    • petke

      Interesting comments..Like may here said before, MFC and Qt represent old designs that dont inter-operate well with STL. WTL is a bit better.. But what is lacking is having a modern GUI library that used stl and boost types in its interface. Even a small library that just offered the bare minimum would be useful.Not every library needs to be a low level C API.  STL and boost is where the percent and future of C++ is at. Its time MS gets behind the boost effort. I cant think of a better way for MS to win over the C++ community than if MS started developed C++ libraries using stl and boost types  in their interfaces. Why not start by releasing some internal libraries as boost libraries? Like the free SafeInt library for instance? I remember the author of the SafeInt library said he would like to release it as a boost library, but that he was no lawyer. Maybe its time someone spoke with the lawyers.Just my 2 cents..

    • Heavens​Revenge

      A few things to point out... is that you want another VC6, because it was really that awesome. It was released BEFORE the C99 standard, so it wasn't required to implement it. Maybe you should connect its awesomeness to the fact there was no need for true standards compliance at that time, and that each VS has just been downhill from that.  
      Ragardless of how much logic or business problems you try to back up our lack of support for the past standard and implying why you also don't want to support 98% of the new standard, I believe to be a VERY horrible idea.  In order for Visual Studio and the Compiler to match the awesome factor that VC6 used to be, you will NEED to have at least 92%-98%standards compliance unless it DIRECTLY destroys backwards compatibility without some sort of work-around.

      I don't care if you need to make a "Standard Compliant" build of your compiler just for this purpose but you MUST play nice with the rest of the developer ecosystem which is the "black matter" of all developers, otherwise you will always be getting flamed about such things for something I believe you can indeed fix.  I want standards compliance more than anything Microsoft can deliver when it comes to their compiler. I don't mean to sound demanding or greedy but I WILL continue to use both VC++10, GCC 4.6 snapshots and even Intel's ICC C/C++ compiler just to have those standards compliant implementations.  Now that Visual Studio does have a standard which to worry about supporting, unlike when VC6 was born, I believe to give the prior beauty back to the VC++ compiler and even IDE you will seriously need to hammer down on trying to nail compliance as one of your top priorities.

      Those standards bodies are around for a reason, and have also put an MASSIVE amount of resources towards developing such standards, so as they are a master of their standardsation craft, others are masters of their own.  But they took ~10 years of planning and hardcore industrial work just as you have, to create the standard known as C++0x which I believe was made for a purpose.  There are some pretty joke standards and informal standards out there I do agree.  But imagine a huge swarm of Stephan T Lavavej's working day and night for a decade on this new standard, its not exatly a standard which was jokingly created or full of coin-toss decisions. They have credit for their profession, and truly considering their decisions in todays world which C++ WILL pave the future of computing, merits more than just business constrains for deciding to do their job for them and picking apart their master carved standard as piecemeal features.

      Therefore, consider those release timings of the C99 and VC6, opinions of many desiring the features which are in C++0x, and the reasons people even decide to use a different compiler so that you can try to attract people back to allow 100% usage of VC++ while on the Windows platform.

      Just to clarify though, I did immensely enjoy this video, he is a pretty cool dude.  I just tend to really be direct with my words hoping to provoke thought and constructive conversation even  if I'm not correct 100% of the time Smiley.

    • Wilfie

      Thanks Tony, this and the C++ renaissance video were interesting. More information from Microsoft as to the future direction of application development would be great.
      I am currently wondering as to what skills to invest in, the whole microsoft development story right now is confusing. I am currently using C# with WPF 4/Silverlight and both of these technologies future are uncertain. All the hype around HTML5 adds to the uncertainity - writing apps in HMTL is the future Really??
      While the WPF/Silverlight framework is great and I cannot imagine going back to MFC the performance is poor. I think a native app written in Modern C++ with a WPF like XAML GUI framework would be great. How well has Silverlight for Embedded Compact C++ being received? Are there any plans to extend this to the desktop?
      I don't think our current NUI WPF4 app would run at all well on a future Windows tablet with lower powered hardware. The app itself would be great on that form factor but to match the slickness of the iPad I would think the app would need to be native.

    • Moondevil

      It is nice to see Microsoft noticing that C++ still plays a major role in today's computing, but for me it still fails short.

      The adherence to standard seems to be only to the features that Microsoft needs to write certain types of libraries, not with the language itself. Would have you improved your support if it wasn't for the new driving factors that are making C++ relevant again?

      As for C99, it feels like an excuse. You mentioned gcc, but the truth is that Microsoft is the only vendor that supports 0 features from C99:

      So all existing vendors are able at least to support give partiall support except for Microsoft.

      For me this sounds like a political agenda, focusing only on .Net with "just enough" support to the rest of us.

      And now you expect us to shell out again more than thousand euros to a vNext release to get back features that were already there to begin with?!


    • Vlad

      You may have already noticed the number of comments in the Qt blog:
      @tgoodhew, charles: Can you leave a comment here regarding the step that Nokia/MS made? I mean adopting WMP7 at the Qt/Symbian C++ developer's expense.

    • Charles

      You may have already noticed the number of comments in the Qt blog:
      @tgoodhew, charles: Can you leave a comment here regarding the step that Nokia/MS made? I mean adopting WMP7 at the Qt/Symbian C++ developer's expense.


      I can't speak to the techincal specifics of the strategic partnership between Microsoft and Nokia as it relates to Nokia's large and vibrant native developer community. I of course hope something good comes from their passionate angst, which is fair. My personal opinions on the lack of C++ support in WP7 and what the plan is for Qt developers is not worth your time. All I can say is that the WP7 team is composed of some very smart people and excellent engineers - they did think through the new platform's programmatic capabilities before unleashing it on the developer masses. They really did.


      Better that you ask this question to the WP7 and Nokia teams and not myself or Tony since neither of us work on the WP7 team at Microsoft... I will say that I understand why Qt developers are upset and I hope MS+Nokia will do something to make them feel more welcome on our platform. I really do. I would imagine that this topic is being thought about intelligently on both sides of the partnership.


      You'll need to wait to hear from the folks on the WP7 team and Nokia for anything besides personal opinions from folks who have little to no bearing on what actually happens.




    • felix9

      WP7 team said :

      Nokia, and now Microsoft, are committed to making sure that your contributions to and investments in the Nokia ecosystem will be worthwhile. In the coming weeks we will provide more information about programs that will help you access the Symbian and Qt opportunities more effectively.

      So how many weeks the 'coming weeks' are ?? Wink


      and, there is something only the vc team could talk about, since VC2010 comes with no 'smart device' support, WEC7 uses VS2008 as the development tool, on the other hand Windows itself is going ARM, so here is a questin: will VC11 support ARM ? if no, then we can forget Qt for WP7, if yes, thats something to begin with, and then, the next question goes to the WP team.


      my personal guessing would be: Native for WP7 ? possibly(1). Qt for WP7 ? very unlikely.

      but as long as you can compile C++ to WP7, you can always leverage those non-ui part of Qt as your libraries.


      (1) as Diegum said:

      A few days ago I compiled all these claims for native support in WP7 and send that for the wp7 team. Not sure if, as your advocate, I'm to win the case but I keep my bets high. I'm confident that the same will start happening with other techs as well (xna, etc)

    • bdhc73a

      "God grant me the serenity to accept the things I cannot change; the courage to change the things I can; and the wisdom to know the difference."    I think WP7's .NET orientation cannot be changed, and it is better to advocate for C++ issues on Windows proper.    A MFC download without resource and dialog editors won't be viable.   If MFC is the recommended path, then you need a non-crippled version at around $80.   

    • Charles

      , felix9 wrote



      (1) as Diegum said:

      A few days ago I compiled all these claims for native support in WP7 and send that for the wp7 team. Not sure if, as your advocate, I'm to win the case but I keep my bets high. I'm confident that the same will start happening with other techs as well (xna, etc)


      Indeed. Diego is the community champion for C++ at Microsoft and he is your conduit to the VC team and other teams who do (or should) support native APIs inside the mothership. We're lucky to have him working the angles with Tony on the behalf of native developers. You'll meet him soon on C9.


    • Crimson

      I'm a little late to the party, but I thought I'd post just in case someone is still reading.
      For us indie developers a low priced 'standard' version would be great.  As far as licensing goes, I need the option to be able to sell commercially (even if its a small number of sales).
      I don't really need MFC/ATL, but I really need access to a profiler and plugins.  Native 64-bit support (its annoying having to kinda 'hack' it in on the express edition).  A little more focus on making sure intrinsics optimize well with the rest of the code would be nice.  I'd also love to be able to easily incorporate GCC, so I could use the same IDE/Project files/ect... to compile to both the native VC++ compiler and GCC (I know it probably won't happen, but I thought I'd ask ;).
      As far as C++0x features: Variadic Templates and Template Aliases plz!!

    • schroedl

      I would LOVE it if you could implement this suggestion -- We have wasted countless hours on this.


    • tgoodhew

      @schroedl: Let me ask about this issue - From reading the connect bug it seems to me that you're absolutely correct in that a complete rebuild prior to running in the debugger should not generate that error. I'll post back here with what I find (it may just be some ideas to track down the issue rather than a fix).

    • tgoodhew

      @schroedl: John - One of our PMs will follow-up using connect on this to find out what the issue is - Right now the suggestion is to the "Tools/Options/Projects and Solutions/Build and Run" settings and change the MSBuild log and output verbosity to "Diagnostic" and see what it says.

    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.