Twitter GitHub Facebook Instagram dirv.me

Daniel Irvine on building software

The platform is changing (Part 1)

16 October 2010

A colleague and I were talking recently about where our careers are likely to lead us over the next few years.  We’re .NET developers, so our discussion revolved around the .NET platform and its market share.  The broader question of market share for both platforms and programming languages is an interesting topic, with a less certain answer than ever before: the year 2010 has seen the floodgates open on new consumer devices such as slate computers and high-performance smartphones, resulting in an explosion of new platforms and technologies.

Apple’s iOS. Android. Windows 7. Windows Phone 7. Symbian OS. WebOS. Linux. Azure. App Engine. Amazon EC2.  Oh, and not forgetting the World Wide Web.  These are the big platforms that developers can choose to develop for today.  Some of them have a much bigger market share than others, like Windows and iOS, but funnily enough these are also the platforms most at risk of disappearing.

There’s more than just market share to consider, too.  Technical quality is obviously a big driver: application developers want to work with smart tools and languages.  Company malevolence is a hot topic too: some of these platforms are controlled by companies that just aren’t nice.

Gartner says 270m smartphones and 20m tablet computers will be sold in 2010.  The industry analyst said recently that it expects 54.8 million tablet computers to be sold in 2011 and more than 208m in 2014.  What I find intriguing is which tablet computers those will be, and which platforms they’ll be running.  Quite honestly, my money is on Windows and Android.  Not the iOS.

Gartner expects the iPad to keep its lead until 2013, but that’s only while the other platforms step up a gear.  Windows will gain market share through business users, and Android will gain market share through consumers faced with a huge volume of diverse Android devices.

That much is obvious.

I’m leaving why I’m not interested in iOS (or Apple products at all, for that matter) in another post, but today I’ll focus on .NET and its use.

C# is probably the most productive language ever written.  If you were to give a sizeable development project to both an expert C++ programmer and an expert C# programmer, the C# programmer would complete it in well under half the time it takes the C++ programmer.  There are various reasons for this, such as:

  • Modern language constructs
  • Better documentation
  • Better tools, like Resharper
Of course that’s all a matter of opinion :)  But the future of .NET development is not on the Windows platform, because Windows itself is at risk of ebbing market share.  Even if you see a stable user base for your .NET application, more and more of those users will want to see online versions of your app, or versions that run inside your phone.  They’ll want to do on their mobile devices what they can do on their desktop PC.  There’s an easy way for .NET developers to help them achieve that, and that’s by using Silverlight.  Windows Phone 7 supports Silverlight apps, and so does Symbian.  It’s only a matter of time before there’s a Silverlight client for Android too.

For those of us who still have a need to develop desktop applications for Windows, Silverlight is a great way to “extend” our desktop apps onto new platforms.  We can continue to use C#.  We can continue to use the tools we’ve learned to love.  And we can satisfy our user’s needs quicker than if we’d had to redevelop our apps for an entirely new platform.

To wrap up this post, I believe .NET has a future ahead of it.  For those of us who earn a living by building .NET applications, we need to know Silverlight and start thinking of how to expand our apps onto the new platforms.  That’s how we’ll stay relevant to our users.

There’s loads left for me to say, but it’ll have to wait until the next part and beyond.  I want to talk about Apple and why I think they shouldn’t be supported.  I want to talk about my experience with building for the Google platform, and finally I want to talk about what’s in store for the web... hopefully I’ll have the time to write about those soon :)

About the author

Daniel Irvine is a software craftsman at 8th Light, based in London. These days he prefers to code in Clojure and Ruby, despite having been a C++ and C# developer for the majority of his career.

For a longer bio please see danielirvine.com. To contact Daniel, send a tweet to @d_ir or use the comments section below.

Twitter GitHub Facebook Instagram dirv.me