Category Archives: Development
Sometimes, implications are hidden by the glowing success of certain new technologies. This is exactly what is happening with the current smartphones, or I would better say AppPhones. A trend opened by Apple in 2007 when the first iPhone was launched, ever since then most of the companies providing end customer services through smartphones are choosing to do it over native applications that are downloaded from their respective application store.
So far nothing wrong with this, actually from an end user perspective I am personally a great fan of this way of delivering contents and services, as they can provide an incredible user experience as well as providing full integration with the smartphone features like the camera, in-built GPS, compass and whatever will come in the next generations, with NFC chips already knocking on the door.
A bit of history
It is, however, when you look at the evolution of technology in the last few decades that you find this trend quite curious, as it implies effectively going against some of the basic principles we have been enacting for long years.
Think about traditional systems up to the 80’s where client-server computing used to be the rule. No middleware systems in between, and full blown applications (with exceptions like mainframes accessed through emulators) installed in end users computers.
The web comes in the 90’s, and soon browser-based, thin client computing is understood to be the way to go. Numerous advantages, like eliminating the error-prone processes of software distribution and patching the distributed applications. Looked very good and actually was (and still is) the rule up to nowadays. Except for mobile applications.
Back for good, sometimes
Back to client-server architectures, albeit in most of the cases a middleware will be paving the way between the client application and the back end systems, but client-server, anyway. It must be said, though, that the traditional burdens of distributed computing have been brilliantly solved by the companies ruling the mobile platform industry, with simplified application download, update, install and uninstall processes that eliminate nearly all the issues while maintaining all the advantages of native applications in terms of responsiveness and user experience. So brilliant is the concept of an Application Store or Marketplace, that I bet we will be seeing more applications for this concept outside the mobile ecosystem.
So back for good, I would say, in this case.
Back to square one, in others
Another traditional battle, specially since the early days of the web, has been standardization. Not only a problem for users who had the freedom to choose their browser of choice, but also for developers which had to write, test and maintain
code for many different browsers which did their own interpretations of the existing standards. This had improved in the last years though through greater standardization, so now we could talk about tuned versions of the same development rather than multiplied developments for different browsers.
Now think about mobile applications from this perspective, and here is where I see clearly a return to the beginning. Multiple platforms, with no grounds in common and even different programming languages, means that a company developing an application for Apple, Android and RIM devices, needs effectively to write 3 different applications. Of course design and some coding frameworks will surely be reused, but most of the work needs to be redone. Promising frameworks are out there to help bridge this gap, however, it looks that in this case we are back to square one.