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.