On Monday, Apple opened their World Wide Developer Conference with a keynote from Steve Jobs, and as always it was great to watch. One of the areas I was particularly interested in were the details regarding the iPhone, and how Apple were going to let developers create applications for it.
Writing applications for mobile devices is a real double-edged sword. On the one hand, every good gadget-owner wants to be able to expand and customize their device with new features and software. And every obsessed gadget-lover wants to be able to create their own applications.
But the dark side is that a mobile device isn't a desktop computer. A mobile device connects to cell networks, it can make expensive phone calls, it has a lot of personal information on it, it's easily lost, it completely sucks when it crashes.. There are lots of reasons why having badly written applications or even malware/viruses on a mobile phone would be a Bad Thing. And mobile phones have a very intimate relationship with a mobile operator. After all, the mobile operator helps pays for the device, and has to field support calls, so they want a lot of input into what it looks like and how it works.
From a developer's point of view, the Microsoft approach is to create a complete SDK, that allows low-level access to almost every nook and cranny. The price you have to pay for this is that not all APIs can be called and not all features accessed depending on what "security clearance" you have. Developers can use code signing to earn a degree of trust, but it's still not as open as the desktop and this can be frustrating at times. With great power comes great responsibility, etc etc.
So while this is causing some consternation amonst Apple iPhone would-be developers (perhaps there is a feeling that "web-apps" are merely web pages, and therefore not "real" programming - something I don't agree with, by the way), I don't think it's a truly terrible thing. The Apple web browser (I'm not sure if this includes the iPhone's browser) supports the 'canvas' tag for example, which makes graphics possible without requiring a Flash or ActiveX plug-in. That makes some neat effects possible.
As always, opinions in this blog are mine and mine alone.