Ralf Westphal has been pondering
the meaning of the term "application". I always find definitions important
because all too often I find myself talking at cross purposes with others,
because we are actually talking about different things. Part of the
problem is that one really needs to clarify the perspective or audience the
definition is addressing. For example to a .NET developer, a component
might be "an object that implements IComponent", whereas, to a general
audience a component might be "something that is a part of a larger system or
structure".
Ralf proposes that ... a software "application" is (or is part of) what
we produce as a response to a customer requesting a "software solution".
He goes on to say that an application will always consist of an "application
host" together with application code which runs in that host.
I find that interesting and his post thought provoking, but
without specifying a particular perspective or audience, I prefer a more
classic general definition ...
A software application is a computer program
designed to perform a function or
task.