Visual Studio 2012 Express – Metro Only?

This post’s title says it all. I’ve just installed the Windows 8 Release Preview with Visual Studio 2012 RC. Just like in the previous release, Visual Studio 11 Beta, the Express edition does not contain any plain Win32 project templates, only ones for Microsoft’s new Metro UI.

This is a pretty scary situation for me: recently, the C++11 Standard was completed which finally makes threading in C++ bearable (when writing libraries, you no longer have to force a decision between Boost, TBB or POCO on your users). But C++11 threading was only added to Microsoft’s C++ compiler & standard library in Visual Studio 2012.

So unless Microsoft reverts the decision to no longer offer a free C++ compiler for Windows desktop applications, these are my options:

  • Buy Visual Studio 2012 Professional and exclude anybody out there who doesn’t want to shell out $500 from using my libraries. Make it harder to build any kind of team because there’s now a significant hurdle to entry. Probably be forced to modify 3rd party libraries in the future because Open Source projects will no longer test compilation of their code with Visual Studio.
  • Keep Visual C++ 2010 Express and either write my own threading wrapper (increasing dependencies of my libraries from 0 to 1) or just go with Boost and forget the rest.
  • Switch to Eclipse CDT + MingW and build my Windows desktop applications this way. That would give me C++11 threading (at least I suppose so – I couldn’t get it to work, see screenshot) but I’d have to always port anything I write to GCC (of which MingW is a port). Could be a good thing, since it lowers the barrier to port my stuff to Linux and Android.

Update: if you want to weigh in, I’ve been so bold and filed a bug report on Microsoft Connect: Support C++ Desktop Applications in Visual Studio 2012 Express.

Update2: the disaster is averted! Today, the Visual Studio blog announced that Microsoft has given in and will be offering two Express editions: The already known Visual Studio 2012 Express and, Visual Studio 2012 Express for Windows Desktop. That means it’s safe to use C++11 across the board now. GCC 4.6 has it, the modded Android NDK has it, and Visual C++ 2012 has it!


Here’s a screenshot of Eclipse with MingW:

Screenshot of the Eclipse IDE compiling a C++ project using MingW

And this is Visual Studio 2012 RC:

Screenshot of Visual Studio 2012 RC compiling a C++11 project

5 thoughts to “Visual Studio 2012 Express – Metro Only?”

  1. I agree. It’s very scary. Microsoft, it appears, are moving Windows away from an open platform to a closed OS like IOS.

    I always figured that Apple would be the first to close up OSX so that you couldn’t install any software other than through the AppStore, but it looks like Microsoft will beat them to the punch.

    As for me, I think I’ll be sticking to VS Express 2010 for as long as possible (and probably avoid Windows 8 and Metro too.) There are a lot of decisions in the MS direction that don’t sit well with me, and I figure I’ll downgrade to Windows 7 if I happen to get a PC with Win8 installed.

  2. So far, I’ve been pretty happy with Windows 8. The desktop works as well as ever. I never used the start button, so I only noticed it was gone when I tried to shut my PC down for the first time :)

    Anyway, given the opinions floating around on the net, I think it’s pretty much guaranteed that many people will not switch to Windows 8 any time soon. Switching to Visual Studio 2012 and writing Windows 8 exclusive apps just for the sake of having C++11 would be shooting myself in the foot.

    Those skeptical opinions have been mounting for some time now, but Microsoft hasn’t budged an inch. It’s pretty weird. What is it that makes them plough through so relentlessly, completely ignoring any feedback and opinions?

    Maybe Visual C++ 2010 Express + a dependency on Boost for threading is the best option. Unless Eclipse + MingW turn out to be really great. Or perhaps I should take a look at Code::Blocks + MingW, too.

  3. How about Mono?

    I don’t tend to follow it too much because I’m using VSE, so I’m not sure if they have a C++ compiler, but it may be something they are working on. Could be worth checking in to.

    I find it odd that Microsoft aren’t responding to the criticism either. The pre-release cycle of Vista produced a lot of angst too, and it was a disaster for the company. I’m not certain but it looks like their is far more criticism of W8 than there was of Vista. That, as you say, will drive adoption right down. Not something MS would want I suspect.

  4. I’ve kept an eye on the development of Mono since the beginning. A previous incarnation of this blog even ran on Mono, using BlogEngine.NET via mod_mono + Apache and a good chunk of this server’s maintenance code is written in C# :)

    To my knowledge there aren’t any plans for a C++ to .NET compiler (or a native C++ compiler even). News of a hack that enabled C++/CLI support (allowing assemblies written in C++/CLI and compiled with VIsual C++ 2010 to be executed) were making the rounds recently. LLVM developers have created “Nuanti”, a portable C++/CLI compiler that can be used instead of Visual C++ 2010. But It’s all targeting .NET.

  5. Post updated! Microsoft blinked. Microsoft turned. We’re getting a desktop version of Visual Studio 2012 Express now!

Leave a Reply

Your email address will not be published. Required fields are marked *

Please copy the string dztTP0 to the field below:

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