Visual Studio 11: Who Develops for the Developers?
The news on Visual Studio 11 has included a lot of information about user interface changes and project managment features. While important, they are also off-center from the primary tasks developers face everyday, writing production quality code. VS11 is not a traditional consumer product but with the recent publicity the reader can be excused if confusion exists as to who Microsoft is targetting. So what new features does Microsoft have for C++ developers in the trenches?
The Visual C++ Team has provided some answers by recently highlighting some of the new features coming for C++ developers. First and foremost native C++ can be used to write Window 8 Metro applications. These applications can use DirectX or the XAML UI framework. Compiled code performance is claimed to be improved via an optimized compiler and an improved Parallel Patterns Library.
Expanded ISO C++11 Implementation
Herb Sutter has further commented on the level of support for C++11 in VS11. He states that Microsoft is committed to
"...full support for essentially the entire C++11 standard library... We already shipped most of the C++11 stdlib in VC++ 2010, and now we’re including threads, mutexes, condition variables, atomics, futures, and async – and not just as checkmark features, but with async and futures built on top of our ConcRT runtime that also powers the Parallel Patterns Library. Oh, and we’re also shipping an implementation of the draft-standard header <filesystem> based on Boost.filesystem for portable access to directories and files."
C++ Compiler Will Receive Independent Updates
Importantly, Sutter also reiterates Microsoft's committment to ultimately support all of the C++11 features. Since the draft is still evolving, when VS11 ships it will not support the entire specification. Instead Microsoft will be deploying periodic updates to VS11 to update the C++ compiler.
"The first thing you’ll see is a Community Tech Preview (CTP) that we intend to ship soon after VC++11 ships, which we expect to take the form of a new command-line compiler (initially not IDE integration and Intellisense) that you an drop into VC++11 to quickly start taking advantage of still more of the new C++11 language features, with a full out-of-band release to follow after that with still more." (Emphasis added)
Microsoft has not announced whether or not additional Betas will be forthcoming for VS11, but further refinements are to be expected. Sutter's comments about the out-of-band releases could prove to be a good way for future functionality to reach developers without waiting through Microsoft's historical multi-year develop/test/release cycle.