I was seeing a video of Windows 8 demonstration.
So I was wandering which language was used to produce this new appearance: C++ or C#?
Is there a WPF running on that UI?
I was seeing a video of Windows 8 demonstration.
So I was wandering which language was used to produce this new appearance: C++ or C#?
Is there a WPF running on that UI?
Windows is written in C, C++, and some hand-tuned Assembly. For reasons why it is not written in .NET, see this question.
It is not clear which of those languages was used to develop the latest eye candy in Windows 8.
I can't really say for sure, since I'm not a member of the development team, but it's almost certainly written in C++. And, then, since it's not a ground-up rewrite, there's bound to be a bunch of C and assembly code along for the ride, as well. Both legacy code that remains for backwards compatibility as well as important, functioning code like the bootstrapping sequences.
As for how they've implemented the fancy UI effects, their mere existence doesn't imply that a certain UI framework is in use. Anything that you can do in WPF can be done on a more direct level from C++ code. In fact, it must be possible to do such, as WPF is merely calling platform APIs under the hood, like DirectDraw, etc. to do all the work. Of course, it goes without saying that it's far easier to use a wrapper library like WPF, but it's not strictly necessary. And there are plenty of reasons that Windows can't move over to the world of managed code, at least not just yet or any time in the realistic future.
The Windows Shell team has long been known to use their own proprietary controls with the class name DIRECTUIHWND
. Many a programmer has examined the OS widgets with a tool like Spy++ to find the answer to "how did they do that?" and reached the same conclusion. My guess is that they're using the same toolset, extended for some of the new whizbang features. They're keeping it all internal, of course. Once you expose an API for other developers to use, you effectively lose ownership of it because you're bound by the API contract to ensure that it continues to work on all future versions. Radical changes like the ones you're seeing in Windows 8 would be far more difficult if they had to ensure backwards compatibility with the internal UI components of the shell used to implement these features.