We’ve crossed a major tipping point when it comes to designing services that rely on software. The client (front-end) is now essentially the star of the show. If you don’t know what that means I can explain. When you use any product that uses the web you have a client and a server. The client is your computer, your phone, your iPad, or other mobile device that you use to interact with the software. The server is the network of computers that store and transmit the data to you.
Since it’s inception online service design had always been focused on server side programmin and there was a good reason for this. Traditionally web services have always been accessed by the user via a web browser which used to be an extremely hostile environment. But that’s not true today. The current browser landscape is more competitive than ever as vendors are racing to support modern and proposed standards. This means it’s possible to build and reliably deploy complex software that resides in the web browser.
What’s even more important is the changing device demographic. The main way of accessing and using online services has been through a desktop web browser but over the past three years we’ve experienced a dramatic change in the adoption of highly capable mobile devices. Apple’s iOS and Google’s Android provide two very homogenous platforms where service providers can deploy complex client side software more reliably than they ever could in the past. Apple’s iOS is the best example of this due to its extremely homogenous and controlled device base. By testing on only three devices a developer can reliably experience how their application will run for over 200 million people. Never in the history of computing has such predictable deployment been possible.
We used to use the server to do nearly everything the user did and saw. Any interaction or behavior exerted by the user was sent to the server so that a new page or portion of a page could be rendered. But moving forward the server will begin to behave more like a server (surprised?), passing data to and from the user only when they need to. The rest can happen on the client.
The future of development is in the client. Those who focus on the client will create the most interesting and exciting services of tomorrow.