Microsoft's S. Somasegar ("Soma"), who heads the Developer Division, posted on his blog yesterday about "Key Software Development Trends".
I was pleased to see him include "Proliferation of Devices" among the top trends in development, but there was obviously an acute case of tunnel vision at work here, because Soma completely neglected all the non-Microsoft devices that people seem to insist on using. I know, I know -- you can't have a Microsoft VP publicly acknowledge Apple on a corporate blog; that's just craziness, but the rest of us sure can.
As I wrote in my last post, the proliferation of devices -- especially across platforms -- has the potential to impact me in a pretty fundamental way. It wasn't long ago that I could develop a web application and have a reasonable expectation that most clients could use it, regardless of their client architecture. Differences existed among browsers, to be sure, but there were relatively few "can't get there from here" moments.
- The desktop. Obviously, this is where Microsoft lives. Between Windows and Office, this is not only where Microsoft asserts its most solid dominance, it's also where they make most of their money. In terms of technology adoption, though, they're facing a 1-2 punch: they've struggled to get people to upgrade Windows, and they've struggled to get people to upgrade IE6. The Windows upgrade problem also impacts SilverLight availability, since most people get SilverLight with an operating system upgrade. According to Riastats.com, SilverLight's current penetration is just above 50%, which is a good start, but not yet where it needs to be. Adding insult to injury, more people are running Mac OS every day, and Linux continues to grab scraps of market share, too.
- Internet Explorer. When people leave IE6, there's a good chance they're going to FireFox or Chrome instead of to IE8. Microsoft's once near-monopoly in browsers has been eroding over time. It's now imperative that any UI technology that runs on a browser must run on most, if not all of them.
- Windows Mobile. The delay in getting Windows Mobile 7 out the door has absolutely killed Microsoft here. They got caught by the iPhone in much the same way they were caught by the internet, and we've yet to see a credible response. At this point, even Mobile 7 is lights-out fantastic, it's got a pretty huge uphill battle to gain relevance, let alone dominance.
- XBox. The XBox is a real success story at Microsoft, but again, it's not dominant, with a market share somewhere around 25% of all gaming consoles.
There's no question that what Microsoft really wants is for us to develop software with Microsoft tools on a PC running Windows, and then to distribute this software to consumers who are also running on a Microsoft-powered device of some sort. When Microsoft held near-monopoly positions on every platform where computing reasonably occurred, this was tenable. Today, though, it's just not reasonable. Customers are computing on a dizzying array of devices, and not all of them are powered by Microsoft.
What's needed today from Microsoft is real development leadership. Give us a runtime that works everywhere, and Visual Studio becomes an absolute no-brainer choice for development. While this might seem like a daunting task, a good part of this work is already being done. Miguel de Icaza's efforts with Mono have paid incredible dividends to-date. Today, because of Mono, you can:
- Run C# code on Linux.
- Develop C# in an IDE on Windows, Linux and Mac.
- Write .Net code that deploys to J2EE application servers as Java bytecode.
- Run SilverLight on Linux-based machines.
- Write C# applications that run on the iPhone.
- Write games for Windows, Mac, and iPhone.
- Write C# applications that run on Android phones (okay - this one isn't ready yet, but it's coming!)
Microsoft, please jump on this bandwagon! Visual Studio is so clearly superior to other development environments that its only current threat is developers hemorrhaging to develop for other platforms. Making Visual Studio a true cross-platform tool could make that argument a non-starter.
Similarly, SilverLight could very easily overtake Flash as the most widely-available rich UI runtime, but support for more mobile platforms will surely help this cause. In a recent blog post, Miguel talks about a library for the iPhone that helps define UI's more declaratively -- a trait SilverLight already handles well.
To envision the kind of difference this could make, imagine launching Windows Mobile 7 with a few thousand iPhone apps ready to run on it. This makes WinMo7 a much easier switch for consumers, and it could be a reality if we were already developing iPhone apps in C#. Aren't the folks in Redmond sick of seeing every company from Dominos to Nationwide Insurance telling us to download their iPhone app? Why not level the playing field and let these companies publish an app that works on any phone?
It's within reach.
Related articles by Zemanta
- Windows Mobile Down Sharply, Linux/Android Up Sharply (boycottnovell.com)
- Microsoft's Gadgets/Hardware Business is Collapsing (Zune, Xbox, Mobile) (boycottnovell.com)
- How Microsoft's New Mobile Approach Stacks Up with Apple and Google (xconomy.com)
I saw an announcement from Appcelerator this morning that looks promising – keep an eye on these guys: http://www.appcelerator.com/
I think the multi-targeting space has a chance to be pretty hot over the next couple of years.
Mono is not fully implemented on Linux.
Silverlight for linux is not implemented.
Java is fully support and implemented on Mac, Linux, Windows, Solaris, etc.
Today Java is the best language for multiplatforms.
Mono is not fully implemented on Linux.
Silverlight for linux is not implemented.
Java is fully support and implemented on Mac, Linux, Windows, Solaris, etc.
Today Java is the best language for multiplatforms.