Native Code Makes a Comeback
Has the .NET revolution been replaced by a C++ renaissance? Not at Microsoft.
You may have noticed over the summer that Microsoft started to offer "GoingNative" sessions on Channel 9, and continued to talk about a C++ renaissance, a phrase that the company coined as it recommitted to advancing C++ functionality in Visual Studio 2010, which offered support for upcoming C++11 (formerly called C++10x) language features like re-value references and lambda expressions. The initial changes seemed promising to some C++ developers, although features like C++/CLI IntelliSense never made it into the IDE or the VS2010 Service Pack 1.
But native developers who downloaded the Visual C++ for Visual Studio 11 Developer Preview were not happy when they saw the lack of core C++11 language features in the early VS11 tooling. Microsoft admits that its VC++ compiler is behind competitors in terms of C++11 compliance, the latest version of the C++ language, which was ratified in August. And the company has acknowledged that most of that won't change in the upcoming release (see C++11 Core Language features table). Microsoft did update the C++ Standard Library and extended its proprietary Parallel Patterns Library (PPL), which will also now support Linux.
In late September, C++ developer Jalf created "Speed up work on VC++" on the UserVoice forum and more than 1,031 developers have since voted in agreement.
"It is obvious, from looking at the amount of unfixed bugs, and the woeful C++11 feature support, that the VC++ team is understaffed," Jalf wrote in his forum post. "For a company bragging about its "C++ renaissance", that's just absurd. For the sake of all your C++ customers, you really need to speed things up. I won't dictate *how* it should be done, but I can think of three obvious suggestions…"
He and others suggested that Microsoft either devote more resources to VC++, open source it or think about licensing a compiler.
Many developers wonder if Microsoft was so focused on creating proprietary frameworks (WinRT C++/CLI) and language extensions (C++ AMP) that they didn't have the resources to advance the compiler. Herb Sutter, Microsoft's principal architect of C++, explained during a BUILD session, Writing modern C++ code: How C++ has evolved over the years, that those efforts got first priority but Microsoft also worked on a new C++11 language feature, namely variadic templates (support for a variable number of arguments), that didn't quite make it into VS11.
Microsoft is taking steps to reach out to its C++ community, however. On February 2-3, the company is hosting a GoingNative 2012 conference on its Redmond campus with Herb Sutter, and keynoter Bjarne Stroustrup, the creator of the ISO standard C++, slated to offer sessions that will be streamed live and available on demand within 24 hours.
"This is Microsoft's first native-code-only developer event in years, and it's not limited to Microsoft products or technologies -- it’s about ISO C++ on all platforms," Sutter explained in a blog about the conference. "We're taking the initiative to put on this event because we know that there's a huge demand for information about the new ISO C++11 standard, but that information is still really hard to come by -- the standard was just published last month, none of the major books has been updated yet to reflect it, and high-quality public information is just starting to trickle out…"
Registration to attend the conference in person is $112 and the facility has capacity for about 350 people, according to Sutter.
Express your thoughts on Visual C++ 11. Did Microsoft focus its development resources on the new WinRT and miss key Visual Studio 11 updates? Drop me a line at email@example.com.
Posted by Kathleen Richards on 12/06/2011 at 6:48 PM