In my previous blog I talked about how in Visual Studio 11 we have eliminated the need to convert your Visual Studio 2010 C++ projects in order to adopt the new IDE. The blog also mentioned that you can build your projects using Visual Studio 2010 compiler (tools and libraries) from within Visual Studio 11 using the multi-targeting feature. This means while you adapt to using the new compiler and while your 3rd party vendors provide you with binaries compatible with the Visual Studio 11 compiler (tools and libraries) you can leverage the new Visual Studio 11 IDE without disrupting your ship cycle. Just set the platform toolset property to v100 in the property pages (requires Visual Studio 2010 to be installed side-by-side with Visual Studio 11). Since no upgrade of your project file is necessary you can continue to load the project/solution in Visual Studio 2010 as well.
We have recently received feedback from a number of customers about the inability to build binaries that run on Windows XP with the Beta version of the Visual Studio 11 compiler and libraries. This is because the C++ compiler and libraries in Visual Studio 11 Beta leverages platform capabilities only available in Windows Vista and higher. However, if support for Windows XP targeting is important to you, then you can use Visual Studio 11 Beta’s multi-targeting capability described above in order to employ the Visual Studio 2010 compiler and libraries to build applications and libraries than execute on Windows XP. This enables you to enjoy the new features of the Visual Studio 11 Beta environment without sacrificing backward compatibly in your applications!
If Microsoft does not hold a firm stance this time, expect these people to come back for XP support in VC12.
We maintain and develop a fairly large multi-platform codebase. We would really like to use all the language features other compilers (e.g. gcc) provide, but we're severely limited by the C++11 support in VC10. VC11 is better (and the promised update packs for the VC11 compiler even before VC12 is even better), but we must support XP SP3.
Using VC10 alongside VC11 makes absolutely zero sense. How can we use VC11 features when it has to compile on VC10?
Pretty much all open source projects will be forced to use VC10 or below if VC11 will not support XP. Of course, this might not mean much to Microsoft, but it is important to consider us as well.
Also, will Visual Studio 11 Express RTM have something similar to Visual C++ 2010 Express (i.e. being able to target XP SP3 - Win7)? I personally have VS Professional, but several people actively involved in the FOSS community do not have the cash to purchase VS Professional/Ultimate/etc.
Wow, that's a lot of heat you guys take here. Who would have thought?
Well, I can't help but think that I have seen all this before. Since 1998, when the first C++ standard was released, I have heard little else from C++ developers but them shouting "standard conformance! standard conformance! standard conformance!" — and yet you keep inventing other stuff instead, which nobody had asked for.
About a decade ago, when the C++ community was all up and in arms about VC being so pathetic when it comes to standard conformance, you spent your resources on inventing .NET and proprietary language extensions, which were outdated before half of your users had the time to learn them, because you spend yet more resources on inventing a newer version of them. And now, while your evangelists make fuzz over a "native" C++ renaissance, you suggest we update to a new VS GUI to gain support for a tablet-style UI that's of no use to 90% of the Windows users and either waive what little C++11 support you are handing out or lose 30% of our existing or potential customers.
What in the world are you thinking?
> jalf: You are correct that you can use SSE on machine running XP -- my point was that you wouldn't want to do this if you wanted your software to run on all XP machines, as XP's minimum hardware requirements don't include an SSE-capable CPU.
Well, I can't speak for everyone, but while a lot of our customers do use XP, I highly doubt any of them use hardware anywhere near XP's minimum requirement. Remember that until late 2006, XP was the latest and greatest Microsoft had. And until Win7 was released (in 2009), new computers often shipped with XP as well. So really, the problem is that a lot of people have reasonably modern computers, running an operating system that, from their point of view, is only a few years old. You, Microsoft, might be thinking of XP as 2001 software. Everyone else thinks of it as 2007 or 2008 software. Aging, sure, but certainly not so ancient than we can afford to ignore it.
You're right, using SSE on XP would *theoretically* cut off some users, but we can live with telling those 0.1% of our customers to upgrade. We can't justify telling 30% of our users to upgrade.
On another note, I have to say it scares me every time I hear a member of the VC++ team speak as if it is a great surprise and a revelation that their users want the most obvious things: "You want to be able to build your code with a single compiler? I am shocked! You want C++ support? Why didn't you say so?"
YES, of course we want Microsoft's C++ compiler to compiler C++ for Microsoft operating systems.
Windows XP !
49 comment in 1 day !
all people love windows XP :)
@Steve: Look at the posts after your first one: http://i.imgur.com/Yu79x.png
Every single one with the exception of one mention C++11. The message could not be clearer. We want a C++11 conformant compiler with which we can build desktop applications that run on XP SP3, Vista, 7, and 8.
That is all.
I like the build-in unit tests for c++. So I can run my tests easily.
But the well tested code I have to compile with VS2010 to get it to run on XP? In this case I have to trust in FULL compiler compatibility instead of testing the code which really runs later on.
We're a WTL shop, currently using VS2008 (we skipped VS2010 because of the bloat of the IDE makes add-in authoring a royal pain) and we would really like to upgrade to VS11 so that we can update our codebase using C++ 11 code.
However, with a significant proportion of our customers still on XP we just can't do that so long as VC11 CRT requires Vista or later.
IHence can only echo the sentiments above - for us the upgrade to VC11 is almost entirely about the C++ 11 compiler and standard library.
The IDE is very much a secondary concern (it would obviously be good if it were an improvement on its predecessors and not an ocean of greyness, but that's another discussion).
I have a better idea: stop working on compilers and use (and improve) an existing, free compiler like GCC or clang. They suck less anyway.
If you make upgrades painful, it just means that people will stay back.
- Linus Torvalds
Let me just add the following apart from the obvious C++ 11 support which is valuable in VS 11 and should be available when targeting XP:
improved static code analysis
extensions to ConCRT and PPL (task<T> etc.)
Indeed, we want a C++11 compiler. The IDE doesn't matter that much.
Steve, the most important aspect of VS11 for C++ developers is clearly C++11. We want to be able write C++11 code and produce applications that run on XP.
Yeah, the idea that I should buy an upgrade only to use the older, less-compliant compiler with the newer, uglier IDE is ridiculous. XP targeting is mandatory for me to even consider dealing with the gray.