Why smartphones and tablets are the future — a developer's perspective

Originally, software ran on mainframes and instead of computers the users had "dumb terminals". Later, low-cost computers made desktop PCs a better business choice, and software transformed into programs that ran from the desktop. This transformation introduced a few new complications...

  1. "Do all" desktop PCs are inherently less secure -- a struggle that has been reduced slightly by firewalls, antivirus, and OS improvements, but in the grand scheme it hasn't made an appreciable dent in the security problem.

  2. With individually installed applications on end-user machines, versioning got out of control. It became necessary to maintain support for users with very old installations and no need, intention, or (often) ability to upgrade.

  3. Keeping any form centralized data required the introduction of a new "client-server" model and complicated transactional support to stop people from stepping on each other.


Later, out of this client-server model, the internet was born, and soon everyone saw this as a solution to the old problems. With internet-based apps, all the code returns to a small number of central servers, so upgrades are instantly applied to everyone (except IE6 users, haha) making version management a cinch. And with only a few servers to maintain, security becomes a much more manageable task. And best of all, costs went down again. The internet also opens up your potential user-base to the entire world, rather than just the physical network of the enterprise. But this step, too, brought with it some problems...

  1. The reason why version management was improved is because this model requires these "apps" to run inside of a browser. The application is literally delivered to the user every time they access it, which forces it to stay lightweight, because a more complex app will load to slowly to be useful.

  2. This lightweight "front-end" can theoretically be delivered to any "browser", and all browsers are different. Developers have to choose between making painfully simple apps that run everywhere, or making several different versions to support all the differences in browsers, thus re-introducing the problems with app versions and user upgrades.


That brings us to the present, with our smartphones and tablets. These handhelds brought with them perhaps the most under-appreciated new feature: app stores. Finally, developers can go back to writing client applications like we did in the desktop days, with the confidence that upgrades will be more sanely managed. (On Android, they're automatic now!) No longer are we stuck with weak, lightweight user interfaces because we don't have to deliver the entire app on every page load. But we can still keep the "back-end" on centralized servers, making administration and security more manageable.

App Stores also gave us a concept of inexpensive software apps. Users no longer have to pay $300+ for a Windows license, just to get a web browser. Most people can now do with a $.99 app what they used to do in a $700+ copy of Photoshop.

It's only a matter of time before big enterprises figure out that it's cheaper and easier to build client apps on handheld devices than it is to maintain expensive workstations. When this happens -- when we no longer need a fixed place for a person to sit at their computer -- I predict that we'll start to see the end of the cubicle farm. Office real estate is costly, both in terms of physical space and in terms of money. And that's always the magic detail... when something reduces costs, it changes things.
comments powered by Disqus