I recently made my first acquaintance with Windows 8, having bought a new Sony ultrabook for the family. Including a touch screen. The combination of the touch-based interface and the phone-like look of Windows 8 even on a PC has led me to think about the (unconscious) expectations that I have come to have on how systems behave and how services are accessed, from how smart phones and tablets have come to work in the past few years. In particular, where are web-based services going?
The inspiration for this post came when I found myself swiping around on the Windows 8 start screen, looking for an application to log into Facebook. I quickly snapped out of it, realized that this is a PC, went to the desktop, and then started Firefox in the normal way. This could be a starting point for a long post on Windows 8 and how it somewhat uncomfortably mixes a desktop and a tablet interface – indeed, I wrote such a post but my WordPress installation ate it before it got published. Which was a good thing in hindsight, as rewriting it from scratch forced me to focus on the key observation here.
To me, a clear (and much appreciated as a user) trend in mobile service access in recent years has been the move away from “you can read it in the mobile browser” to “let’s provide a custom application”. Services like Facebook, Youtube, Google maps, TED, Dropbox, and others have realized that just relying on a browser does not cut it on a mobile device. You get something so much more usable by investing a bit of effort into building a native application that runs on its own. The custom application is in practice often built on various web technologies under the hood, but it still is designed to work well in the mobile form factor with a touch screen interface. Still, the browser it is the preferred way to deliver services for full-grown computer systems like laptops and desktops. But with a touch interface at my fingertips, I start to expect the same on my PC (and Microsoft has attempted to provide something like this in their strange People/Kontakter app that kind of reports some of the updates but not really).
Sure, I can put a bookmark to a service as a tile on the Start Screen, but that is not the same as a real live Windows 8 tile. I want to have that mobile-like feeling on my PC too, and that means expecting service developers to provide a custom application and not just a web location I can browser too. Arguably, delivering rich applications over the web into a browser has been the most important trend in application development in recent years. But now that is coming to collide with other big trend, to build mobile applications that run natively on a system and use the screen on its own, not being subordinated to the browser’s controls. Maybe we will get back to writing real applications again, but most likely some fusion will come out of this.
If we take mobile into account, the current software development landscape in terms of hosts is the widest and wildest it has been for decades. When I started doing software professionally, the platforms that mattered (for user-facing applications, not server-side applications) were Windows and Solaris. Now we have Windows, Linux, and MacOS. And then iOS, Androis, Windows Phone, and a bunch of also-rans like Blackberry and Windows RT. And the browser, which might well need special cases for most of these anyway to handle idiosyncrasies in the (OS x browser) matrix. In the end, I suspect we will figure out solid ways to write cross-platform code that looks OK on all platforms and do not take full advantage of any of them… that is how it usually turns out except for a few fanboys who really love a particular platform and do not operate under the commercial need to cover the biggest possible market.
It is exciting times. And difficult for software designers and product managers like myself. Just what shall one target, and can existing products even be turned into a touch-friendly form?