A co-worker, thanks Sudeep, turned me on to a great Windows 8 article on Ars Technica and that got me thinking. The article talks about an updated set of API’s for C++ applications and a new set of managed .Net API’s that get closer to the machine, which is a great thing. It sounds like we’ll have peer un-managed and managed layers, but…
What about the Windows API?
The article talks about WinRT, the new C++ API’s, and DirectUI, the un-managed API’s, but it doesn’t say a word about the “old” Windows API’s. There are tons of applications written against that set of API’s so they cannot go away, at least for now. That begs the question “What about the Windows API?”
The answer is, it will be there, but where? It’s time Microsoft moved toward a modern model right down in the OS. These transitions are never easy, but it can be done. When Steve Jobs came back to Apple and we were given OS X Apple made a decision to move toward Objective-C and Cocoa as their modern model and support the old C-style Mac API’s(Carbon) so legacy applications, like Photoshop, could move to the new OS. At that time Apple said they would abandon that support in the future, and they managed to support it for about 10 years. With Snow Leopard they decided not to bring all of Carbon forward, which was painful for Adobe and others. I guess my point is the old Windows API will need to stay around for a while, and the transition to WinRT could be painful, but definitely doable. Part of Microsoft’s strength, and weakness, has always been backward compatibility. It looks like they’re finally ready to make a bold change. Good for us.
How will it look?
That’s a great question. I wish I had a definitive answer, but I could see three possible scenarios, maybe there are more?
Here’s what I think could happen.(Click for a larger image.)