Recently there has been a push to replace desktops and laptops with low powered machines. These machines have taken the place as mobile devices [phones], tablets, netbooks, and with some ambiguity ultra books. These machines claim to push the responsibility of major processing onto server environments [the cloud], and leaves the visual tasks [GUI, localization, collecting user requests] up to the client. If you believe the marketing hype….
The advantages to the user is the biggest draw of the trend. The user is able to purchase a cheaper piece of equipment, and tends to have a lower cost of ownership. Although the environment may lock the user down to what software they may install. Low powered machines tend not to take up as much physical space, and give a longer battery life.
Before I go on a huge rant, I must concede that the whole tablet/smartphone trend has made it cheaper and easier to create portable generic devices. Instead of purchasing a small novelty devices, you can get an application that does the same thing. Soon in the future, hipsters will be bragging about how they still use a desktop alarm clock, because its retro.
Despite the trendiness of tablets and smart phones, this is pretty much the whole “thin client” fad all over again. Most of the work is pushed to the server, and the thin client must have access to the server to work. Despite the marketing, network issues have not been resolved with tablets and netbooks. Cellular modems have been added to the devices [3G, HPSA, and LTE], but they tend to have issues with coverage, network saturation, providers/governments willingness to jam signals, and latency. Even with WIFI tablets, a network isn’t always guaranteed.
Another annoyance that comes with the low powered devices, is that the user lacks the choice of operating system. Due to non-Intel compatible processors and locked down BIOSes this makes things difficult. The user is locked down to the platform that is installed. It’s kind of a benefit as that the device can update its-self. However, applications can be rejected from the marketplace/application-store.
Sub rant: A tablet makes it incredibly easy to navigate and read web pages. However it becomes very difficult to perform any task that has any merit. The onscreen keyboards and autocorrect tend to impede or prevent the task from being performed. One has to have a Bluetooth keyboard if they wish to type anything longer than a text message on a tablet. Additionally the ability to select something with precision is lost on a touch enabled device. Although, one can pair [Bluetooth] or plug in [USB] a mouse and use the mouse pointer on android.
What does this have to do with development?
Sadly, this is being pushed to developers as being the “hot new thing.” Its being treated as something that has never existed before, if you believe the job listings. It seems like everyone wants an IOS/Android application, wither its relativant or not. Apparently, the world of Windows CE, QNX, PalmOS, and embedded version of linux are pretty much ignored.
It appears that the push for an application market place is pushing the application as a service idea. It’s great for the user, outdated versions practically become a thing of the past. This is unrealistic for anything but novelty and open source applications. Applications will be expected to be supported, maintained, and cheap [to compete]. I may not be a business major, but this seems unfeasible as a business. You can’t sell a jug of milk and provide free refills for life.
Another concern for developers is the cloud/traditional services that will be provided to the mobile. Given the specifications of the devices, and the current models for services [XML based], providing an efficient delivery model for mobile devices. I would change my opinion on this issue if binary services were used for mobile devices. It would also be nice if the services were switchable, depending on the client device. [XML/YAML/text based for desktops, binary for mobile devices]. This would be slightly more tolerant for the network needs of mobile devices.
What I believe isn’t possible with “The Desktop Killers” (Tablets and Smart Phones)
- Professional Grade Photoshop-like Applications
- Real-time, low latency high end graphics rendering [rendering on a server farm will kill the latency]
- P2P Software
- Multi-user space on the device [currently the mindset is tied down to 1 device, 1 user at a time]
- True background services/notifications (its more of a hack right now, this is impeded by power saving and modem [WIF, Cellular] usage) [Examples: monitoring applications, IM applications (where the user may not actively be using their device)]