Microsoft made C++ a second-class citizen in Visual Studio 2015

Visual Studio 2015 is out and comes with lots of new features and improvements (see details here) but it also surprised me with what I call a demoting of C++ again to a second-class citizen, after some years when it looked like it regained importance at Microsoft. I’m saying Microsoft has demoted C++ because they made it an optional component in the installer, unlike C# and VB.NET that you cannot opt out and are installed by default with all configurations.

When you run the installer you can see there are two setup options:

  • Typical installation, that includes C#, VB.NET and desktop features, and
  • Custom installation, that allows you to select what components to install.

The typical configuration requires about 8GB of disk space. However, it only installs .NET based components (and of course other related assets). C++ is not part of those “desktop features” mentioned in the installer description. It does however install the C++ redistributable packages.

However, when you run Visual Studio after installation completes, all VC++ components are missing and require explicit installation.

To install VC++ you need to perform a custom installation. This can be done after a typical installation. A custom installation allows you to select what you want to install. These includes programming languages (VC++, VF# and Python Tools for Visual Studio), Windows and Web Development components, Cross Platform Mobile Development components and common tools. In total these require an additional 13GB of free disk space. However, with a custom installation you cannot opt out C# or VB.NET.

A good thing though is that the MBCS version of the MFC library is no longer a separate download, but made available with the Visual Studio installation. You must select the Microsoft Foundation Classes for C++ in the Custom installation to have it installed.

The conclusion I draw from the Visual Studio installation options is that C++ is not viewed as a first-class citizen language at Microsoft. I suppose they don’t think a “typical” developer using Visual Studio develops in C++ so they didn’t put it in the typical installation. On the other hand, they don’t provide us with the possibility to opt out .NET languages we don’t use. I’ve never developed anything in VB.NET and I don’t plan to. I don’t even see the need for such a language (just for some remote resemblance with VB6).

17 Replies to “Microsoft made C++ a second-class citizen in Visual Studio 2015”

  1. Hello Marius,

    Thanks for your blog post!

    I can assure you that VC++ is a first-class citizen in Visual Studio & Microsoft. In fact, this release includes much more C++ investments than the previous ones. That goes all the way from language conformance features & code quality to cross-platform mobile and C++ IDE enhancements. The setup changes mentioned in your blog post is part of an overall setup experience roadmap where we will keep moving different areas of VS to be selectable & off by default going forward. That will not apply to C++ only but to other languages & technologies. The IDE team explains the incentives behind such a direction in their blog post: Quoting from that blog post: “We will continue to move more of Visual Studioโ€™s capabilities out of the default installation, and focus on creating a friction-free setup experience in which you can get the features you need when you need them.”

    Happy to answer any concerns directly via

    Ayman Shoukry
    Group Program Manager
    Visual C++ Team

  2. I have felt the C++ hatred for ages, years even.
    And II dont understand why they do this to us.

    Especially when I have the audacity to use mixed C++ and MC++ (the new realtime diagnostic tools refuse to work with managed compatibility mode they make me use)

    I fell into this trap myself so thanks for this blog :ยฌ)

  3. Does anybody knows where’s all C++ documentation for Visual Studio 2015. It seems it’s not included at all.

  4. Agreed, this is an awful move on Microsoft’s part. How about letting me opt out of TFS and all the crapliad of baggage it brings instead.

  5. I don’t understand why we have no option to uncheck the Visual Basic installation on Custom mode or even the C# if we want to.

  6. It is frustrating as we see all sorts of goodies for C#/VB.Net
    What ticks me off is that you spends years learning to program in their style of C++ only to find that it is being considered a Native Language, whatever that means….

  7. I agree. It seems C++ has been removed and replaced with tools that might make Microsoft some money!

    I was pleased to see the community editions be released but requiring users to work out how to install C++ is cumbersome and confusing.

    Why not make “Custom” the default install option. Then at least people will know to install C++ or whatever else they want. It will also show people what is available in the Ide.

    Currently users go through the lengthy install process only to find some things missing, then they have to search the web and eventually find the install needs to run again. Ugghhh!!

    This negatively impacts support for anyone producing C++ tools and extensions for Visual Studio.

  8. I was quite surprised to see that C++ was not included by default in VS2015. I prefer C# myself, but I always thought of C++ to be far more popular than C#. I tended to avoid C++ simply because of its lack of “flow”: two files per class, poorer intellisense, more verbose or cryptic syntax for many things, etc., but C++ devs really deserve better treatment.

  9. Pingback:
  10. Tim, sealedinterface, Vinnie &

    Huh? Hogwash. VS2015 Community Edition certainly includes C++.

  11. VikingExplorer – Hey don’t include me in that ๐Ÿ™‚ I clearly agree that C++ is in VS2015. In fact VS C++ is stronger than ever because it includes support for cross platform, android, clang and lots of other things.

    My point was simply that it would be better if there was a one-click-install. It’s not obvious on the setup window that C++ is optional. Defaulting to Custom Setup showing all possible options might be a simple solution. I just don’t like seeing disappointed first time users ๐Ÿ™‚

  12. @zin

    It is all free and you have a lot of control over the install process if you click “Custom” during install.

    In Visual Studio 15 you can see a simpler install process for specific uses of Visual Studio. This allows, for example, C++ users a one-click install with c++ and without other “stuff”. So it seems Microsoft do listen and are responding to feedback.

    However I see a lot of people start with C++, then want to connect different systems using web, mobile etc. How will those users ever find the tools if they have to look for them? Many users have been unable to click “Customize” to find the C++ install so that proves that it is better to install lots of things and let users easily find them when they want to use them.

    I think Microsoft are making a great effort.

    I am also seeing many Mac and Linux users attempting to use Windows and Visual Studio because it’s so good. The same users historically do not like Microsoft, use old hardware and are quick to complain about so much software being installed. It’s very unfair and makes little sense to Windows users.

    The same complaining users don’t seem to realize that lots of software means lots of great functionality.

    We are talking about the install of a single program (IDE) that has many options. You can either not install or uninstall most of the things you don’t use.

    My feeling is that Microsoft would be better off without ungrateful users like yourself that want to drag everything backwards just so they can find something else to complain about.

    Visual Studio rocks and just gets better and better!

  13. Complains drive future innovation. If we are all grateful for what we have there will be no progress. I use VS as my primary development tool for 15 years and I know how good it is comparing with other IDEs. That doesn’t mean I can’t or shouldn’t voice against things that I don’t like.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.