C++ enhancements in VS 2010


As part of my series of blog posts talking about VS 2010 and .NET FX 4, I want to focus on the work we are doing for the native developer as part of Visual C++.


 


In an earlier post, I mentioned how the Visual C++ team is investing heavily in enabling developers with large native applications to be successful on the Windows platform.  As a part of that, we released the Visual C++ 2008 Feature Pack earlier this year.  Visual Studio 2010 continues down this path by focusing on making native C++ developers more productive with significant enhancements to the overall IDE experience as well as improvements in the language and library space that further extend the power available to C++ developers.


 


Native C++ applications have been growing larger and more complex over the years.  VS2010 makes C++ developers more productive by scaling better when working with larger codebases.  One of the key areas where we are making significant improvements is IntelliSense.  The IntelliSense engine, which powers the majority of the IDE features, received a major architectural overhaul with a sharp focus on eliminating inefficiencies that surface when dealing with large codebases.  A prime example of this is that the IDE remains responsive even while editing source files in very large codebases.  Source edits no longer trigger massive updates of the symbol database even with the most complex source dependencies.  Visual C++ developers who often edit header files deep down in the include hierarchy or switch project configurations will notice the huge improvement in IDE responsiveness.


 


Another area where Visual C++ is scaling up is the build system.  In VS2010, MSBuild will be the build system powering Visual C++ compilations.  MSBuild provides significant customizability, extensibility and logging which are essential elements for large-scale and complex build environments.  MSBuild’s logging features will make the expensive chore of tracking a project that keeps rebuilding a much simpler task.  Also, the extensibility features will allow you to target different versions of the compiler from the VS2010 IDE as you can see in the images below.


 


 


 



 


 



 


 



 


 



The increased complexity of C++ applications place higher demand for tools and productivity.  VS2010 comes with a new set of IDE productivity tools that make it easier to gain insight about complex codebases.  IntelliSense and browsing functions have been overhauled not only to scale up but also to provide more accuracy and resilience.  The new header dependency tool allows you to find out more details about your complex include hierarchy.  The new Quick Search feature will make it a breeze to go to a specific symbol or file by simply typing a part of its name and pressing enter.


 


On the library and language front, one of the key focus areas for VS2010 is concurrency.  VS2010 makes C++ developers more productive writing parallel code by introducing a new set of libraries and supporting new C++ language features.  VS2010 introduces the Parallel Patterns Library (PPL) which provides a new abstraction for building responsive C++ applications that take full advantage of multi-core hardware.  PPL enables an effective way of expressing parallelism and provides new asynchronous messaging APIs that allow you to increase application resilience and robustness.   VS2010 comes with support for new language features from the upcoming C++0x standard, such as lambdas and the repurposed  ‘auto’ keyword, which make writing code that uses the PPL cleaner and more maintainable.  Finally, VS2010 delivers more support for developing great Windows applications using MFC by adding yet another set of great features to MFC that make it easier than ever to leverage the features in Windows Vista and in the upcoming Windows 7 release.  With built-in support for restart manager, MFC applications can trivially add the ability to recover unsaved applications through unexpected application failures.  Task dialog support allows MFC applications to develop richer user interfaces to replace wordy message boxes.


 


Over the years, we have heard a lot of C++ developers refer to the old days of Visual C++ 6.0 as the glory days of Visual C++ tools.  Many of the comments reminisce about the snappy and productive IDE.  With Visual C++ 2010, we strive to create a new benchmark for Visual C++ IDE productivity.  We will couple this IDE with our superior support for the C++ language and significant improvements to the libraries.


 


You can always find more information about Visual C++ and interact directly with the team through their blog.


 


Namaste!


 

Comments (120)

  1. Recently, Soma, Vice President for the Microsoft Developer Division, blogged about the enhancements of

  2. Somasegar’s WebLog : C++ enhancements in…

  3. JSM says:

    Will the /MP option be working?  I don’t have as much experience with it in VS 2008, but I do know that in VS 2005 it often results in corrupt PDB files.  Too bad–everyone has multi-core machines now, and it speeds up builds a lot when it works.

  4. vu64 says:

    We write cross-platform C++. So  we want to have C++Ox concurrency, not a parallel library tied to Microsoft.

  5. Marian Luparu [MSFT] says:

    @JSM: Will the /MP option be working?

    In VC2005, /MP was undocumented for the precise reason you mentioned. In VC2008, the compiler team did additional work on it, added it to the list of documented switches for CL and encouraged developers to use it. In VC2010, we are exposing this switch in the Property Pages as well and also allow you to control the number of cores you want /MP to use centrally from Tools/Options.

  6. qtqw says:

    The same applies to MSBuild.. You guys should really work with the community as you do not even have the resources to compete with rather small Boost community, all of it is invested in .NET which has been obvious since 1997.

    MFC, why is that hack still being developed.. Why wasn’t WTL given a better chance? No scrap that even that is useless.. Heck, why not get MILCore to all OS-es and be done with it.

    But, first of all, why not fix GDI+ page faults?

    This all needs work and serious dedication guys, moving into parallel space is also way behind others and it again will be proprietary and comete against your major hardware provider.

    That’s all.. If you want to speed apps, fix GDI+ to be fully accelerated and without page faults. It will help that other thing called .NET too..

    Majka

  7. al havrilla says:

    great news …. but way way way late.

    al

  8. Mark Gordon says:

    "Over the years, we have heard a lot of C++ developers refer to the old days of Visual C++ 6.0 as the glory days of Visual C++ tools.  Many of the comments reminisce about the snappy and productive IDE."

    Soma this comment doesn’t refer to only C++ it is a corner strone to a much more broader majority opinion of how pathetic Visual Studio is. Nothing in Visual Studio 2008 beats VB 6.0, C++ 6.0 and VFP 6.0 for application development. The focus of the 6.0 dev tool era was providing tools that made developers more productive. The VS era is about bloating technology with useless features, unwanted flash and unfinished frameworks. There is zero consideration or benchmark on the development communities productivity gain this bloat provides.  This is worse then symbolism over substance, as the symbolic bloat of VS actually hinders our productivity.

    Pathetically enough Microsoft still doesn’t get it, as a big push in VS 2010 is too change the IDE to  a WPF based technology, which you said couldn’t be fully implemented for this release. No one mainstream is blogging or requesting an IDE change. Moreover with all bugs in Visual Studio and lack of a true data centric language this should last on your priority list. Instead the preceived "coolness" factor at "Microsoft" and your cheerleadering squad, makes this waste of time a priority. This can be equated to the VFP 6.0 class brower, that has way more functionality then the one found in VS but the VS one looks "cooler". That is all that is important right ?

    This is what is wrong with Visual Studio nothing is finished, flash over functionality reigns and VS is in a constant chaotic state of suck! Attributes missing in the 6.0 development tools. What part of we WANT STABLE TOOLS THAT WORK is so hard to understand, who care about flash when the fundamental core of the development tool paradigm is flawed and a datacentric language is missing!

    Microsoft has completely lost touch with everyone outside of their ivory seattle campus. Technology at Microsoft is about ego feeding and arrogance not about productivity!

  9. hereafter says:

    Better Fix the annoying intellisense bugs.

    U program doesnot compile, intellisense not working?? WTF

  10. Simon Buchan says:

    All this for little old me? 😉

    PS: Wow… lots of hate here. Don’t worry Soma, some developers still like DevDiv!

    I’m surprised you’re planning to have C++ lambdas already, IIRC G++ doesn’t even have that working in their dev branch yet.

    Actually, this is pretty much every (major) problem I have with VC++ at the moment looking like it will be resolved, so thanks!

  11. Kwan says:

    C++ has stagnated as a language for quite some time and Microsoft treats it as a second class language. Visual Studio has been out for 5 or 6 years, each new release is worse then the prior. Do us all a favor go back to what worked and put the nail in Visual Studio/.NET’S coffin once and for all!

  12. Ani Kirilov says:

    Wow, wow wait a minute. Is it really so bad??

    I’m developing in Delphi/Pascal for more than 20 years. Recently we had to do some projects for Mobile, so I had to move to C++ (VS 2005) "native".

    That is why I think my opinion will be without prejudice (except that I still prefer Delphi).

    As a beginner in C/VC a have to say – it was very easy to start – everything was kind of familiar.

    It is true that VS puts a lot of efforts in .Net, and this is true for all languages (in Delphi I still use v7, because all higher are .Net oriented). But you have enough tools to write/compile in C/C++.

    I would suggest: learn from the good things from the rivals. Borland made a turn in Delhi 2007 toward "native" programing. You can do the same in VS2010.

    P.S. I like VS2005. I don’t know what was VS6, but I’m sure there is enough tools for C/C++ development.

  13. Sujay Ghosh says:

    If some one has NOT used Visual C+1.5/4/6.0 , he/ she DOES NOT know the beauty of  Visual C++ .  Visual C++ classwizard is one of the coolest tools I have ever used .

    I am using Visual 2005/ Visual 2008, and its all focussed towards .NET ; recently I posted to MS Connect regarding the CWnd virtual functions related bug, and MS commented that they are  trying hard to fix it.

    Echoing on a blogger comments "Some Microsoft office guys have been hired for Visual Studio IDE".

    With Jeff Prosise and Mike Blaszczak out , shall Visual C++ regain it old glory.

    Microsoft … please respect Visual C++ as a separate entity by itself.

    No .NET stuff can ever fill the void , what Visual C++ can do to Windows Programming.

  14. Stefan says:

    I don’t quite recall the first version of MS compilers (when they were still called compilers) that I worked with, but I believe it was something like 2.x or 3.x, as the first major update was to version 4.2. And that was a real big step toward better productivity. I’ve witnessed some minor improvements over time until 6.x, then didn’t work with it for some time.

    2 years ago I switched to a new job, and again startet programming with MS build tools, this time MSVC 2003.NET. The first thing I was wondering about was the ‘.NET’ in the name, since to my knowledge there was no .NET functionality involved in that department. At all. I was right, and neither do we use Java, VB or any of the other parts of that particular suite. Except, of course, C++.

    Now I do not know about the more recent suites, but all the additional stuff we are not using at all is slowing us down notably! For one the ‘built-in’ .NET functionality is nagging us everytime we’re doing something out of the normal build chain (edit-compile-link-run). And most annoying of all, both the intellisense suggestions and the online help are near useless as 99% of all results refer to C#, .NET, VB or yet another component, not C++. And that is true even if online help Index is filtered to only show Visual C++ results! The filter isn’t working at all – searching for help is a PitA!

    Maybe VS2005 or VS2008 are better than that, but I’ve never heard anyone stating such. And I’m desillusioned VS2010 will actually improve productivity for developers who just want to do C++ development, not all of the other useless (sorry just my personal PoV) stuff that is dragging us down!

    Regarding Intellisense, I am using a very good addon to replace it, and even it’s early versions (some 10 years back) already worked much better than any version of intellisense ever had. You’d be better advised to put more work in making the management of solutions and the build process itself more efficient, than improving putting stilts on a dead dinsosaur nobody ever wanted to ride in the first place.

    I don’t know if any of these things have been addressed in VS2005 or later, but what is most annoying me is:

    1. Help Index not helping due tomixed-in .NET stuff

    2. Intellisense providing lists full of .NET symbols or stuff from built-in libraries cluttering the suggestion lists to the point you cannot any longer find those symbols you’re interested in (i. e. those you have defined yourself inside your solution)

    3. No easy way to move source files of your solution to another directory (you can’t even ‘save as…’, i. e. copy it)

    4. Missing validity check for project and source file properties – e. g. why do you need to fully compile and link to get an error message telling you that certain settings exclude each other?

    5. Cluttering of the global namespace with macros from MS libraries (windows, mfc), for instance the ‘min’ and ‘max’ macros. Considering that they do clash with the STL (try ‘#include <valarray>’ for instance!) it is incredible these are #defined per default! As a rule of thumb, every macro has a potential to create very hard to pin down errors, wasting hours or days of valuable development time! If you want to improve pruductivity, kick out those annoying #defines! At least from the global namespace.

  15. Paul Sanders says:

    Well, quite a lot of hate mail there.

    I recently compared Visual Studio 2005 with XCode / Gnu C++ on the Mac.  Visual Studio made XCode look like something out of the stone age.  I also think that having all the MS technologies available in the one IDE is useful, although I agree that pollution of the namespace in the help system can be a nuisance.

    Methinks we take too much for granted these days (but I would like to see the page faults fixed in GDI+ !).

    And, while I remember, who on earth took out the AND operator in the full text search in VS 2005?  Madness!  Not sure if it is reinstated in VS 2008 – I don’t use it because compiler error messages are not displayed in edit ‘n continue mode (!!)

  16. MadGizmo says:

    Something I would like to see is smarter context sensitive help connected to your project options. If for an example I have created a Win32 project and I have selected to not use MFC or ATL then I don’t want to see non-VC++ languages, CE, .NET, MFC or ATL related stuff popping up in the help system.

    It is very irritating to wade through stuff you don’t use.

    So, instead of fine tuning the help system itself by adding filters (which is not very flexiable anyway) there should be a help system which is configured logically by the project settings.

  17. Niki says:

    #1 Wish for VS 2010: Improve troubleshooting options. Right now, if I encounter a bug in VS (and of course it has bugs, like any other software), I have to spend a couple of days to narrow it down, then open a connect issue, and in at least 50% of the cases I get a "could not reproduce" answer. This could be so much easier if VS had features like optional logging, which could help you narrow down a bug even if you can’t reproduce it.

  18. Steve Miller says:

    I’m sick and tired of C++ being the also-ran child of VS.  Being forced, for example, to go to C# in order to use LINQ just annoys the hell out of me.

    Pretty much the same for so many other features.  I’ve set up my first full-time Linux box – where it seems there’s still considerable respect for C++.

    Now, it’s wait and see.  Is C++ really being given its due, or is it simply a matter of MS pulling that chain a bit longer.  

    Do we get full membership in .NET or not?

  19. Joe says:

    I know the feeling Niki, what is worse then can not reproduce is when Microsoft classifies bugs as "by design" WTF!!!!  Visual Studio is an abortion by design. We didn’t realize how good life was until the Visual Studio and the .SUCK framework was released !

  20. Sujay Ghosh says:

    Heard at a Microsoft conference from a Microsoft employee.

    Rosario ( Visual Studio 2010, Architect edition ) shall be focussing on DSL – the new modelling tool, in the extensibilty package . Many MSDN blogs echo the same comment.

    Som , as a VP , please do the needful to bring the long lost shine of Visual C++ .

    Nowadays, .NET junkies are only stuck with properties / methods , and dont know what Windows messages gets processed when the particular properties are changed.

  21. jemiller says:

    I’d be interested to know what kinds of apps people are writing if they are doing it in C++. There seem to be a lot of people on here complaining about what a pain it is. Unless you are doing something low-level, I don’t see what the point of doing it in native code is. If you want stable code, use .NET. I remember the old days too. The days of buggy MFC code and access violations. Personally, I would like it if Microsoft implemented more of the OS in .NET, perhaps starting with IE. Then maybe they wouldn’t have to release a Windows Update every other day to patch a buffer overflow vulnerability.

  22. nwongfeiying says:

    Thank god they’re finally working on this. I think they should add a .RC editor (or a better one).

  23. Mark Gordon says:

    Don’t you get it, that is exactly what Microsoft wants everyone in C# and VB.net so the development tools are tied 100% to the windows OS via the .BLOAT framework.

    They killed VB and FoxPro next on the hit list is C++.  Microsoft is making the only purpose of C++ interoperability with legacy code. Is there really even any database support left in C++? Not to say Visual Studio database support in c# or vb.net is anything to write home about especially compared to FoxPro but at least it is something.

    What type of applications do you write as I’m not sure how you even can put stable and .NET/bloat in the same sentence.

    Mark

  24. Stefan Hett says:

    Will the /MP switch also work in conjunction with the /Gm switch, so that larger projects better profit from multi-core-compiling support (which is currenlty only possible through 3rd party addons like MPCL: http://www.todobits.es/mpcl.html)?

  25. pingpong says:

    "If you want stable code, use .NET"

    You made my day, jemiller. Thanks.

  26. Niki says:

    "I’d be interested to know what kinds of apps people are writing if they are doing it in C++": I’m doing image processing with C++. I  use C#/.NET for all the "high-level" stuff (UI, communication, databases, pretty much everything), because it’s more productive and less error-prone, but C++ is still better at low-level number crunching, plus all the image processing libraries have high-quality C/C++ bindings. (FWIW, the ability to integrate managed code and low-level C++ code seamlessly was the main factor why our company decided to switch to .NET).

  27. Alan8 says:

    I was surprised to learn that I’m not the only one still using VS6 for C++ development.  How hard will it be to port my VS6 projects over to this wonderful environment?

  28. jemiller says:

    In my experience, .NET is much more stable than C++, at least with regard to MFC and Microsoft’s implementation of STL. I used run into access violation bugs and other malfunctions in MFC all the time when I used to code in C++. At least in .NET you get a stack trace that you can make sense out of easily rather than having to hunt down where in the internals of MFC the problem is occurring. Granted, .NET isn’t as efficient as native code, but, it is good enough for many if not most applications and as someone else pointed out, you can implement the high level code in .NET and call out to C++/native code for parts that need more efficiency. Sorry, I’ve got better things to do that spending my day looking for buffer overflows and memory leaks.

    Mark, I think you just don’t know what you are talking about. It is clear that you haven’t bothered learning .NET. By definition if you are using a Microsoft product you are tying yourself to Microsoft. One could argue that .NET is more cross platform than Visual FoxPro due to the fact that Mono is cross platform.

  29. Tarek Madkour [VC++ Team] says:

    A lot of passionate discussion happening here over the weekend :) Let me try addressing some of the issues that were brought up.

    @vu64:

    > we want to have C++Ox concurrency, not a parallel library tied to Microsoft.

    A good portion of C++ developers are interested in cross-platform solutions and it is important for us that they continue to be successful. We do remain committed to implementing features of new C++ standards as they come out. In fact, we already have a few of the C++0x features implemented prior to the official standard being released. We also believe that it is important for us to innovate beyond the standard. This is precisely what we do with concurrency. We will have C++0x features. We will also add our own extensions for those who want more. You can pick what you want based on your specific circumstances.

    @qtqw:

    > MFC, why is that hack still being developed

    Because a large number of world-famous applications are using it and updating it means that those millions of dollars of investments in those applications can continue to pay off. Our customers have been loud enough in asking for updates there. We are certainly looking at where we should head long-term in terms of a UI and application framework. The answer may not be MFC in the long-term. But until a clear new framework is identified along with a clear transition path, we will continue to evolve MFC for the foreseeable future.

    @al havrilla:

    > great news …. but way way way late.

    I was happy with the "great news" part :) I’d love to it if you can elaborate more on the "way late" part.

    @hereafter:

    > Better Fix the annoying intellisense bugs.

    We are indeed.

    @MadGizmo:

    > Something I would like to see is smarter context sensitive help connected to your project options.

    Yes, we are well aware of this issue. A number of teams within Microsoft are collaborating on significantly improving this story. I hope that you will see the fruits of their work in VS2010.

    @Steve Miller:

    > Do we get full membership in .NET or not?

    No, we don’t. We are focusing our C++ investments on what the majority of C++ developers have been telling us for years: native code. In addition, we invest in native/managed interop through C++/CLI to enable developers to expose native C++ assets to the managed world and vice versa. We believe that pure .NET development is done best using a .NET focused language such as C# or VB. C++ will remain as the best way to write native code and a good way for interop between both worlds.

    @Alan8:

    > How hard will it be to port my VS6 projects over to this wonderful environment?

    The IDE should be able to load your VC6 project and upgrade it for you so that you maintain all your build settings. The compiler has significantly been improved since the VC6 days by being a lot more standards conformant. This will mean that you will have to change code quite a bit to make it standards-conformant in order to get it to compile again.

  30. Mark Gordon says:

    @jeMiller Your comments are incorrect. I know all of Microsoft’s Products Inside And Out including .NET. Perhaps you need to do your research before posting a comment. Early versions of foxpro, pre Microsoft, were completely cross platform including a version for the mac. Several years ago Whil Hentzen (last name is probably spelled incorrectly) took the VFP libraries and had them running cross platform  Microsoft quickly stepped in and claimed due to licensing violations forced us to quit using the libraries. The core dbf files are still "for the most part" platform independent. Likewise Basic and early version of VB also could be ran cross platform. That came to a halt as well. C++ applications if written correctly can also be written to be fully cross platform. Once you begin including the .BLOAT framework then the C++ applications become tied to the OS. Given the cross platform nature of VB and FoxPro coupled with the Royalty free distribution Microsoft killed the products. I predict C++ will face a similar demise at some point unless Microsoft can halt the cross platform nature of the language.

    The sad part is Visual studio is still playing catch up trying to get Visual Studio on Par with the older 6.0 technology base. Even common issues like using regular expressions in C++ has performance issues. If you have used FoxPro and compared it’s data access to Visual Studio you will soon realize just had tototally backwards and inefficent Microsoft’s Visual Studio data technologies are including LINQ. The VS class browser and true n-teir development also pale in comparison to the capabilities we had in the 6.0 era. Visual Studio is a huge step backwards!

    @Alan8 Moving a C++ 6.0 application to Visual Studio is a complete pain there is no easy way to do it.  The same can be said for VB 6.0 and VFP 6+ applications. Microsoft in their mission for Visual Studio dominace kicked all the old applications to the curb just about forcing a rewrite.

    Mark

  31. Mark Gordon says:

    @jemiller I was just reading through the rest of the comments and boy was I right on the mark as usual.

    @tarek From Microsoft said  C++ will remain as the best way to write native code and a good way for interop between both worlds.  Perhaps he read my comments!

    It is clear that is the direction Microsoft is taking C++ they have zero intention of making C++ a mainstream language as it once was for business application development!

    Have a great evening all

    Mark

  32. Karl B says:

    I’ve looked at the C++ extensions in VS10 and think that there has been good progress in this area.  I’d like to see more invested into keeping up with the standard, although none of those features will be used much in production code in the next several years anyways.

    The MFC enhancements definitely added some great functionality to that toolkit, unfortunately, must people have appropriately moved away from MFC for the majority of the projects it is really useful for.  It would be a difficult decision to start a new application today using MFC as there are so many competing choices in the Windows client application space (Winforms, WPF, Sliverlight, Win32 C, Silverlight, Swing, AJAX, Flash, Visual Studio Isolated Shell, etc.).  

    Line of business corporate apps typically will be better implemented using a .Net solution, but most ISVs implementing COTS-style apps for Windows will still want C++.  Also, there are billions of existing LOCs of C++ that need to be maintained and enhanced.  Everything that runs on Linux that isn’t Java is probably C/C++ (yes I know about the Python, Perl, shell scripts, Ruby, but that all is dwarfed by the C-family POSIX code base)  All the embedded Linux and client/server back-end NOC applications I did in the last few years were in C++.

    In short C++ is in my opinion the best all around language, since it really can be used for almost anything.  However, the correct tool should be used for the given job. (1) Java or C# with Spring, Hibernate, and an MVC solution for web back-end applications, (2) JavaScript with AJAX (YUI, Dojo, AJAX Asp.Net) for web client apps and (3) C++ for almost everything else.  Anyways, its good to see MS putting something back into C++ once they realized the whole world doesn’t want VB and C# shoved down their throats for every type of application development (although .Net really is better for many types of development).

  33. SanJin B. says:

    I’ve been using vs2005 since it came out, and later moved to vs2008. I’ve noticed upgrades in IntelliSense, and that’s about all I could ask for as a C++ OpenGL app developer.

    It’s pretty much down to how good are third party libraries or your own, that affects my productivity.

    vs2008 already does everything without mistakes for me. Thanks C++ and vs team.

  34. Andre says:

    @jemiller: Don’t blame C++/MFC for your lack of skills!

    @Tarek Madkour: Since how many years are you guys telling us that you are looking at a new application framework? It’s getting boring to hear the same stories for every VS release again and again.

    Do you guys remember the  Slow Chat: Visual C++: Yesterday, Today, and Tomorrow (http://www.codeguru.com/forum/forumdisplay.php?f=89) ? Nothing of that list has been fixed since then.

    Probably not the right place to report it here but I found a bug in the VS2010 CTP, if you have the Output pane tabbed and compile your project the Output tab becomes active, if you then press Ctrl+Tab once the Output tab stays active, you have to press Tab twice to get back to your previous tab.

  35. dvy says:

    Good news!!!Please MS continue largely invest native C++ and IDE productive ,improve it ,enhance it, continuously.Because native C++ application is portable,and high performance than manage code!!!!!!

  36. jemiller says:

    @Andre: I don’t have a lack of skills. I have enough intelligence that I know I can do what I need to using .NET and get the job done 10x faster. That is the whole point of .NET. If you want to do things they way they were done in 60s that’s up to you.

    @Mark: You are wasting your time if you think you are going to convince Microsoft to put more resources into Visual FoxPro. For all practical purposes it’s dead. It might have it’s merits, but, it doesn’t matter. It’s basically just a legacy language at this point. .NET is where Microsoft is putting it’s resources. I used to program in VFP including on the Mac. I will admit that ADO.NET isn’t what it should be and LINQ to SQL and LINQ to Entities isn’t there yet either. Hopefully .NET FX 4 will include the new version of LINQ to Entities that lets you generate a database from a model.

    Maybe Microsoft can add something to Visual Studio that will prevent all the sloppy C++ programmers out there from putting buffer overflow vulnerabilities in there code. Then, Microsoft can use it on their own code and I won’t have to download 50 Windows Updates every month.

    COM needs to be put to rest also.

  37. John Dallman says:

    I’ve been using Visual Studio headers, compilers, libraries and linker, and the IDE as a debugger, since VC2. Because we write our code in a special-purpose language that generates C code, we don’t use the IDE for coding, and because we’re cross-platform, we don’t get entangled with COM, Windows GUI, or most of the things that use up so many programmer’s lives.

    VC6 was a sweet spot, in that everything worked fairly well. Since then, VC7 was a disaster, since the C/C++ compiler was broken in the cause of supporting .NET, while VC71 was better, but the compiler was still a bit dodgy and the debugger was shaky. VC8 and VC9 aren’t much different from my point of view. In both of them, the compiler is fine, and the debugger is acceptable, although the user interface gets more complicated every version. We provide a .NET binding for the Windows version of our product, and VC8 was the first version of .NET where that was possible. it works fine with VC9, too.

    There seem to be social forces inside MS that naturally cause the user interfaces to get more complicated. I don’t know what they are – it could be lots of people each wanting to get "their bit in", for example – but they definitely seem to be present. Trying to find a way to avoid that, perhaps finding a different way for the developers to feel they’ve made their mark, would be very much worthwhile.

    For VC10, what I’m most interested in is standards conformance and the performance of optimised code. PGO isn’t viable for us, because the product is too large: a PGO link takes so long that the developer looses his train of thought. The "only PGO when you’re ready to release" approach doesn’t really work with Agile development. So the basic optimiser – and not introducing bugs into it – remains very mportant.

  38. Sujay Ghosh says:

    Adding one more bug which I have reported to Microsoft on Vs2005/VS2008 .

    The CWnd derived classes does not show up in the designer. I am meaning PreTranslateMessage . The functions are still there , and one can override them too. .. but the person has to know. This was present in VC6.0 IDE , but is not present in the recent Visual Studios.

    Isnt the IDE supposed to help the developer.

    @jemiller .NET makes the work "look" faster , but in the background it does a lot of old 60’s stuff , as an overhead thus making it slower. For example. Nativewindow is the base class for .NET controls, and if you are subclassing an edit control you are still taking the "EDIT" class which Windows SDK programmer used to work on. So in totality .NET is creating several wrappers for the edit control, which makes it the worst control in .NET .

    I say this because I have created custom controls suite in .NET , and getting a custom edit box is a pain. You can find many freinds to this subject if you do some googling.

  39. Mark Gordon says:

    @JeMiller Sure I know the chances of convincing Microsoft or Soma to do the “right” thing is slim to none. They are blinded by their own arrogant want-to-be-god complex as they sit in their Ivory Tower at Microsoft and make their best effort to preserve their windows monoploy. That doesn’t mean I have to be silent and become a cheerleader because they are Microsoft.

    Every time we have to learn a new IDE, deal with any one of the hundreds of Microsoft bugs or learn some jacked up half implemented framework it costs us money besides taking us away from doing something productive like making our customers more efficient through the use of technology. A lesson Microsoft has obviously forgot!

    Microsoft believes they can take trash put in a box, wrap it up so it looks really nice and flashy (“BLOATED is a better word) and developers will be happy to use it. However once the wrapping is removed and contents of the box is revealed it is still trash! Needless to say WPF is the wrapping and Visual Studio/.bloat is the trash inside!

    Do you really think we as developers could get away with an upgrade to our custom applications that cost our clients more, does less and made it harder for our customers to do their job but looks really cools and has ridiculous features like mpegs playing in ovals? Of course not! Then why should we deserve a product like that to build applications?

    I have posed this question numerous times and no one can answer it sensibly. Other then a flashy UI what is the benefit of building a Visual Studio/.BLOAT crud lan-based app compared to a VB/VFP 6.0 crud lan-based app for a mom and pop shop with 20 users with less then a million records in any one table. There is not a single benefit to Visual Studio! Do developers really believe this environment needs a SQL Server database?  Therefore why cheerlead a tool like Visual Studio with a higher cost of ownership that requires more code and new hardware to get the same end result we could achieve with the 6.0 development platform?  The only reason is Microsoft decided NOT to support a technology that freaking worked and didn’t even have the decency to keep backward compatibiity or provide an upgrade path!

    If everyone is happy using an unstable, more expensive, inferior product (compared to “legacy” technology) along with shoehorning Visual Studio into environments it doesn’t belong go ahead. Perhaps maybe I’m the only developer in the Mom and Pop niche arena still coding and turning out “honest” billable or one of the few developers with enough dignity left to call a spade a spade? Who knows!

  40. vcblog says:

    Hello

    Thanks for all the great feedback and wonderful suggestions!

    > Re: Monday, November 24, 2008 2:09 PM by Stefan Hett

    > Will the /MP switch also work in conjunction with the /Gm switch, so that larger projects better profit from multi-core-compiling support

    Unfortunately  the answer is no, not for Dev10.

    Thanks

    Damien

  41. v says:

    Wel, C+0x is nice.

    Why not to add C99 support fr all people who do cross platform development. C99 was not a top priority in 2005, neither in 2008. 5 years passed, third generation of Visual Studio, god knows which generation of SDK. Still no priority.

    Guys, there are quite a few people who do cross platform development (in C mostly, not even C++) and Visual Studio is years behind GCC in supporting C99 and even behind Sun compiler.

    So why does it take so long to add a freaking stdint.h to include  directory and %zd modifier to printf? Is this too hard;)?

  42. Arjun Bijanki [MSFT] says:

    @z

    > Why not to add C99 support fr all people who do cross platform development.

    The simple reason is that we haven’t seen that much demand as compared to the massive requests we receive for TR1, C++0x, etc.  I don’t foresee us implementing C99 in its entirety, but we will take a close look at requests for specific C99 features (especially ones that integrate well with C++.)

    Apart from <stdint.h> and %zd, are there other C99 features you’d really like to have?

  43. v says:

    @Arjun

    What I would really like to have…

    stdint.h (mentioned already), inttypes.h, __func__ preprocessor constant, C99 style structure/ union initialization a la

    union {

         char birthday[9];

         int age;

         float weight;

         } people = { .age = 14 };

    conformant modifiers for printf – ( %zd and %zx) and strftime

    (%T and friends).

    Ability to declare variable  in the middle of the block would be really nice.

    That’s it..

  44. vcblog says:

    Hello

    Re: Sunday, November 23, 2008 9:58 PM by Simon Buchan

    > I’m surprised you’re planning to have C++ lambdas already, IIRC G++ doesn’t even have that working in their dev branch yet.

    The lambda work just went so well with the parallelism work, can you image all those demos/samples that the PCP team did at the PDC without them? See Rick’s talk for example: https://sessions.microsoftpdc.com/public/timeline.aspx

    Thanks

    Damien

  45. R.J says:

    > I’m surprised you’re planning to have C++ lambdas already, IIRC G++ doesn’t even have that working in their dev branch yet.

    Intel currently implemented lambdas in their C++ compiler v11.

    It is obvious that they are investing a lot in C++ and soon they will implement other adopted C++0x features.

    I advise you to stick to Intel for C++. Their C++ compiler is really good and fast in both compiling and compiled code. They also have some really good tools and libraries like Threading, Parallel, XML, Math Kernel and IPP(Integrated Performance Primitives) that contains a full set of stuffs about signal, image and video processing and a lot more. And also it integrate fully in to the visual studio.

    5 days ago I installed a trial version of Intel C++ compiler suite that contains the C++ compiler, IPP, Math Kernel and TBB. I tried to recompile some of my MFC, ATL, QT and pure C++ project with it and it worked perfectly.

    Give it a try.

  46. R.J says:

    Dear Mark Gordon and jemiller.

    This topic is related to C++ and Visual C++ not VFP or .Net

  47. Publicación del inglés original : Viernes, 21 de noviembre 8:36 AM PST por Somasegar Como parte de la

  48. Parece que Microsoft no se olvida de los programadores de C++ y VS 2010 también ofrecerá mejoras en este

  49. Parece que Microsoft no se olvida de los programadores de C++ y VS 2010 también ofrecerá mejoras en este

  50. int19h says:

    I used VC6 back in the day, and I don’t understand all the hate against later versions. VS2008 as a C++ IDE is superior in all regards for native C++ development (and is the best available C++ IDE on the market on the whole) – code completion is pretty good, debugger visualizers for STL and ATL classes are extremely helpful, and so are runtime checks in debug STL. Compliance to the Standard is also pretty good, as are optimizations. What’s the problem?

    My only minor quirk is that C++/CLI seems to have stagnated. Oh, I’m not asking for adding LINQ and such to it – no point. But at least the new stuff you’re adding, like lambdas, should really fit into the C++/CLI picture where appropriate (e.g. add a way to make a delegate out of a lambda!).

    > Why not to add C99 support fr all people who do cross platform development. C99 was not a top priority in 2005, neither in 2008. 5 years passed, third generation of Visual Studio, god knows which generation of SDK. Still no priority.

    Well, gcc still isn’t fully C99-compliant either. In fact, is there any compiler that is? If anything, it seems to be a good indication that few people actually care about C99 (aside from the stuff that got into TR1).

  51. Ivo says:

    >The days of buggy MFC code and access violations

    >In my experience, .NET is much more stable than C++, at least with regard to MFC and Microsoft’s implementation of STL

    If you guys have good programming habits/style and some experience large C++/MFC apps works seamlessly.

    I like vs2008 and the new MFC. Thanks to the C++/MFC team.

  52. R.J says:

    I don’t know about version 11 but following C99 features are supported in 10.1 version of the Intel C++ Compiler:

    restricted pointers (restrict keyword).

    variable-length Arrays

    flexible array members

    complex number support (_Complex keyword)

    hexadecimal floating-point constants

    compound literals

    designated initializers

    mixed declarations and code

    macros with a variable number of arguments

    inline functions (inline keyword)

    boolean type (_Bool keyword)

    These features are not supported:

    long double (128-bit representations)

  53. R.J says:

    Re: Monday, November 24, 2008 5:31 PM by jemiller

    >I used run into access violation bugs and other malfunctions in MFC all the time when I used to code in C++.

    It’s obvious that you don’t have enough experience in C++.

    During the last year our team developed 8 application all in C++ and MFC 8.0 and 9.0 and we didn’t encountered even one access violation or any other malfunction during the development process and the applications are working well like the other ones that we have developed till now and that’s because we know what are we doing.

  54. R.J says:

    Intel C++ compiler version 11.0 supports following C++0x features.

    Empty macro arguments

    Variadic macros

    Type long long

    Trailing comma in enum definition

    Concatenation of mixed-width string literals

    Extended friend declarations

    Use of ">>" to close two template argument lists

    Relaxed rules for use of "typename"

    Relaxed rules for disambiguation using the "template" keyword

    Copy constructor does not need to be callable on direct reference

    Binding to class rvalue

    "extern template" to suppress instantiation of an entity

    "auto" type specifier

    decltype operator

    static_assert

    compliant __func__

    lambda expressions

    Hope to see more soon

  55. v says:

    >Well, gcc still isn’t fully C99-compliant either. In fact, is >there any compiler that is? If anything, it seems to be a >good indication that few people actually care about C99(aside from the stuff that got into TR1).

    If anything , this indicates that few people actually care about *full* compliance. There might be people around in the world who need very long doubles or complex datatype in C, I never met them. In my 12 years carreer  doing C and C++ only I never met anyone who needs TR1 or C++0x. Its nice, its hype, its time has yet to come.

    In fact on all projects  I ever worked on (and this includes quite large  and pretty successfull ones) C is still the main language, C++ is used in small amounts, without advances features, GCC is one of the main compilers, other *nix compiler are catching up in terms of C99 compatibility while MSVC pretends it does not exist and causes compatibility problems, so people coming from *nix background start to hate it.

    I lost count how many times I typedefed int to int32_t, or wrote the same C99 compliant printf clone or used

    #ifdef _MSC_VER

    #define __func__ __FUNC__

    #endif

  56. Vladislav Vaintroub says:

    @RJ

    thanks for info, not really interested in intel compiler- it costs money:) My congratulation to the team for beating Microsoft on standards compliance.

  57. David Hogan says:

    Hi,

    I’ve used VC++ 5, 6, evc4, 2005 and recently 2008. I was very happy with 2005 and I haven’t spent enough time in 2008 to notice a difference. One thing I do miss though, is the simple profiler that was in VC6. Can we please have it back in VC2010 professional?

    Cheers,

    Dave

  58. Ted says:

    C++ missing

     1. Code refactoring built into VS (missing from VS 2005,2008)

     2. Profiler built in (missing since VS 6.0)

     3. Generated code performance improvements (not apparently done since VS 6.0)

    It would be a good thing is MS would streamline its developer tool product line into C# .NET, C++ and Silverlight with common back end libraries for the basic OS features (file system, communication, etc.) as well as common back end libraries for databse and windows forms.

    MS development tools appear to be just silos of products without a global common goal.  .NET has real promise as a common platform (i.e,. win32 replacemnet) for things above the device driver level.

    .NET is nearly 9 years old, VS 6.0 is 10 years old, Win32 is older and MS should have brought things together by now.

  59. hereafter says:

    Fix the intellisense bugs first

  60. Arjun Bijanki [MSFT] says:

    @v:

    I’ve taken your C99 requests and added them to our compiler wish list.  We’re not going to get to them in time for VS 2010, but we’ll consider them with the compiler work for our next release.  Thanks for your interest!

  61. Like some others here I still user VC 6.0 and EVC 4.0 for the IDE.  The principal reason is ClassWizard with it’s custom DDX and DDV routines, as my applications deal with a lot of angular, gradient and length related data that can be in a a variety of units.  If you count the number of key strokes / commands / mouse clicks required to develop a modal dialog in this context, VC 6 / EVC 4 is much more productive.  In these IDEs, ClassWizard write the bulk of the code for you with a pretty good resource editor.  In the newer IDEs it’s a manual job.

    So here I sit in front of two monitors, VC 6 open on the left side for application devlopment, VS 2005 on the right side for release build compilation.  Will I be able to build C++ apps with just one IDE again any time soon?

  62. From a recent MS Ireland newsletter;

    "Visual Studio 2010

    .

    .

    • Harnessing the power of C++ (All the features of Visual C++ 6.0, Windows 7 support…): Do I have to give up my favorite C++ tool? What if I have a lot of code? What about the new look and feel options? What about performance and debugging?"

    Will this include getting ClassWizard and a decent RC editor back into the IDE?  If not, what is MS referring to here exactly?

  63. Cygnus X-1 says:

    I would just like to make a comment about this "use the right language for the job" mentality that makes the analogy between a programming language and a "tool".

    A programming language is not like a "tool" (e.g. a "hammer".)  It’s more like a workshop or toolchest.  As such, it is combersom to have to switch between them while working on a single job.  This ends up just making the developer unable to expertly craft anything because the "tools" are always changing.

  64. Pierre B. says:

    Shane: VS2005 has the same DDX functionality, it’s just that there is no longer a dedicated class wizard dialog. It’s now integrated in the resource editor. Just right click on a control and select "Add Variable…" or "Add Class…" to get the same functionality.

  65. WaRloCk says:

    VS is a huge hairball clogging the development process — MS aint fixing nor following the C++ standards they think they are the standards commitee — thanks for the "deprecated" issue breaking VALID code — Lovely — VS6 is not perfect only lesser of the two evils!

  66. Tarek Madkour [VC++ Team] says:

    @Shane MacLaughlin:

    > Will this include getting ClassWizard and a decent RC editor back into the IDE?

    We are considering adding the Class Wizard back to VS10. We hope this will make DDX/DDV function creation more keyboard-centric just like it was in VC6. There are some schedule challenges that we will need to overcome to get the feature done, but I am optimistic that you will see it when we ship VS10.

  67. @Tarek Madkour

    Excellent news and thanks for the feedback.  I await the release of VS 2010 with baited breath.

  68. clegurg says:

    How about adding support for debugging on Vista x64?

    I’ve been trying to make do without serious debugging ever since "upgrading" my OS.

    This may be related to the general instability with autoexp.dat.  Replacing that mess with something stable and documented would also be very welcome.

  69. Visual Studio 2010 CTP の C++ に関する英語フォーラムを見ていたら、" MFC improvements in VC 2010 ?? " というスレッドに MFC の行く末を案ずる投稿がされているのを見つけました。

  70. PJ says:

    @Shane I would suggest not holding your breath.  It takes Microsoft at least 2 service packs to get the bugs out of what they do ship. Still the features are so poorly implemented they are not useful, refactoring and intellisense are prime examples. When Microsoft finally does get a product that works VC6 they find some way to screw it up in a future release so we are back at square one but they call it progress. Congress is the only entity more inept then Microsoft.

  71. C++ guy says:

    VC6’s STL and template support was pretty poor, so the compiler has improved vastly since then.

    But every new version has been a step backword for the IDE.  The properties dialog used to be a well organized series of tabs containing check boxes, choices, etc., grouped logically.  Now it’s a single table of words in alphabetical order!  Try navigating that with a keyboard.  Try quickly telling if a feature is on.  A checkbox is much easier for my eyes to scan that the two english words True or False.

    Class Wizard was awesome.  The new class dialogs and class view feel like they were written by a summer intern.

    So the best solution would be take the old VC6 IDE and update it to work with VC10 compilers.

  72. Mark Gordon says:

    DITTO @C++ Guy  I couldn’t agree with you more, especially about the class browser and dialogs. Even VFP’S version 3.0 class browser is more efficent then anything seen in any release of Visual Studio pathetic !

  73. Matt Hargett says:

    You speak about making developers in legacy codebases more productive. If the team is really serious about this, then please (please, please, please, please) add some basic refactoring support for C and C++. Eclipse 3.4 has these features, which work in many cases, and 3.5 is getting even better. Beyond  the basic rename (variable, parameter, method, class, etc), extract function/method (with auto-determination of parameters) would be the next most useful thing.

    I am really looking forward to a smaller memory footprint, as well.

  74. @C++ Guy, You hit the nail on the head.  Integrating the new compilers with the VC6 IDE would be a good starting point.  As for refactoring and intellisense tools, Whole Tomato Software’s Visual Assist has this nailed already, and they integrate with all versions of VS including VC6 and EVC4.  I don’t see MS catching up on the C++ refactoring front for a number of years, minimum.

    My feeling is that by trying to be all things to all men, later versions of Visual Studio miss out on the fundamentals as a C++ IDE.  In addition to ClassWizard, there are so many small things that worked well in VC6 & EVC4, as a result of a long evolutionary development process, that have been dumped in the name of progress.  For example, why put help in the same tabbed windows group as source.  I don’t know about others here, but I like to have my help in a seperate window so I can maximise it on my second monitor while still viewing my source file.  Similarly, the resource editor has taken a few steps backward, as has the general responsiveness.  

    If VS2010 is to be the new VC6, the issues raised in this and the above posts really need to be addressed.  Given that EVC4 was basically a revamped VC6 for the embedded market, it is plain to see that the VC6 code base was still in active development up until 2004 at least and possibly further.  Why not simply bundle it into VS2010 with current compiler support (x86 and mobile) for us C++ hacks?

  75. Thomas Remkus says:

    In the end, Visual Studio is just an IDE around the command line and driven into focus only because people don’t spend the time researching how to actually use the tools already provided. A simple BAT file with some conditions and a correctly setup environment can allow beautiful development without the dependencies of the IDE. While I do enjoy syntax coloring I would have to say that many other options are just clutter to the real work. Dialogs are about the only thing that seem to be worth the need for an IDE while everything else can be developed in Notepad++.

    My personal preference for a development environment is a console with an editor that will allow me to F-key a build or a run of my code. Then show me a list of possible errors to the bottom that can be selected to take me to that line of code. That’s all that’s needed. Your fancy IDE is color and intellisense and a wrapper to the commandline. People complain about the lack of threading in the build process but if you thread each OBJ’s construction then you have your perfect solution. Then over 10 machines you can build then link for something that can not be done in the IDE.

    Microsoft … please give us back a simple IDE that can be installed as a portable app without .NET requirements. Give us a console editor that can be used as easily over telnet or ssh as we do with linux and gcc and mcedit.

  76. @Thomas Remkus, the other big plus with any good IDE is the seamless integration of editing with debugging.  With MS C++ from VC6 onwards, this includes Edit & Continue which in my context is a huge boost to productivity.  I haven’t used it, but I believe the newer MS IDEs include step backward debugging, which coupled with Edit & continue is a further big step forward.

  77. Mark Gordon says:

    @Thomas

    In case you missed it in a prior post, Microsoft is planning on redoing the UI for the IDE using WPF. Talking about going from bad to worse and wasting resources! They don’t seem to listen to anyone!

  78. beef says:

    "VS2010 introduces the Parallel Patterns Library (PPL) which provides a new abstraction for building responsive C++ applications that take full advantage of multi-core hardware. "

    Sounds great, but what about OpenMP? Will it be developed in VS2010, or will be replaced by the PPL? Or, maybe they are just complementary  technologies? Our team is about to parallelize some parts of our application, and OpenMP seems the great tool to do this (considering the nature of problems we working on), but I afraid of being stuck with abandoned technology…

  79. Hello again! My name is Li Shao. I am a Software Design Engineer in Test in the Visual C++ group. As

  80. Somasegar says:

    Hi,

    We really think about PPL and OpenMP as complementary technologies.  

    Our primary objective with PPL was to simplify and reduce the complexity of expressing parallelism in code in an effort to make parallelism more approachable.  Beyond OpenMP, PPL also delivers APIs for implementing autonomous asynchronous agents, a powerful programming model which is useful in coordinating and synchronizing the execution of independent tasks.

    However, if OpenMP meets your needs that is a fine technology to use.

    -somasegar

  81. R.J says:

    Will VC10 support OpenMP C/C++ version 3.0 API specification?

    Intel C++ compiler v11.0 and GCC 4.4 both support OpenMP 3.0.

  82. beef says:

    @somasegar, thank you for the reply. Although OpenMP seems enough for me by now, I will definitely take a look at PPL. In any way, it’s good to hear that OpenMP will not be discontinued.

  83. Rick Benge says:

    We currently don’t have plans to support the OpenMP 3.0 specification in the forthcoming product.

    >Will VC10 support OpenMP C/C++ version 3.0 API specification?

    Intel C++ compiler v11.0 and GCC 4.4 both support OpenMP 3.0.

  84. Ayman Shoukry says:

    R.J, VC10 will not include any major updates with respect to OpenMP. If you wish to discuss that more or connect with the appropriate folks for OpenMP, please feel free to email me at aymans at microsoft dot com

    Thanks,

    Ayman Shoukry

    Visual C++ Team

  85. R.J says:

    Here is some features I wish to see in VC++.

    1- Full conformance to C and C++ standards. I like to see C++0x full conformant compiler and libraries as soon as possible.

    2- Improve documentation.

    3- Improve IntelliSense. I know your working on it.

    4- Native unit testing framework with IDE integration.

    5- Code refactoring and coloring in VC.

    6- A good and extensible grid control for MFC like the ones in BCG and CodeJock libraries.

    7- A native reporting system like crystal reports or Microsoft Report for .Net is really missing.

    9- Automatic layout management for MFC dialogs and forms.

    10- I like to CTaskDialog MFC class being supported on pre-Vista operating systems.

    11- A native XML library so that VC users have an standard way to parse and manipulate XML.

    12- A native ((EXTENSIBLE)) XML based GUI library and designer in VC that enhances MFC so that I can separate designing GUI from other parts of development.

    13- D2D and D3D support in MFC.

    14- PDF backend for printing and painting system.

    14- Implement and use Signals and Slots mechanism in VC++ (as a way to communication between objects).

    15- OpenMP 3.0 Specification. I believe tasking in OpenMP 3.0 is really useful.

    Thanks,

  86. Zealic says:

    MSBuildExtensionPack MSBuild 一直都是 .Net 下 Build 工具的不二选择,可怜开源社区的 NAnt 几乎已经被彻底遗忘。而 MSBuild 则在蓬勃的

  87. gcoder says:

    I’ve been forced to use VS.NET (for pure C++ stuff, only a tiny fraction MFC, where the class wizard was greatly missed) for a total of 3-4 years, on a daily basis, for third party work, for my own business I use VC6. You’d think that after all that time I’d get used to the .NET IDE and soften up to it, but no, I still curse loudy on a regular basis and am so relieved when working with VC6.

    The UI of VC6 is a galaxy apart from .NET, while some features from .NET would be nice to have, they aren’t enough to endure the pain and horrors of having to work with .NET, as long as I have a say.

    I have no illusions, it’s painfully obvious MS will never ever "see the light" on this one. What I would kill for though, would be if they could release the VC6 (IDE) source, and let those who "get it" make sure it can live on. (again I have no illusions of this ever happening, the dangers of it putting .NET to shame are far too great).

  88. R.J says:

    What about Two-phase name lookup, Exception specifications and export.

    All are parts of the standard.

  89. John Davison says:

    I would like to echo the request made by user "v" at November 26, 2008 4:14 PM, for the addition of the <stdint.h> and <inttypes.h> header fies (along with their C++-specific counterparts, <cstdint> and <cinttypes>) and the __func__constant (which I believe that you are putting into VC10).

    Specifically, the addition of <stdint.h>, <inttypes.h>, <cstdint>, and <cinttypes> ought to be extremely easy.  In C99, when one concatenates a string literal with a wide-character-string literal, the result is a wide-character-string literal.  This feature is a necessity for proper use of the printf-formatting macros in <stdint.h>, and consequently must be added when support for <stdint.h>, <inttypes.h>, <cstdint>, and <cinttypes> is added.  If you’re serious about moving to the C++0x standard, then you’re probably adding this feature anyway.  Please ensure that you do.

    Finally, the Microsoft-specific "min" and "max" macros should be disabled by default and deprecated (or removed altogether).

  90. Lex says:

    Why don’t you do something useful and do not extend OpenMP to version 3.0? You guys keep adding crap noone needs, write extremely slow and buggy gui and add 50 new parallel libs noone needs. Does not microsoft understand people need cross platform apps and few people need .net crap? This is so frustrating, this bloody ignorance.

  91. Joe says:

    I use VC++ 6.0 on a daily basis. While it was a truly landmark program relative to it’s time, I think people are remembering it a little to fondly. Some of my C++ (and C#) work is in VS 2005. There are differences and a few quirks that drive me mad (especially how some of the dialogs look like they were thrown together by a third grader and the code the class wizard creates isn’t formatted correctly) yet I am measurably more productive in VS 2005 and VC++ 6.0–in some cases, I am so used to the way VS 2005 does it, the VC++ 6.0 method now seems "wrong."

    Having said that, VC++ 6.0 is still a lean, snappy program. Can’t say that about VS 2005. It also produces faster code. Optimization has improved with Visual Studio 2008, especially if I turn off a few things, but I have plenty of VC++ 6.0 compiled code that’s still faster. A huge annoyance is that linked executables are bigger, sometimes much bigger, in VS 2005/2008 than VC++ 6.0 for no apparent reason. Unfortunately the 2010 CTP offered no improvements in this regard.

    I should add that I tried VS 2010 CTP and was extremely disappointed. During the beta program for VS 2005, the C++ stuff was several months behind; I figure the same thing is happening here. To mollify us, could you do another CTP? Or a beta or anything?

    (Oh, and when we report bugs, actually fix them instead of telling us to get lost. That is especially aggravating for bugs that would take 2 seconds to fix.)

  92. Boris Jabes says:

    Hi Joe,

    We agree with the overall sentiment. VC6 was a great product and it enabled a great development experience 10 years ago. In fact, as you point out, given its speed and its focus on pure C++ development, it continues to be a productive tool for many customers out there. That said, we’ve made improvements over the years both in terms of UI (which you point out) but also in the parts like the compiler and libraries. You called out that the size of binaries has grown significantly since VC6. This is true, but it is by no means without benefit. One of the causes for binary growth is growth in our libraries. We have added tremendous functionality since VC6, from the recent additions to MFC in VS2008 SP1 (which doubled the size of MFC) to adding TR1 to the standard libraries. In addition, we have improved the "debug-ability" of our code (hard to illustrate) since VC6 by adding a lot of information into our PDBs.

    If you have code that runs slower after optimized compilation in VS2008 compared to VC6, we would love to know about it (feel free to send me an email at borisj at microsoft dot com).

    In the current release, we’re focusing on recreating that great productivity in the IDE that VC6 offered (and more). This release will scale to handle solutions containing millions of lines of code while providing new features aimed at improving your core coding experience. As you have guessed, the VS2010 CTP does not adequately illustrate all the improvements we’ve made to the IDE in this release. The next beta release will have all of these changes. We look forward to getting your feedback on it.

  93. Just read the VS2010 release notes at http://download.microsoft.com/download/C/0/9/C0965791-049B-4200-9008-F07A783026F6/VisualStudio2010_ProductOverview.pdf

    I’m delighted to see ClassWizard is making the anticipated come back, proving that MS do in fact listen to their users.  Good job guys, take the rest of the day off and have a beer on me 😉

  94. [Nacsa Sándor, 2009. január 20. – február 12.] Komplett fejlesztő környezet Windows kliens és web alkalmazások

  95. Bob says:

    I am pleased to see how many programmers agree that core c/c++/mfc development is easier, quicker, and better in VS6. I really encourage all disgruntled VS6 programmers to continue adding comments.

    I appreciate the comments about how some people "do not get it" regarding VS6. If you do not appreciate what VS6 is all about, and if even slightly think the VS8 IDE is "an improvement", then you are likely not doing any serious C/C++ work.

    If you are a Microsoft employee involved in VS development and you "do not get it", you do not belong in your job.

    There is a place for core C/C++. If Microsoft continues to treat this area so badly and in such an uninformed way, then it will abdicate any leadership role. It will open the door for someone else to produce a better C/C++ IDE and take over the market. I don’t care where I get my IDE from – I just want it to work. I would prefer getting it from Microsoft, but at this point, it really looks unlikely.

    This isn’t "hate" mail. Its angry mail. I’m angry that the "goofs" that foisted VS7 and VS8 on me don’t know what the heck they are doing or how badly it has hurt me.

    There is no way any credible software company, even Microsoft, can get away with putting out a product that is inferior to previous versions. The first rule of upgrades is to always make sure you preserve all existing features. This was not done in VS for C and C++.

    And if you act surprised as a Microsoft employee in VS development, then you haven’t read all the complaints in the VS feedback site from VS6 guys/gals from VS7 onwards. For just one example, look at all the requests for the Escape Key. Do you think we’re silly? That is one of the most annoying losses of all when moving past VS6.

    If you want to sit and publish a blog acting surprised at all the "hate" mail, do your job first: 1. Get informed. Most of the important losses from VS6 are posted in your feedback site.

    2. Publish an organized list of the missing capabilities and ask us for feedback to establish comleteness and priorities.

    3. Organize some hard core C guys to fix this stuff.

    I’ve been advocating dumping the VS7 and VS8 IDEs for years. All I need are the updated compilers and libraries to be retrofitted back to the VS6 IDE and browser. If you can add some of the other requests without destroying basic functionality again, then great.

    If anyone else knows about a good IDE, please post. I’m just downloading the Whole Tomato stuff to take a look at it.

    Bob.

  96. Tqadgs says:

    It is not just VS. Any medium-sized .NET app simply drowns and sometimes worse or at least as bad as Java.

    Win32 glueing didn’t help. Don’t expect Avalon to ever do (it is even more expensive than software GDI+ is, which ought to have been fixed, but nope.. better to keep us buying more and wasting more energy and cycles).

    Why doesn’t MS simply admit they do not have the skills of early days, that all went and pretty bad into bloat engineering of System.Object type and simply realise Intel and even Sun have better skills and C++ people. It is nuts that a JIT-er doesn’t even support modern constructs or SSE or anything else for that matter.

    Why doesn’t MS simply come out and admit that no .NET software will ever rule the planet? Google proved it, and .NET really needs to stop leaking those human resources.

    Solution: Retrain and pile the resources in C++.

    Don’t buy that DevelopMentor nonsense of SOAP will rule the world and C++ is dinosaur language.

    Look around you, your CLR and JVM is written in C++, an no bloatless decent sized app EXISTS for any VM.

    And VS surely isn’t one of them either..

  97. Anonymous says:

    What the heck. VC6 was very very crappy. The compiler itself had a ton of bugs, the for variable scope being one of the most notorious.

    Stop using MFC, and find a real decent written library such as Qt. It’s even LGPL’ed now, so you don’t have to put forth 3k upfront.

    Those who think managed languages gives you better stability are just too lazy or too stupid to learn how to properly manage resources. Get a grip of yourself and learn what pointers are and how to use them.

  98. James says:

    I hope that you guys pay attention to code generation for latest Intel chips.

    The Intel compiler is leagues ahead of you and provides suitable options to optimize code for its platforms.

    You are going to be left behind if you don’t pay attention in this area.

  99. Victor says:

    First of all I want to say ‘thank you’ for keeping C++ environment alive and healthy, especially compiler.

    Main problem in C++/MFC development under VS is that it is NOT a RAD environment, especially that PITA GUI programming. This is huge drawback which gets even worse with Intellisense and almost zero code refactoring capabilities. Some people can say ‘come on, dude, get decent third party tool/library and be happy’. But this also means spending another ton of $$$ just because built-in tools are out-of-competition. This is very bad =/

    ‘When a lot of developers talk about why one language is better than another, they are really comparing frameworks’ – this is a very good thought. I would say that in case of VS developers they also compare IDE’s. Differences in C# and C++ IDE’s are so huge:

    1) great visual GUI programming

    2) visual form inheritance

    3) cool code completion and fast Intellisense

    4) .NET Framework (compared to MFC in usability)

    Don’t you think that this sort of things is unfare to millions of C/C++ developers? I’m not saying ‘update MFC so it can match .NET framework’ because this is another story. Just please, try at least to keep such differences minimal.

    We all know that MS can make outstanding things like Windows 7, if it wants to… We trust in you, guys. Good luck! :)

    Sincerely yours, Victor.

  100. vcblog says:

    Hello James

    Thanks for taking the time to send us your feedback. We do work very closely with chip manufactures/vendors to leverage their latest advancements. To this end we do have a number of improvements in VS2010 however none have made the interim public releases yet – I hope you are pleased when you see the final product and please let us know what you think, either here or on our team blog at: http://blogs.msdn.com/vcblog/.

    Thanks

    Damien Watkins

    Visual C++

  101. vcblog says:

    Hell Victor

    Thanks for your comment about the compiler – we on the team think of it as our “bread and butter” and we are always happy to hear from its users. I must admit we neglected MFC for a number of years but hopefully you have seen the start of our reinvestment (http://channel9.msdn.com/posts/Charles/Pat-Brenner-New-Updates-to-MFC-in-Visual-Studio-2008/) and like our new undertakings in this area. We are working on more MFC features for VS2010 but few are public yet. With regards to the MFC programming model, it is true that it is not as RAD a programming environment as users need or as some of our other languages C#/VB) provide. This is partially due to the age of MFC and the need to stay backwardly compatible (and partially due to our lack of invest for a few years.) However we are looking at how to move the platform forward in coming releases, just to be clear however not all of this will happen in VS2010. We are also interested in hearing what you would most like to see. Intellisense, as you mention, is a major priority for us in VS2010. Refactoring is another major customer request, as you indicated, however these essentially require a modernization of our compiler. We are working on this (http://blogs.msdn.com/vcblog/archive/2009/01/27/dev10-is-just-the-beginning.aspx) and when this work is complete we hope to modernize both the C++/MFC programming experience.

    We hope that VS2010 will engender your trust even more – so please keep tell us what you think/need, our customer is are only reason for being here.

    Thanks

    Damien Watkins

    Visual C++

  102. Victor says:

    Hello Damien.

    Thanks for your comment, especially about MFC’s present and future. Yes, MFC is pretty old and incomplete solution, but in any way, there are alot of people still using it. So any help in its maintaining is highly appreciated :)

    General "wish list" for VS development is:

    1) Intellisense.

    2) MSDN help system (inaccurate results, especially often redirection into .NET section). Maybe needs some sort of ‘per-solution profiles’ (?) e.g. when I start to code C++ library then MSDN shows only VC++ help and if i use some .NET interop then I can add it in MSDN search profile.

    3) replace ‘parallel project build’ option with current /MP compiler switch. This would be much useful in utilizing CPU power and keeping track of currently build projects.

    4) decent code refactoring should be added. Look into Visual AssistX for C++ or similar ReShaper for C# features.

    5) up-to-date visual designer for MFC. Its a shame for MS to distribute current dinosaur with VS :) I doubt that MS would ever begin ‘.NET for native code’ development but who knows :)

    6) keep improving VS plug-in system so developers could easily integrate and use third party tools/libraries/compilers like Qt/wxWidgets/MinGW etc.

    Highly responsive, lightweight, extensible and configurable by plug-ins IDE is the way to go.

    P.S. Don’t try to outperform Intel in C++ compiler in code speed :) If someone needs really quick code – use Intel (it sells CPUs btw :) ) for release builds. MSCC suits everything else very well with alot of language features implemented and far more bugs fixed.

    Don’t give up and one day MS will invest tons of $$$ in all good ideas you and your customers have for C++ development :)

    Best regards, Victor.

  103. Though the Windows 7 RC SDK was released about 2 weeks before Visual Studio 2010 Beta 1, it was not possible

  104. Ivan Zivkovic says:

    Hi, how hard is it to target VC8 (2005) from VS2010?

    I guess that I can hand-craft MSBuild to do it, but is Microsoft going to support multi targeting to VC8 in some easier way?

    Thanks.

  105. Hari says:

    I am not againt the new BCGControlbar integrated into MFC. But I use another library (codejock).

    It would have been better if the new features were in a seperate dll, rather than built into the MFC*.DLLs, making them bloated.

    I tried to recompile the MFC dlls, but couldn’t, due to errors.

    regards

    Hari

  106. vcblog says:

    Hello Hari

    > I am not againt the new BCGControlbar integrated into MFC. But I use another library (codejock). It would have been better if the new features were in a seperate dll, rather than built into the MFC*.DLLs, making them bloated.

    I understand your point and appreciate where you are coming from, however a main reason for maintaining a single DLL is deployment (requiring only one dll in all situation is much easier model.)

    > I tried to recompile the MFC dlls, but couldn’t, due to errors.

    Sorry, we do not support users recompiling MFC (or the CRT) from VS2010 on.

    Thanks

    Damien

  107. Dardo says:

    It’s amazing… Obviously, this people have good ideas, I am not yet accustomed to VS 2008, that already have VS 2010.Wow…;)

  108. WinGDB says:

    Victor said:  

    > Hello Damien.

    […]

    > 6) keep improving VS plug-in system so developers

    > could easily integrate and use third party

    > tools/libraries/compilers like Qt/wxWidgets/MinGW etc.

    From my experience I cay say it is not so easy to add support for gdb or gcc in VS2005/2008, but anyway it is possible 😉

    Kind regards,

    dks

  109. Nemanja says:

    Looks like, YET AGAIN, automatic project versioning (for unmanaged c++) is not implemented. Is there any reason why VS team keeps on making me write pre&post build scripts for something that should be there out of the box?

  110. Edgar Mendoza says:

    Thanks Microsoft for this program is pretty good for that you say. I’m a programmer by my accunt and like me trial new border’s and discover new things for programming but whatever tanks one more time

    Edgar Mendoza

  111. Raanan Barzel says:

    How about adding some very basic C++-related features which will simplify a programmer’s life:

    1. Paired characters: when I type one of "({[ there is a very good chance that I will need the correponding ")}]. Why not have an option which produces the corrsponding character automatically?

    2. A command (CTRL+Arrow?) to move the cursor to the corresponding character when the cursor is positioned on or near one of paired characters above.

    3. When libraries like wxWidgets are used, display the value of a wxString on the first line without forcing the user to expand the variable to get to the value.

  112. Kevin Wang says:

    VS2010 is very good for the Visual C++ developer.

  113. NativeMan says:

    MFC kicks ass if you know how to use it. If you do not know how to use it, then leave the high perfomance apps to me and my bank account. Thank You.

  114. Jon says:

    Please remove the manifest file limitation (yes, limitation) in the VC++ binaries. An unmanaged C++ binary should not need the .NET framework to run, only the MSVCRT.

  115. Fernando says:

    Do this mean I can compile a VC9 project and generate the very same binary result from VS 2010 by just setting the "Platform Toolset" to V90?

  116. gmit says:

    Hello.

    I think I've managed to wrap up a support for VS2003. You might like to check it at vs2003.blogspot.com .

  117. day traders says:

    I really love reading your comments guys.I learn a lot from you.

    Thank you so much

    Regard,

    Day Traders