Android Ideas

Apps vs. Applications: A Paradigm Shift

Apps and applications are in many ways similar, but have different underlying paradigms.

Applications tend to be more complex and feature rich. Jamie Zawinski once remarked that "every program attempts to expand until it can read e-mail." Applications often turn into Swiss Army knives with each providing several, often overlapping pieces of functionality.

Apps by comparison are more like silverware, each with a specific purpose or closely related set of purposes. You'll occasionally find a spork thrown in there, but this tends to be the exception and not the rule. In this sense apps are truer to the old UNIX philosophy:

Write programs that do one thing and do it well. Write programs to work together.

Until mobile apps arrived on the scene, it seemed that we were moving increasingly further away from this ideal. Microsoft Word for instance, an application used by hundreds of millions, ships with more features than most of them would ever want to learn. This complexity comes at a cost. At a certain point adding more features actually makes the average user take advantage of less features. Many people who would potentially benefit from some of the advanced formatting tools in MS Word are hesitant to learn them since they're among hundreds of other unfamiliar features.

Apps are a welcome change from these beasts, both for users and developers. Smaller, cohesive chunks of software are both easier to learn and write. It basically forces you into using good design principles, or at least makes it hard to screw up too badly. It allows for smaller, more efficient teams. It makes the product more maintainable and makes bugs easier to find.

Apps aren't merely applications for small devices, they represent an exciting shift in the software world. In some ways it's a shift back to the UNIX philosophy of "one thing well" that's been around for over 40 years. It's not a new concept by any means, what's new is how mainstream and widespread it's finally becoming.