Apple's iPhone Programming
With some delay, I'd like to rant about Apple's iPhone Programming Environment. As you may know, two weeks ago Steve Jobs made one of his worst presentations ever. He gave little new information to the world. But one of the pearls he throw out was the new programming environment for the iPhone. This one and a port of Safari for Windows (full of bugs, by the way).In fact call it programming environment is a bit pretentious.
Apple, following their tendency of "wallet gardens", has created a mobile phone without programming capabilities. When Steve Jobs first presented iPhone, there were no programming functionality planned. No native programming, no java. But everything changed two weeks ago. They have created a programming environment for the iPhone. It is a solution based on Safari, the web browser, and AJAX as a platform. Impressive.
The first think that comes into my mind when I think in such environment is security. AJAX is not the quintessence of security. The combination web + AJAX is dangerous. They are based on a connected environment and if you allow a web site to access phone capabilities such as contacts, personal information, etc... the risk of appearance of malicious software increases exponentially.
In order to add capabilities to access phone's functionality through Javascript, they must extend ECMA Script with propietary functionality. Do you find the irony in this point? You use an standard tecnology (web+javascript in this case) in order to attract a big development base, but you add your own extensions to that technology making the software created for iPhone not standard.
I hope, for their own good, that the iPhone will limit that capabilities to remote applications, but on the other hand, all the benefits of an application accessed remotely (distribution cost, ease of access, less error prone) are missed. It's difficult to set up an environment with an adequate balance between security and functionality. At least when we are considering a web based environment.