This month, we enter the third decade of C++ at Microsoft.
It was twenty years ago, in February of 1992, that we released our first C++ compiler: Microsoft C/C++ 7.0. Before then, we already worked with several of the C++ “preprocessor” compilers that took C++ and converted it to C before our compiler then created the executable program. But starting in 1992, Microsoft’s premier native compiler supported C++ directly, and has done so ever since.
C/C++ 7.0 shipped in a box that was over two feet long and produced MS-DOS, Windows and OS/2 applications. It also sported the last of the character oriented development environments for C that we ever shipped – the following product was Visual C++, which built on what we had learned from delivering QuickC. Since those early days, we have shipped eleven major releases of C/C++ products (ignoring small point upgrades) for both Windows and embedded development.
This month, on the 20th anniversary of our first C++ compiler, we’re looking forward to shipping the beta of Visual C++ 11. It includes support for ARM processors, Windows 8 tablet apps, C++ AMP for heterogeneous parallel computing, automatic parallelization, and the complete ISO C++11 standard library… and a few more of the new C++11 language features too.
Last summer, we pledged to publish the C++ AMP specification as an open specification that any compiler vendor may implement, to target any operating system platform. Today, we published the C++ AMP open specification to support using C++ for heterogeneous parallel computing on GPUs and multicore/SSE today, with more to come in the future. Read the full announcement and download the specification at the Native Concurrency blog.
Finally, to make this anniversary celebration complete, we’re shifting gears to pick up speed: After Visual C++ 11 ships, you’ll see us deliver compiler and library features more frequently in shorter out-of-band release cycles than our historical 2- or 3-year timeframe. And, of course, the first and most important target of those more agile releases is to deliver more and more of the incredible value in the new ISO Standard C++11 language. Please check Herb Sutter's keynote at GoingNative 2012 for further details.
After 20 years, C++ is alive and well, and going stronger and faster than ever, not just at Microsoft but across our industry. Use it. Love it. And go native!
Congratulations for the 20 years!
Out of band compiler and library releases?!! Wohoo! excellent news!
How about you go ahead and support C99 and C++03 before implementing C11 and C++11. Don't run before you can walk.
SaberUK: VC10 SP1 supports C++03, with the exceptions of export (removed outright from C++11), dynamic exception specifications (deprecated in C++11), and two-stage name lookup.
What else can I say?
Happy birthday! Now how about adding support for the 12 year old C99 standard?
Wish-list for next VC++ (VC++2013?)
Full C++11 and C11 support, SSE3 automatic optimization instead of only SSE2. The end.
I think I still have my 20 or so 1.44" floppy disks from Version 1.0
It's always been a great compiler and a great ride.
Keep it going!
There's still room for another 20 years of stack/buffer over/under flows, and the rest of the nice features C/C++ has brought us through the ages....
Well, sounds nice. But this isn't exactly the first time we've been told that *now* ISO C++ has become a priority and *now* the speed of development will improve.
I'd like to see some results before I get too excited.
@STL: well, two-phase name lookup is a part of the language too. I don't suppose we'll ever see it implemented?
by the way, regarding the C++ conformance survey, why don't you just create a Uservoice site for C++ conformance features? Let people vote on the features there. Then we'll even be able to suggest the features that you forgot to put in the survey
Could anyone give me any help ? I want to find out all the Call Hierarchy of the methods which are modified.
but I haven't found any good way . I know VS has the function which is named "Call Hierarchy" . Could I invoke the API of Call Hierarchy to find out all the Call Hierarchy of the methods ? thanks .
I used this product way back in the day. I remember the huge boxes that development software came in. They were huge because the product came with paper manuals. There was no way to cram 1000 pages of technical documentation onto your DOS machine's screen. So there were those huge manuals. And you needed them. Without code-completion (intellisense etc) and all the other modern conveniences, you had to know or be able to quickly look up things in the standard libraries. I remember frequently referring top the sscanf function documentation, as our codebase used it heavily to do all manner of stringly-typed nonsense.
Another 20 years required for C99 support then?