photo of NeXT Cube by Joachim S. Müller used under a CC license
More than 20 years ago my primary computer was a NeXT cube – still among the best computers I have ever owned and many of the features of that computer are still revolutionary. Among those features is one that showed up in the Mac OS many versions ago but which has never been widely used – the concept of Services which are pieces of functionality that one application offers and makes available to all other applications on the computer.
Potentially incredibly powerful both for day to day use and for use inside of scripts to automate routine tasks these services have, however, never been widely used or understood.
So here is my crazy speculation – in response to this recent Google+ post on the future of Context and iOS by Robert Scoble – Apple should make it possible for every iOS application to expose services to other applications on the platform
This has lots of challenges – not least of which is data security and integrity – exposing services means passing data amongst applications on the platform and opens up the device to any number of privacy and security concerns – but the advantages that this could offer are also nearly endless.
Imagine an entire new class of applications – applications that aren’t designed to be run directly but instead which enhance every other application on the platform. A few immediate examples:
A public transit application that makes public transit directions available in EVERY application on the device that uses a map
A translation application that offers on the fly translation/language lookup of any bit of text inside any application on the device
A “share to …” service that adds a new service to the core sharing services baked into the OS (i.e. currently Twitter and Facebook but this would be a way to install one core element and get sharing features potentially everywhere on the platform
Today many applications actually bake into their codebases code for various third-party services – web analytics, social network login/sharing features. game score/matching features etc. It may be possible that in the future, should services be widely adopted, that many applications could have a smaller, more nimble codebase by leveraging a single, well updated and maintained codebase for common services (such as ad serving, analytics, etc) much as today they consume core iOS services such as Maps etc)
I should note that while I pay attention to mobile development and iOS development it has been sometime since I was actively and personally involved in the development of an iOS application so I may be misremembering certain details of how to build such applications under the current iOS. And yes there are always problems when 0ne application depends upon a 3rd party application for core services (i.e. an update to that 3rd party service may impact the performance of your application in potentially unforeseen ways)
But equally such a movement away from siloed applications to emphasizing services that one application can offer to other application could open up the iOS platform to countless new opportunities while also enabling smaller and faster applications.
These new Services applications could do all kinds of potentially crazy and innovative things – actions that would then be potentially available inside of every application on the device. From allowing for enhanced auto-completion (i.e. text snippets etc) to on-the-fly translation, to enhanced geographic contextual information to new forms of analytics the possibilities are nearly endless.
So that’s my “simple” suggestion – bring back Services in a big way.