It wasn’t long ago that Microsoft was in federal court in Washington, D.C., charged with being a monopoly. At that time, if you were building an application or running a business, you were doing it on Microsoft Windows. They were the only game in town, and the IT world quivered over their dominance.
Off to the side was the Macintosh operating system. It was the domain of a handful of creatives who used it in publishing and in Hollywood. Then there was the Web browser. It made its way onto the Windows desktop, but the only thing the Web was being used for was publishing. Nobody was doing serious application development work on it. Moreover, Microsoft had introduced a browser of its own that would quickly rise to dominance and kill off any other competitor.
While Java was generating some excitement with its “write once, run anywhere” technology, Java apps took forever to download, looked unpolished, and couldn’t even print. Java was more of an interesting science experiment. And forget about the smartphone. It didn’t exist.
Had you asked any developer in the 1990s what operating system would be the one users would be staring at today, the answer would have been easy and unequivocal: Microsoft Windows.
Mobile Changes the OS Game
Fast forward to 2011. HP recently unveiled its new TouchPad tablet. It doesn’t run on Windows. It runs on webOS. The HP TouchPad lets you bring your workspace anywhere you are. It’s able to connect you and your devices through the webOS experience and, unlike the iPad, supports multitasking.
webOS is the latest in a string of new, relevant, and important operating systems to shake the market. Every developer is painfully aware of the rapidly growing OS list: iOS from Apple, Android from Google, Symbian from Nokia, Windows Phone 7 from Microsoft, RIM from BlackBerry, webOS for HP/Palm, and more are coming.
That’s six new operating systems that are being used by 67 million users, according to Gartner. Add to that the fact that the Web has become a platform. There’s cloud computing, Software as a Service (SaaS), Platform as a Service (PaaS), and even Application Development as a Service (recently announced by Unisys).
Thanks to the capabilities of contemporary Web technologies such as JavaScript, HTML5, and CSS3, the browser is already the new desktop for a huge swath of users. Indeed, it’s within striking distance of becoming the desktop experience for all users.
So the predictions in the late 1990s about Microsoft winning the OS war couldn’t have been more wrong. In fact, in the current era, Microsoft is viewed by many as being on the ropes. Today, we are in a truly golden age of operating systems and platforms available for the picking. That’s the good news. The bad news? We’re in a new golden age of operating systems available for the picking.
As much as we used to fear Microsoft’s dominance, looking back, having a single platform to target made developers’ lives much simpler and businesses’ investments much more efficient. They were able to target a single platform, become masters of a single API and a single language — usually produced by Microsoft or another leading vendor — and rapidly produce applications almost as fast as the business needs required.
When the Web came along, a lot of that started to break down. It became more difficult because you had this conglomeration of HTML, JavaScript, and other code that was required to build these applications. Now, that complexity has multiplied severalfold. Instead of just one dominant desktop OS and an embedded network platform such as the Web, we have mobile OS proliferation. For developers, this is a real conundrum.
Android has taken about 28 percent of the mobile market in the U.S., beating out Apple’s iOS for second place. RIM’s BlackBerry is still No. 1, with more than 31 percent, but that represents a decline. Given the early previews of HP’s webOS, and the reaction of influential tech bloggers such as Robert Scoble, it looks like it’s going to give them all a serious run for their money.
But don’t count Microsoft out. Although they have virtually no presence in this new market, other than a long list of failed efforts, including a 500 million dollar investment to market the Windows Phone 7, they have the biggest war chest in the business. They will keep throwing money at this problem until they crack the code or die trying. Let’s not forget that they were in last place in the browser wars at one time, too. It’s a game Microsoft has played many times and won.
More Choices, More Problems
The challenge for developers is that there is simply not enough time and no unifying tools that let them address all of these platforms. Frankly, it could be argued that one brain is not large enough to remember all the nuances and idiosyncrasies of developing for all of these different targets.
iOS requires Xcode and Objective-C. Android and BlackBerry require Java. Microsoft requires .Net. HP/Palm requires HTML, CSS, and JavaScript. Symbian requires Qt. And let’s not forget the Web, which requires HTML5, CSS3, JavaScript, and who knows what else in the future. Now juxtapose this OS proliferation against the shrinking budgets of IT departments.
While we’re getting out of the recession woods, we can still see the trees right behind us. Companies cut staff to the bone during the Great Recession. You can talk to any developer, and they’re all producing more with less — fewer people on their team, less access to tools, and less domain experience on the OSes they’re trying to target.
Yet the demands on them continue to grow because every company wants an iPad or an Android app. Plus, they’re looking hard at private and public clouds, SaaS solutions, and so on. And most important, they’re looking at ways to tie all these systems together into common back-end infrastructures.
The complexity of meeting those demands is going up while the resources are not expanding. The result will be that developers will simply not be able to keep up. Something will have to give. If you talk to developers today, as I do every day, it’s clear to me that we’re already starting to see developer burnout.
One way developers and their organizations are dealing with this is by deciding not to support certain platforms. When the decision is made only to build iPhone apps, that leaves customers who prefer Android out of the equation. This narrow focus eliminates access to the potential revenue independent software developers or businesses could be gaining if they were able to support the devices their customers prefer.
We’re also seeing tool vendors make the same kinds of decisions. Tools are being built and optimized around specific operating systems to the exclusion of other platforms. This not only makes it harder for developers to have access to the tools they need for certain platforms that might not be well supported but also further complicates their lives. Now they need to know two, three, or four different development environments as opposed to just one that could target all these platforms.
There is a growing, vocal community of developers who have already thrown up their hands. They’re refusing to build custom code for all of these apps because it is simply too expensive and too time-consuming. Instead, they are saying that the Web is the platform.
Web technology-based development can, in fact, be a smart, affordable, and practical platform for a solution. It’s now becoming clear that even hardware features such as the accelerometer, camera, and GPS can all be accessed directly through modern mobile browsers.
The old mantra for application development tool vendors was to help developers increase their productivity. This was accomplished through rapid application development tools that let them quickly take a business problem and address it in code for the most widely used platform, which was Microsoft Windows.
The equation has changed. Now it’s not just about how quickly a developer can build an app but how quickly a developer can build and deploy an app to a half dozen platforms. Nobody has solved this problem yet. I can tell you that it’s one we are working on, and I’m sure other companies are thinking about and working on too. I’m sure there will be multiple approaches that will result in the next year.
That’s good because if we don’t find an answer to this problem, an iconic emblem in the computing world will have to be modernized. The image of the developer sitting at his desk, his skeleton covered in cobwebs, was once used to poke fun at how long it took certain processes to complete. Now it portrays the developer who has reached the end of his line, no longer able to keep up with the demands of contemporary application development.