Situational Software Blog      by NetMesh and partners [XML] Home

What is a Software Application Anyway?

Imagine you have to explain to a non-technical person what exactly a "software application" is. It's obviously some sort of packaging construct for certain functionality, but why exactly some functionality is found in one application, but other functionality requires the user to run a different one seems completely artificial to me — and probably to most end users who have not been "educated" yet.

Of course, I can explain it historically: an application is whatever runs in a given address space allocated by the operating system's loader, after jumping on the main() symbol. But this definition hasn't quite been true for some while as applications often run several independent processes, sometimes even across the network.

Take Microsoft Office: Is Word an application, and Excel another? Or is Office the application, and Word and Excel and so forth are just different entry points? What about Internet Explorer and ActiveX controls in general?

There are only three useful left-overs of the application concept that I can think of:

  • The application as a unit of distribution, as in "I installed application XYZ today, it came on a CD."
  • The application as a unit of licensing, as in "I bought (well, licensed) application XYZ today, it cost me ."
  • The application as the entity that is branded, as in "You should really check out the XYZ application, it's very cool."

The application as a unit of distribution has been mortally wounded since the always-on internet with demand downloads, and will be even further as rich client approaches such as IBM's advance further and proliferate (example: where exactly does the Eclipse application start and end?)

The application as a unit of licensing has always been frayed at the edges, at least for more complex applications that often have many licenseable feature sets. And I'm sceptical about how long it can remain to be useful as a unit of branding, now that the technical boundaries between "applications" are blurring.

Remember OpenDoc? It was a commercially unsuccessful, but technically astute attempt at replacing the "today's application-centered user model with a document-centered one" (Luca Deri). The unit of distribution and of licensing in OpenDoc was the part editor, together with part (i.e. data) templates. OpenDoc probably fell over the third part, which was that the established vendors of software that should really have been ported to OpenDoc were unwilling to do so.

But it proves that the concept of the application can be re-thought, and for situational computing, it makes very little sense as the roles of distribution, licensing and branding are quite different from traditional, application-centric computing.