Platforms for SaaS Applications: Which Approach Will Win?
Tuesday, February 26, 2008
The next great application platform battle is taking shape. As more and more applications are created that provide software as a service (SaaS), it makes sense to provide a common platform on which to build these applications. Just as traditional on-premises applications depend on the platforms provided by Windows, Linux, and other operating systems, developers of hosted SaaS applications should also be able to build on a common foundation.
It's way too early to know who's going to win this battle. Most likely, there will be a handful of dominant SaaS platforms a few years from now, just as there are a handful of dominant operating systems today for building on-premises applications. But it's not too soon to think about what kind of platform is likely to win.
Two approaches to SaaS platforms are appearing. One style, SaaS-only platforms, focuses solely on supporting applications that run in the cloud. The marquee example of this is Salesforce.com's Force.com, which has attracted a significant number of application developers. The second approach aims at providing a common platform for both SaaS applications and on-premises applications. Microsoft has announced plans to do this, and other vendors are also moving in this direction.
Of these two approaches, the second--a common platform for SaaS and on-premises applications--is likely to win. Here's why:
- Extending existing on-premises technologies to a SaaS platform means that developers don't have to learn entirely new skills and new development tools. Instead, there's a ready-made population of people who already know the basics of how to use the SaaS platform. The creator of a SaaS-only platform, by contrast, faces the challenge of teaching developers how to use whatever new tools and technologies it provides. Force.com, for example, has its own programming language, called Apex, that developers need to learn. While Apex isn't especially complicated, using it is certainly more work than writing in languages that developers already know such as Java or C#.
- Using the same basic technologies for both a SaaS platform and an on-premises platform lets ISVs and end users more easily move their applications from one environment to the other. While the two worlds might not be exactly the same, they ought to be similar enough that SaaS applications can be brought in house without too much pain and vice-versa. Providing this flexibility is likely to be attractive to many potential users of a SaaS platform. Contrast that with a SaaS-only platform, which supports solely applications that run in the cloud. If moving an application in-house makes sense for any reason, the only real choice is to rewrite it.
Providing a common platform for SaaS and on-premises applications is harder than creating a purely SaaS platform (or a purely on-premises platform, for that matter). After all, a platform built solely for SaaS applications can focus entirely on the problems those applications face. Targeting both worlds requires addressing the requirements of each while still providing more or less the same programming environment.
Still, the advantages of offering a common technology foundation for both platform styles are clear. Five years from now, I'm betting that the dominant SaaS platforms will largely provide the same programming environment as their on-premises cousins.