Compare and Contrast part II

I thought I should clarify some things.

Programs and operating systems that run on small mobile devices do have differing requirements from the same sorts of things on a desktop or server class machine. This is certainly true.

Mobile devices require a UI that deals with smaller screens. Since many of these mobile devices are communication devices, there is a need for more real-time code to handle the traffic.

My main point is that as mobile devices become more powerful, they become able to build on a base that didn’t necessarily have to originate on a mobile device. With OSX, Apple is able to adapt the UI classes to be appropriate for a mobile device, and as far as I can tell, most of the tweaky real-time stuff is being done in a segregated part of the device (every time I’ve updated the software, it’s been in two stages — first the OS, and then “baseband,” I assume (caveat reader) that the baseband stuff is the radio firmware, where the real tweaky-ass stuff needs to be).

I’ve come to this conclusion because of my time spent developing on the iPhone, as well as time I’ve spent developing for other devices. On the iPhone, most of your program is written just like pretty much any mac application program. On other devices, there’s a whole different structure that has to be learned, because maybe the network works differently, or they’ve invented a different way to do the event loop, etc.

It’s safe to make the bet that mobile devices five years or so from now will have the same computational and storage capabilities of todays average desktop machine. The danger is that if you don’t make that bet, you will be passed over by those that do make that bet. If I’ve learned anything in the past 25 years or so, it’s that technology always amazes me. My personal hope is that I am wrong, and that mobile devices 5 years hence will kick the ass of today’s average desktop machine.