I saw the James Cameron movie Titanic again the other night. In the scene shown above, the band plays on with grace and dignity, while the ship slowly sinks, and all hell breaks loose around them.
The Unsinkable Microsoft
“God Himself could not sink her,” was the famous quote in the Titanic movie by chief protagonist Cal Huckley. Microsoft seemed unsinkable a decade ago when it introduced the .NET Framework as its new universal programming model.
The year was 2002. Microsoft had just emerged victorious in the first major challenge to its market supremacy by releasing the Internet Explorer web browser for free, thus crushing Netscape’s attempt to move the computer desktop to the World Wide Web. Microsoft’s 90% monopoly on personal computers with Windows and Office seemed secure, and most of its upstart rivals were decimated in the dot-com implosion.
Then Bill Gates semi-retired to start his much more important mission to save the world. Steve Ballmer took the reins and went on a buying spree. Microsoft adopted a shotgun approach to innovation and complacently rode a wave of good business until…
Microsoft Hits the Mobile Iceberg
In 2005, Microsoft CEO Steve Ballmer said, “Google’s not a real company. It’s a house of cards.” Then in 2007 Ballmer said, “There’s no chance that the iPhone is going to get any significant market share. No chance.”
Today Google Android commands 38% of the smartphone market and growing fast, Apple iOS owns 27% and growing, whereas Microsoft Windows Phone is losing grip on a mere 6% market share. Even though Microsoft has been dabbling in mobile computing for a decade, it somehow missed the smartphone wave launched by the iPhone and expanded by Android. It’s not all bad news, however, as Microsoft is collecting lucrative tolls on Android.
Microsoft finds itself playing catch-up in the race on two newly important computing platforms: smartphone and tablet. But it’s not just the battle for users that Microsoft hopes to win. The real key to the success of any computing platform is the collection of apps that run on it. And developers build the apps, so Microsoft ultimately needs to win over developers to win the mobile platforms.
Microsoft Disses .NET for HTML5
The trouble first started at Microsoft’s Professional Developer Conference (PDC) in October 2010. That’s when Microsoft Server and Tools President Bob Muglia famously said, “Silverlight is our development platform for Windows Phone,” but when it comes to cross-platform development, “Our strategy with Silverlight has shifted.” Muglia went on to say that “HTML is the only true cross platform solution for everything, including (Apple’s) iOS platform.”
.NET Community Freaks Out
With the telegraphed change in direction and subsequent lack of official response from Microsoft, the blogosphere reacted swiftly:
- Dumping .NET – Microsoft’s Madness
- Microsoft refuses to comment as .NET developers fret about Windows 8
“It is bewildering that Microsoft is being so careless with this critical part of its platform, even if this turns out to be more to do with communication than technical factors.”
- Coders decry Silverlight change
“Developers say Microsoft has ‘betrayed’ them by changing strategy on the Silverlight web technology.”
The .NET and Silverlight forums also erupted, with a lot of speculation and very little damage control from Microsoft:
- ‘HTML5 is the future,’ more details emerge
“More depressing details emerge that all seem to say : ‘HTML5 is the future’ for Windows 8 ‘modern applications’ (yes, they are now what is called ‘modern’). And not one, not one mention of .NET, WPF, or Silverlight.”
- Windows 8 apps going html5, wtf
That last forum post had 192 replies and was viewed 7 million times before Microsoft moderators closed the thread. Developers get nervous when they don’t hear their favorite tools and languages mentioned prominently in their vendor’s product plans. But the anger and frustration runs deeper than just the debate over what languages will be supported in the next version of .NET.
.NET Promise Unfulfilled
The original promise of .NET was to provide a unifying framework across all platforms and devices. As Microsoft originally described it, “.NET is the Microsoft Web services strategy to connect information, people, systems, and devices through software. Integrated across the Microsoft platform, .NET technology provides the ability to quickly build, deploy, manage, and use connected, security-enhanced solutions with Web services.”
Sounds really useful. But the promise for .NET immediately went awry in v1.0 with the release of two separate UI libraries: Windows.Forms and Web.Forms. This meant that developers had to write and maintain separate code for Windows and Web applications. Hope for a single, unifying framework was dashed right out of the gate.
Two Divisions, Two Directions
It wouldn’t be this way if Microsoft as a whole was dedicated to the success of .NET. But like a racy HBO series without the sex, there’s a dramatic story of two warring clans within Microsoft, each vying for control of the empire. This brilliant Bonkers World comic by Emmanuel Cornet illustrates the Microsoft hierarchy:
First there’s DevDiv, the developer division that delivered .NET to the world. They’re the good guys. Second there’s WinDiv, the Windows division that always has and likely always will rely on C++ for its speed, efficiency, and street cred. And they’re the bad… nope, actually they’re the good guys too. The reality is that both divisions have unique needs. .NET is excellent for apps and websites, and C++ is excellent for operating systems.
The real problem is that the Microsoft leadership never demanded reconciliation of these two divisions. So when the world started to shift toward smartphones and tablets, Microsoft didn’t have a unified operating system and development framework in place that could run on all these new devices. The good news is there’s a lot of really smart people at Microsoft (I know some of them) and a solution is likely coming that will bring together both sides of the Redmond house. Unfortunately, Microsoft hasn’t bragged or even leaked about all the supposed goodness to come. Which is an odd play in today’s hype-and-gossip-driven online world.
FUD Friendly Fire
Fear, Uncertainty and Doubt (FUD) is a common marketing ploy by larger companies to retain customers and intimidate competitors. A market leader such as Apple may pre-announce or leak details about upcoming products such as the iPad HD. Current iPad owners who want a new tablet will then likely wait to see what the new iPad HD has to offer, instead of switching sooner to an Android tablet. And potential competitors may decide it’s not worth trying to introduce yet another me-too tablet when Apple keeps raising the bar. Even if the promised product remains vaporware for months or years, the FUD threat is a potent weapon.
Like most successful big companies, Microsoft has been a FUD master over the years. This is a key reason why Microsoft has enjoyed its 90% monopoly on Office and Windows. Why should customers switch to a different platform when Microsoft keeps promising new and better versions of what you already have and know how to use? And every couple of versions Microsoft gets it really right, like with Windows XP and most recently Windows 7.
So what’s curious about the .NET controversy is why Microsoft is using FUD against itself by keeping its developer community in the dark. Call it “FUD Friendly Fire.” It’s a marketing missile gone astray, and .NET developers are the collateral damage. Many developers are expressing concern and doubt in forums and blogs. It’s a negative energy that feeds upon itself in the unfettered cyberspace. The result may be an unintended and unnecessary developer defection to other platforms.
Microsoft is Not the Titanic
When the Titanic struck the iceberg and split the welded seams along its bow, the ship’s fate was sealed. In the movie, Titanic Captain Ismay exclaimed, “This ship can’t sink!” Replied ship designer Thomas Andrews: “She’s made of iron, sir! I assure you, she can… and she will. It is a mathematical certainty.”
But the same is not true with Microsoft. Never count out a company with $50 billion cash on hand and Bill Gates on its Board of Directors. Microsoft is not going down without a fight. And I say that as one of Microsoft’s many critics.
IBM just celebrated its 100th birthday because it learned to adapt over the years as technology shifted from typewriters to mainframes to PCs to the Internet. Microsoft is also a master adapter and has rarely been first to any technology party. Microsoft is most successful when it lets someone else create a market. Then Microsoft sweeps in with a competitive solution, and by version 3, Microsoft owns a good chunk of said market. Think of Windows, Word, Excel, and Xbox. Though to be fair, Microsoft has yet to yield the same formulaic success with smartphones, MP3 players and search engines.
Microsoft has been dabbling in mobile and tablets for a decade, but it took Apple to finally show the world what it really means to use a computer with our fat fingers instead of a mouse and keyboard. Now Microsoft has an established market in which to work its magic. Will the Windows Phone and Windows Tablet eventually muscle out the iPhone and iPad? We’ll see, but it’s doubtful that Microsoft (or any company) will repeat the 90% monopoly on mobile that Microsoft currently enjoys on PCs.
Microsoft Needs .NET
To succeed, Microsoft will have to lure developers to write apps for its Windows platforms on PCs, smartphones, tablets, and other devices like TVs. And so it’s quite unlikely that Microsoft will summarily discard the millions of developers using the various .NET flavors like Silverlight, WPF and Windows Forms.
The Future of .NET
Or so the rumor goes. We just don’t know for sure. But there have been more positive articles lately:
- Premature cries of Silverlight / WPF skill loss. Windows 8 supports all programming models
“I’m more excited about the new possibilities coming in the new Jupiter XAML programming model than the misconception that HTML+JS is the only way to create apps.”
- Silverlight isn’t dead, it’s the heart of Windows Phone, Windows 8 and Xbox
“Microsoft’s three screens and a cloud dream is finally coming true.” and “Microsoft’s bold unification of user interfaces is just the start of a multi device convergence that the company has been touting for years.”
Why We Love .NET
Preserving the talent and goodwill of the .NET community is important for Microsoft. .NET and especially C# developers are a loyal bunch, and here’s why:
With C#, you write the code,
and it just works.
Another key benefit of .NET is you can mix and match programming languages even within the same project. So whether you like the compactness of C#, the verbosity of VisualBasic.NET, or the dynamism of F#, you can write code in any .NET language of your choice and integrate it with any project.
C# is the 14th programming language I’ve used professionally, and it’s my all-time favorite. C# is a beautiful, concise, powerful, reliable, first-class language that doesn’t suck like the rest of them. However, I’ve been in this business long enough to realize that programming languages are like religions. We all think we have the right one, but we all can’t be right.
.NET is Alive and Well
A key point to remember is that the fate of .NET and Microsoft are related but not explicitly linked. The C# programming language and underlying framework (Common Language Infrastructure or CLI) are ECMA standards. Combined with Microsoft’s Community Promise, this means independent developers can use the .NET Framework to build and sell .NET apps on any supported platform without royalties or fear of getting sued by Microsoft for copyright or patent infringement, which seems to be getting out of hand lately.
There is also an open-source version of .NET called Mono. It was started by .NET legend Miguel de Icaza, later run by Novell, and recently purchased by Attachmate in a complicated deal that also involved Microsoft. It’s a mystery why Microsoft didn’t assume control of the Mono portion of Novell. Perhaps there was a desire to keep the open-source Mono separate from the commercial interests of Microsoft. Unfortunately, Attachmate promptly fired Icaza and the entire Mono staff, casting in doubt the future of Mono.
Thankfully Icaza jumped to the rescue once again. His new company Xamarin announced that it will pick up support for Mono. Even better news, Xamarin plans to deliver commercial .NET ports for iOS and Android. This will allow C# developers to build very fast, cross-platform, native apps. Perhaps big things will come from this small company, and Xamarin will deliver the ultimate unified .NET Framework. And let’s hope that Attachmate doesn’t try to muck up Mono, legal-wise that is.
Finally, one cannot discount the power of the .NET community. There are thousands of .NET tool and component companies. There are millions of professional developers whose businesses depend on .NET. And there are tens of millions of people who use .NET software every day, whether they realize it or not.
Decide for Yourself
To help you decide for yourself, we’ve gathered a collection of articles discussing this controversy on IsDotNetDead.com, and of course we added our own commentary because we’re bloggers and that’s our job. Please visit the site to see what the .NET community has to say about the future of its favorite development environment and add your own comment on whether Is .NET Dead?
Article published on July 14, 2011
|If you like this article, please share it:|