The Visual Studio ecosystem: It’s all about the tools
By Alexa Weber Morales
November 15, 2011 —
(Page 3 of 6)
Related Search Term(s): Microsoft, SoftFluent, Telerik, Visual Studio
Not native enough
The developer preview of Visual C++ was able to accommodate the recently ratified changes to the standard template library in the new C++11 standard, as well as adding three core areas: stateless lambdas, SCARY iterators, and scoped enumerations. But more newsworthy were the dozens of omissions, including variadic templates, range-based for loops, delegating constructors, non-static data members initializers, and many more that won’t be implemented in the next release—and possibly next two releases—of Visual Studio. That said, some of the missing pieces may themselves be buggy, and only a few competing compilers exceed Microsoft’s conformance, with the exception of GCC.
“There was a group of people who were unhappy with how much C++ 11 conformance we were able to achieve," said Goodhew. "But another group said, ‘Look, this is the first time we’ve seen this much native code at a Microsoft conference.' We were disappointed in the level of conformance with the C++ standard; we try to be very transparent about this.
"I’ve been doing tools marketing since 1991, and when you commit to something and then pull it from the product, that’s often worse than not committing at all. We are very committed to the C++ language and native development. We’re working out how we can get this stuff to market faster for a C++ developer and looking at how we can not make customers wait two more years to Visual Studio 2012.”
Goodhew’s promises did little to placate those who had been fired up by Herb Sutter, a Microsoft architect for native programming languages. He recently wrote that, “after a decade-long affair with managed languages where it became unfashionable to be interested in C++, C++’s power and efficiency are now getting very fashionable again.”
C++ did get extended airplay, however, for its new role in general-purpose GPUs, Sutter explained at BUILD. C++ AMP, which accelerates program execution by running data parallel across portions on a computer’s graphics processor. The programming model includes multidimensional arrays, indexing, memory transfer, tiling and a mathematical function library.
There are also new features for concurrency, which was the focus of Sutter’s groundbreaking 2005 paper, “The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software.” These include two new windows for debugging parallel applications on the GPU or multiple CPU cores; the Concurrency Visualizer; Task Parallel Library Dataflow; and new C++ concurrency warnings that detect race conditions and common problems around locking and synchronization.