What is an application?

Working for RedPixie, I have recently been working on streaming applications. Or, to use Numecent‘s phrase, “cloud paging”. I see a slow but steady increase in interest in these technologies, going hand in hand with renewed interest in VDI (after some initial disappointment). At the end of the day, all most users want to do is run their apps. I don’t think they care how they get their apps, so long as they are fast, reliable and accessible. I don’t think they care what operating system it runs on: Windows, MacOS, IOS, or a gaming console.

It is helpful to define what an application actually is, as opinions may vary. A program, certainly. But not all programs are applications. “Program” is the most general term and in IT we like to be a bit more specific and separate our programs into types.

Most ITers would agree there are a set of programs called “utilities”, which may or may not mean “middleware”. To me a utility boils down to something which has no lasting results. It does not “create”. A utility typically converts formats or moves existing things around. Examples of utilities would be calculators, printer drivers, clocks (Look in the “Utilities” folder on a Mac).

Middleware, to me, implies glue which allows systems to talk to one another: a format converter and communication program.

Databases are a clear subset of programs on their own.

Operating systems are a subset too but are themselves subdivided into onion rings of kernel, drivers, user interfaces and a million other “algorithms”.

Compilers and Editors? Have we reached applications yet? Well I think we’re getting close because to me an application is a program used to create something. The obvious examples are Word, Excel, PowerPoint, Photoshop and newer kids on the block like Prezi.

Games? Browsers? They don’t create anything, but are normally considered applications. Perhaps it’s not so easy to define after all. But then, perhaps we don’t need to try so long as words such as those above evolve to allow us to talk about groups of programs.

What got me started on this post was trying to find out all the “applications” I used, so that I could convert them into streamable packages. This in itself turns out to be non trivial! Where do you look on a PC…Programs and Features? That’s no good, it includes patches, hotfixes and well, programs. And what about the web-based apps I use? There is software which is used in large organisations that sniffs the network and identifies applicationsĀ  in use by their network packet profile. Hardly surprising that an organisation can’t determine what apps it has if one person can’t.

In summary, “application” is a bad word. It’s too vague, there is no agreement on a definition. Where is the International Standards Organisation when you need an RFC on program types? (I’ll look shortly).

While I’m fairly confident that we are going to be streaming a lot more programs in the future, what we’re going to be streaming remains to be seen.

Progress

I was impressed when on holiday in SE Asia last month with the internet connectivity. It has definitely improved a lot in the last few years. Not only is it possible to Skype and vpn to the UK from Ho Chi Minh City (at least from the apartment I was staying in) with perfectly good results, the connection was stable enough to upload a huge video file onto a server running Arkivum. It took about 6 hours but finished without a glitch.

Not only that but carrying the iPhone around I was even able to check mail with no problems using public wifi from a cafe in Hoi An. It’s not a big city, more of a large town and the centre is a world heritage site and consequently full of tourists. Maybe that has something to do with it but even the smaller hotels have wifi, if not in the rooms then in reception.

The world becomes more and more connected. It is impressive.