For those who haven't seen it yet, Charles Torre interviewed again Mohsen Agsen, Microsoft Technical Fellow who runs the Visual C++ engineering team.
Back in February Mohsen and Charles had had a first conversation, when they put forward the notion of a renaissance taking place in the native world. The reception to C++ Renaissance message has been great (and, in some sense, unexpected). Now that some time has passed, Charles visited Mohsen to continue their conversation.
[Watch the full interview in Channel 9]
Sounds like a C++ Renaissance is coming in Windows 8.
"Windows 8 will ship with a pair of runtimes; a new .NET runtime .., and a native code C++ runtime (technically, COM, or a derivative thereof), named WinRT. There will be a new native user interface library, DirectUI, that builds on top of the native Direct2D and DirectWrite APIs that were introduced with Windows 7. ..
WinRT provides a clean and modern API for many of the things that Win32 does presently. It will be, in many ways, a new, modern Win32. The API is designed to be easy to use from "modern" C++ (in contrast to the 25 year old, heavily C-biased design of Win32); it will also map cleanly onto .NET concepts.
DirectUI is built around a core subset of current WPF/Silverlight technology. It includes support for XAML, the XML language for laying out user interfaces, and offers the rich support for layouts that Win32 has never had. This core will give C++ programs their modern user interface toolkit and, at its heart, it will be the same toolkit that .NET developers use too."
These quotes are from
So that calls for C++ developers to be patient; first for Windows 8 to arrive, and second for the targetable market share to grow. The crucial question would be whether WinRT will run on Win7( I guess yes) and XP (I guess no)
My 2 cents, about C++ libraries:
I would love to see a native C++ database API (that may works with SQL compact and/or SQLite), and a Web Service API.
DirectUI and WinRT seems to be a blessing for us, C++/Win programmers. Can't wait to use them.
Also, please make these new libraries compatible with Windows 7/Vista.
To be honest, I am not really thrilled about yet another set of libraries. Simplified access to databases? Simplified means to lay out and manipulate controls? Everybody and their dog have built wrappers for this stuff already. Unless you add something that these wrappers commonly do not do, your libraries are just another item in the endless list, right up with your ATL and MFC.
Don't take me wrong, both ATL and MFC were good in their day and age, although one was outgrowing them very fast, but to build yet another set of libraries to do essentially the same things *today*... meh. And you tried to do that already, remember? You said .NET will eventually cover the whole Win32. So, why .NET still doesn't cover Win32 today, 9 years later? What were the problems? And why do you think you will avoid these problems with WinRT? From the above article at Ars Technica: "In Windows 8, it's unlikely that WinRT will cover everything Win32 can do—Win32 is just so expansive that modernizing it is an enormous undertaking—but I'm told that this is the ultimate, long-term objective." We've heard this already.
So, again, we'll, of course, see how things will unfold, but I am not terribly thrilled.
On another topic, I'd like to remind you that we are still waiting for your response in this thread discussing bugs in VS2010 (too many) and lack of response to bug reports:
We believe the issues discussed on that thread are pretty serious. Tony Goodhew of the VS team said he would consult on them with the engineering team. That was more than a week ago, so we would appreciate guidance on when we can expect a reply. It would be ironic if a request to look into why Microsoft takes months to respond to bug reports and after that years to fix them, in the very best case (many bugs are never fixed at all), would be lost because it took too long for Microsoft to follow up on it.
Regarding the useability C++ templates in the IDE one thing I would really like to see is a way to specify to IntelliSense template parameters to use within the context of a templated type. There are at least two different ways to go with respect to how the parameters would be specified by the user. One would be to allow choosing from one of the specilizations that already exists in the code base, and the other is to allow the template parameters to be directly specified in the IDE regardless of actual specializations in the code base.
If the common IntelliSense engine doesn't allow for this, it is probably worthwile to point out to the owners of the engine that the feature would also be useful with respect to .Net generics as well as dynamic languages such as Python. In the case of Python instead of specifying template parameters it would be the types of funciton parameters (since the aren't explicitly speicified in Python).
Yes please. What Josh said just above!