This article is more than 1 year old
'Programming on Windows 8 just like playing bingo' - Microsoft VP
Avast, ye Redmond buckos, where's me variadic template?
Windows developers have suffered multiple changes of direction in recent years. There is Win32, WPF (Windows Presentation Foundation), Silverlight, and now WinRT (Windows Runtime), the platform formerly known as Metro.
Can they be confident in the longevity of the new thing, or might it be swept away in favour of some other new thing in a couple of years? I put this question to corporate VP Soma Somasegar at the Seattle launch event for Visual Studio 2012.
“We’ve had a fair amount of churn in our platforms,” he acknowledged. “But go back to Windows 32. That’s a platform that came out 15 or 20 years ago. That platform has stood the test of time. Take .NET for example. That has stood the test of time. Take WPF [Windows Presentation Foundation] for example. We absolutely continue to support WPF for desktop applications. Visual Studio uses WPF for its own application, because it makes sense in that scenario.
“Now we felt it was time to evolve our core platform and ask, what does the modern Windows environment look like? We had a choice: should we continue with Win32, or should we go with WinRT, or should we do both? The reason we decided to do both was because we want to bring our developers and existing customers along for the journey.
That may sound all well and good, but in practice developers are finding a lot of differences between XAML in WPF and XAML in Windows Runtime. Further, frameworks such as XNA, for fast graphics using .NET, are supported in Windows Phone, but not on Windows Runtime, even though Windows Phone is not an old platform. Why such inconsistency?
Microsoft Corp VP Soma Somasegar at the
Visual Studio 2012 launch
“The goal is definitely to have more consistency,” says Somasegar. “The Windows team is absolutely focussed on that. Any technology you see shipping as part of Windows 8, we are very committed to that. And we want to have more consistency in our platform technology even across multiple device form factors. But there is more work to be done. This is evolving, and Windows 8 is a huge step forward.”
I asked Somasegar to clarify the naming around the platform formerly known as Metro. He did, up to a point.
“We used Metro-style as a codename when we were developing Windows 8, for referencing a particular class of applications. Initially it was a fine name, but as we transition from an industry conversation to a broad-based customer and consumer conversation, we need to start using the commercial names. The commercial name for apps is Windows Store apps. We are transitioning from the development phase, so let’s use the right name.”
The problem with Windows Store apps as a name is that it still leaves some uncertainty over what to call the non-desktop personality in Windows 8. Internet Explorer, for example, has two versions in Windows 8. One is the desktop version. What is the other one called, since it is not a Windows Store app?
“Er, I don’t know what Internet Explorer is called,” said Somasegar. “But if you want to talk about an app for this new environment, we call it a Windows Store app.”
C++ is important to Microsoft, but why is the company behind in supporting all the features of C++ 11, including critical ones such as variadic templates? Concerning variadics, Somasegar said: “It’s definitely on our backlog of things to do. The team is already working on this, but we couldn’t get it done in time.”
More generally, he talks about the challenges of giving developers a choice of languages and supporting standards across all of them. “It’s really a bingo card,” he said. “We have to decide how we populate the bingo card in a timely manner, and sometimes some part of the programming stack might be slower. It’s a balance that we constantly think about.”
Finally, I asked Somasegar about the openness of the new platform in the light of third-party toolmaker Embarcadero’s complaint that it was unable to target the Windows Runtime with its Delphi compiler, because there are system APIs that only the Visual C++ runtime is allowed to call. What is Microsoft’s intent regarding third party compilers targeting the Windows Runtime?
“The goal is to make it fair and open for everybody who wants to build tools for the Windows platform,” says Somasegar. “For this particular example, I don’t know what the issue is, we’ll be glad to look at it. There should be nothing in the Windows platform that gives preferential treatment to Visual Studio as opposed to any other tool.” ®