Ron Burk wrote a terrific, funny article “A Brief History of Windows Programming Revolutions” that describes the internal back-and-forth struggle between programming groups at Microsoft in their endless pursuit to eliminate DLL Hell. First there was DDE, then OLE, COM, ActiveX, MFC, ATL, and eventually .NET:
“And that brings us up to date with .NET (pronounced like ‘doughnut’, only different), which is like the Internet, only with more press releases. Let’s be very, very clear about one thing: .NET will eliminate DLL Hell. .NET includes a new programming language called C# (turns out there was a fatal flaw in Active++ Jspresso, so just as well it died). .NET includes a virtual runtime machine that all languages will use (turns out there’s a fatal flaw in relying on Intel CPUs).”
The serious point behind this funny article is how each of these Microsoft “revolutions” were supposed to be the panacea of Windows development, only to be replaced in a few short years by the next-best-thing.
At least Microsoft has stuck with .NET Framework for 8 years, but the churn continues within the .NET development ecosystem. Remember how WindowsForms was supposed to provide a rich client GUI that ran across all hardware platforms? Turns out it didn’t work so well in a web browser, so Microsoft invented WebForms. And MVC. WinForms also didn’t render well on Linux, so open-source geeks use Gtk# instead. And WinForms is too heavy to run on mobile devices, so Microsoft ejected it from the .NET Compact Framework. But .NET CF is too “old school” for smartphones, so now there’s Silverlight. Are you following me?
In the tech industry, the only constant is change.