jump to navigation

The Platform Conundrum March 11, 2010

Posted by Peter Varhol in Software development, Software platforms.
trackback

If you’re a commercial software developer, chances are you work on one of two different fundamental types of applications.  First, you may develop a platform, something that is useful in its own right, and can also be used to underpin other applications.  This could be an operating system, or an application such as Microsoft Excel for which you support plug-ins.

Second, you can be someone developing applications that run on that platform.  This means that you are writing applications that require other software on the computer as a prerequisite in order to run.

Both are important.  Building a successful platform is arguably more difficult, because you have to create a useful application that can stand on its own as well as provide a programming interface for other applications to use the services you provide.  Design is more complicated, because you’re building software that has to talk to the hardware or to lower-level software, optional higher-level software, and often computer end users.

But writing an application that runs on a particular platform is what the vast majority of commercial developers do.   And it’s very difficult, both from a technical and a business standpoint.  Here’s why.  Technically, actually writing the application is usually pretty easy.  Microsoft Windows, Java, and other well-known platforms provide comprehensive programming interfaces to high-level services, making the bulk of the coding the logic for the application itself.

But the platform can shift, and put commercial applications dependent upon it in a difficult position.  It’s rare that the programming interfaces change; Microsoft in particular does a very good job of maintaining its programming interfaces.  But often application developers make use of undocumented features or calls that can change without warning.  The result is unexpected breaks in the application as the underlying platform is updated or patched.

Further, platform vendors such as Microsoft and Oracle (with Java) are in the application business too, and use third-party commercial developers for their platform as a kind of market research arm.  By looking at what succeeds with third party developers, platform vendors can come out with their own applications.  That’s what Twitter is doing, and Microsoft has also been known to do that.

Of course, the platform vendor has the opportunity to compete on a tilted playing ground by taking advantage of its knowledge of the platform to create faster or better applications.  Microsoft has been accused of this with Windows, and others have been suspected of it.

I noted in my previous post the Fortune magazine article on the fall of application developers.  The article cites how platform vendors such as Apple, Google, RIM, and even Twitter have taken to calling the shots more with application developers, in Twitter’s case actually recommending that users use a new in-house application in place of established third party alternatives.

The upshot is that developers who use a platform are often running the digital equivalent of a Red Queen’s Race, working as fast as they can to advance their application, but not making much headway, because of advances to the platform, or because the platform vendor has decided to compete.

Advertisements

Comments»

1. TheServerSide Java Symposium Call for Papers is Open … | Java WebDev Insider - March 22, 2010

[…] The Platform Conundrum « Cutting Edge Computing […]


Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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

%d bloggers like this: