Windows APIs, Branding, and Complete Nonsense
Microsoft has a long history of churning out technology, then confusing everyone with weird and wonderful marketing names for it, then encouraging otherwise smart people to write complete nonsense about it. I am confronted by this every few years when the next big wave of technology arrives from Microsoft. I could write endlessly about this but since I have a pile of work, I need to keep this brief.
I am not knocking the technology as much of it was good for its day and served a purpose, but the stream of API names can leave developers confused. To access some data, should I use ADO or ADO.NET or DAO or RDO or MDAC or ODBC or OLEDB or MSDASQL or System.Data.SqlClient or System.Data.OleDb or System.Data.Odbc and so on? I could tell you the answer but I do not think anyone cares anymore.
It can also get confusing when the hardware changes. For years, “Win32” represented the world of Windows application programming – to contrast it with the former 16-bit APIs. Then AMD and Intel introduced 64-bit microprocessors and Win32 became the “Windows API” even though the API stayed the same. Then Windows 8 happened and there were “Metro-style” apps and “desktop” apps. Now Metro is no longer in vogue and the Metro apps will presumably be called “Windows apps” and the desktops apps … well let us just pretend that desktop/Windows/Win32 apps never happened shall we.
So branding is a problem for Microsoft. That is ok. I am sure it keeps many people happily employed.
Then there is the complete nonsense that inevitably flows from ignorant sources and is then propagated around the web. When the .NET Framework was “it”, there were popular rumors that “Win32” was dead and that .NET – obviously written directly on the kernel – would take over the world. Oh, and by the way your .NET code would be much faster than native C or C++. As I said back then, this is nonsense and much of the .NET Framework was written and continues to be written with the native Windows API.
Now we have Metro and the same thing is happening. Apparently, it was written directly on the kernel – whatever that means – and so the Windows API is dead and somehow .NET is also a casualty. Again, this is not true. Metro was written using the existing windows APIs. As time goes on more of it may be written specifically for WinRT but the legacy will remain for a long time to come. But do not take my word for it. If you are a programmer, get your favorite debugging tools and look for yourself. If you do not know how then pick up a copy of Windows Internals by Russinovich.
Enjoy the ride. Do not be fooled. Remember that this is still Cutler’s Windows.