by Andrew C. Oliver

Why Microsoft .Net failed

opinion
Aug 29, 20134 mins
Jakarta EEJavaPaaS

Has the future finally caught up to Microsoft's .Net?

Recently, Iโ€™ve been airing Javaโ€™s dirty laundry. Some folks took my position that Java was trailing .Net technically to mean that I thought .Net was winning. Nothing of the kind โ€” in a number of important ways, .Net is a failure.

Think back a decade or so ago. As you may recall, .Net was supposed to be much more than just the next version of Windows DNA or COM+ or COM. It was supposed to destroy Java, extend the Windows platform, and secure the Microsoft monopoly for another decade or two.

Microsoft did many things right. It hired the smartest experts on language design, compilers, and virtual machines. But it also did some things terribly wrong.

Letโ€™s start with marketing. Microsoft overextended the .Net brand and stamped it on everything. At one point Windows Server was going to have .Net emblazoned on it, which led many people to wonder what the heck .Net was supposed to mean anyway.

At first, Microsoft made .Net an optional download. People were as excited to download the fat .Net VM full of delicious, possibly conflicting DLLs as they were to download a gigantic Java virtual machine.

Embrace, extend, flop

Like many Microsoft โ€œinnovations,โ€ .Net was a copy (embrace) and improvement (extend) of someone elseโ€™s technology โ€” in this case, Java. Microsoft sought to extinguish Java by being a better Java; in a number of ways, it succeeded. C# cleaned up some Java mistakes, such as checked exceptions, the need to create an accessor, and mutator methods. The .Net VM had a cleaner bytecode setup.

Plus, .Net solved Microsoftโ€™s problems. At the time, Microsoft developers were dealing with more than one flavor of Windows and multiple versions, but .Net gave them a common way to code and less to worry about.

Unfortunately, .Net also cannibalized Microsoftโ€™s most successful corporate IT development environment, Visual Basic. Look at Indeedโ€™s Job Trends, Tiobe, and so on, and youโ€™ll notice that .Netโ€™s rise is all about Visual Basicโ€™s decline. There isnโ€™t a lot of correlation between .Net trends and Javaโ€™s bumps and bends.

Visual Basic .Net didnโ€™t have much to recommend it. There wasnโ€™t enough documentation, so you had to learn C# anyhow. The API was the same between them, so why not just stick with C#? The corollary was that once you figured out C#, you also knew Java.

Sure, .Net stopped the bleeding for folks looking to develop Internet applications on Windows (away from tools that Microsoft controlled), but it didnโ€™t do what it was supposed to.

Instead of .Net propping up Windows, the greater Windows ecosystem propped up .Net. People coded to .Net because they were coding for SharePoint or BizTalk. If you delve deep into .Net jobs, youโ€™ll notice they tend to be legacy or related to SharePoint and friends.

Off to legacy land

Now itโ€™s too late for .Net. As we move from IaaS to PaaS and SaaS, folks are simply unlikely to care about operating systems. If you donโ€™t care about operating systems, why not code as if you donโ€™t care about operating systems and code for the cloud? Weโ€™ve seen recently that Azure isnโ€™t lighting the world on fire. Why would we expect that to change?

Even if you believe that most companies will continue to build their own data centers to care and feed, while ignoring the cloud, the desktop monopoly is also dying. Consumers are net information consumers. If you donโ€™t work in tech, publishing, or entertainment, then you probably take in more media than you produce. With the iPad, Android, and such, writing .Net isnโ€™t a viable business option. Miguel de Icaza can create all the companies that begin with โ€œxโ€ that he likes, but people will continue to care less about Mono or be scared off by its patent ambiguity.

As users move from the desktop to the tablet and set top to view their pornography, cat pictures, and Netflix movies, the economics that caused folks to โ€œtargetโ€ Windows are abating. This results in a downward spiral for โ€˜Softies hoping that writing to .Net is enough.

I could theorize about how Microsoft could extend .Net โ€” but why should it? .Net was about extending Windows. In a cloudy BYOD, tablet-oriented, Internet-standards-driven world, there may no longer be room for Microsoft, let alone .Net. The .Net initiative failed, and if you were part of it, I hope you hedged your bets by learning a few other tricks along the way.

This article, โ€œWhy Microsoft .Net failed,โ€ was originally published at InfoWorld.com. Keep up on the latest developments in application development, and read more of Andrew Oliverโ€™s Strategic Developer blog at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.