Is Microsoft .NET a second class citizen of the Cloud?

This was sent to me as a possible discussion for a local user group. It is interesting that it would come up, but not surprising. The cloud is on everyone’s mind.  It is the current “buzz” in the industry.  It has long been said in the industry that the development platform of now and the future is the internet.  As companies began to productize these web-based solutions a name was needed.  Anyone who ever saw a whiteboard presentation, when you drew a network diagram  when the diagram eventually went out to the internet, we drew a line to a…cloud.  Amazon was the first to build a successful business model around cloud based computing and shortly thereafter everyone followed.  Now it seems everyone is talking cloud offerings (Google, Apple, IBM, Microsoft etc..).  Go to any tech companies website and you will see a cloud solution somewhere.  To grow the business you need developers to follow you.  The race is now on to get developers to create new and exciting cloud applications..  With the release of Windows 8 due later this year developers are being told by Microsoft, “Bet on Windows 8”.  What maybe gets lost is during the previews at the Professional Developers Conference in 2011 a lot of what was discussed was Windows 8 integration with the cloud and cloud based services.  But where does Microsoft’s cloud offering Azure fit into this picture?   In a larger context where does .NET fit into today’s developer mindset?

It has been over two years since I was at Microsoft, but when I left we were on the .NET Framework 4.0.  As I write today we are still on the .NET Framework 4.0.  There has been little  heard from Microsoft regarding the future of .NET.   In the mean time  the industry continues its march to the cloud.  If you go to the Microsoft Azure page you will see for development a lot of tools supported other than .NET.  Beyond .NET there is node.JS, Java, PHP and “other”.  This highlights the Microsoft conundrum.  Microsoft went down the path of .NET and for a long period more or less ignored what was going on in the world of development.   Microsoft needs developers writing to the Azure platform, in fact for the Server and Tools division at Microsoft, its very life depends on it.  But getting developers to pay for development tools when so many are available for free on the internet is becoming an increasingly hard challenge.  Therefore they need to be “friendly” to the non-Microsoft development community.

Open Source is big and it is a developers paradise.  It was one of those things when open source first became a household name at the dawn of the consumer internet.  It’s the largest development community on the planet.  There is a lot of innovation that is happening out there on the internet that is far larger than what 90,000 Microsoft employees can do, of which less than 1000 are focused day-to-day on these issues.  On the net speed is everything.  What I ship one day can be gone the next.  At the same time on the net you can quickly generate mass, which leads to wide-spread user acceptance and “viral” marketing.  One day Facebook was a university social network and shortly thereafter it was a global phenomena.  The inability of Microsoft to effectively leverage the open source community has stunted its ability to attract new and emerging development communities.  They do have something called Codeplex which is Microsoft’s open source community.  However it is not as big as other development communities on the web.  This inability to leverage the web development community to its full potential has fostered an environment where Microsoft is chasing innovation and is not driving innovation.

As we look at Windows 8 the discussion is around the Metro interface and writing applications to the Windows Runtime or WinRT.  I guess when we talk about the Metro interface we are talking about a desktop UI,  a question is how much time will an end-user spend within Windows and does a new UI matter a whole lot for Windows when the first thing I do when I log on is go the internet.  A stat I heard several years ago said that 75% of development is focused on the web and 20% is focused on Windows (the other 5% is targeting hardware).  That number may have changed, but I doubt Windows development went up and web development went down.  Is Windows 8 development targeting the 20 percent?  Which then brings us back to the central question, where does .NET fit into all this and what is Microsoft telling developers to do with .NET?  I feel like .NET is going the same way of Silverlight…confusion.

When looking at the market for developers in the coming year I was sent the following list of top ten development skills (click here).  It is interesting to note that Microsoft development skill sets are not a part of the list.  That is not to say everything is open source as iOS development skills is in the top three.  It does highlight where open standards and innovation lay a large role in the future development road map.  It is apparent that Android and iOS are leading the way for mobile development and will do so in the coming year.   This will be challenging for Windows 8, as developers can target an existing market or a potential market.  In the end I think many will do both but it’s apparent that Windows 8 is not going to make anybody put aside their plans for developing on Android or iOS.  It used to not be that way.  The release cycles for the latter two is fast and furious and keeps the development community engaged.  When your company is building a platform, engagement is paramount because it means they are listening.  You could be presenting the worst crap on the planet, but as long as the developer are listening to your crap and not your competitors that is ok.

Finally the biggest and most important question moving forward is does .NET have a future??  It is known that current Windows Chief Steve Sinofsky is no big fan of .NET and the move to WinRT could be viewed as the death of .NET.  But then if the development community is out their debating whether .NET is relevant to the cloud or not, what should they be doing?  Silence is not an answer and providing a bunch of marketing spin until an answer is provided is just insulting.  Changing direction is hard, especially when so many have invested in .NET Development, and will likely continue to do so.  We could be looking at a situation similar to Visual Basic 6 developers, who refused to move to .NET, until around ten years later support was finally pulled from them.  It is also a question of enterprise apps versus consumer apps.  Enterprise do not move as fast as consumer based apps.  Can you message a development platform to both with equal success?

Steve Ballmer likes to tout the largest development community with the largest market opp in the world when you target Windows 8.  He is wrong.  He has been wrong for some time.  The largest market opp in the world is the internet and that is not going to change anytime soon.  It seems rather stupid that I have to write the obvious.  The viral ability of the net. Most developers are leveraging the internet for development so it comes as no surprise when they start looking at cloud development they look to open source to provide the tools and the guidance.  It is really no different than society has always worked, when we look for advice we look to our peers.  Now they are simply our virtual peers.  Microsoft’s cloud message so far had been confusing and I think most so for developers.  At the end of the day developers will do what they have always done, which is follow the money.  No developer likes to write an app that nobody uses.

Good Night and Good Luck!!

Hans Henrik Hoffmann January 24, 2012

Categories Uncategorized

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s