Tuesday, June 12, 2007

Strange Omissions



Rumor has it that, at least initially, the iPhone will lack Flash support -- argh! (Even the Wii has Flash support.) Yes, that is disappointing, but it doesn't explain why Apple's email announcement to people, like me, who signed up for news on the iPhone's release doesn't mention web browsing.

Oops.

But the really sad omission is...



It really looks like the iPhone SDK non-announcement is a little hasty. Yes, you can develop perfectly good 3rd party apps for the iPhone using a web server, but no, Apple hasn't added some perfectly obvious bells and whistles to make this seamless:
  1. There appears to be no way, out of the box, to "bookmark" or "force cache" a page and make it launch directly from the main menu.
  2. The Safari UI doesn't appear to be hideable (yes, the address bar auto-hides after a period of non-use, but it needs to be possible to hit all trace of the browser from JavaScript or something).

Technically, these are minor omissions and easily fixed, but boy would they have made great demos (versus the glorified phone book app that was shown).

Build a simple game using DHTML. Make it 480x320. Go there with your browser. Click a button to "appify" it. Boom. Third party game app. (And then demonstrate how it automatically updates the cached version when appropriate.)

Go to Google documents and "appify" it. Boom. You have a real word processor on your iPhone.

These are low hanging fruit, and it's rather lame that Apple didn't have at least one moderately cool demo to show.

Monday, June 11, 2007

Uh oh, AAPL is down $4



In general, when Wall Street responds poorly to Apple announcements it's a sign either that Apple's announcements were lame OR that Wall Street doesn't understand the implications. Remember that the iPod announcement was received with yawns (including from me) and so was AppleTV. We'll see.

Going back to my reaction to the announcements at WWDC 2006 (last year), it still seems to me that Time Machine is a killer feature. Just ship it and have it not suck and I'm sold. Stacks is also a killer feature. At last, your desktop can actually look pleasant without constant maintenance. (It's sad how much time I waste clearing up my desktops on both Mac OS X and Windows.) I should point out that the Apple Menu and Tabbed Finder windows in OS9 are long overdue for replacement, but stacks do appear to be a very well thought out replacement.

Quick Look may or may not turn out to be amazing. It really depends on what documents are supported and how easy it is for third parties to build their own lightweight plugins (e.g. if I can preview 3d models from, say, Cheetah 3D via Quick Look, that would be great, but how likely is that?) Quick Look is eminently hackable though -- write a Quick Look plugin to do screen casting, for example (since it's unclear whether that functionality is available in iChat AV as implied).

The DVD player functionality looks like a really compelling feature, especially for the Mac Mini as home entertainment center. At last, one of the two most annoying things about DVDs (skimming through them to find something) appears to have been clobbered. Now all we need is a MENU button that can bypass ads.

Spaces looks like it will be amazing. I've got a license to Virtual Desktop somewhere (one of several free and shareware virtual screen apps for OS X) and I gave up using it long ago. For something like Virtual Desktop software, incredible attention to detail (like perfect Exposé integration and muting games in hidden screens) is essential, and this is where Apple can make a great concept that doesn't quite work available to everybody.

Again, the devil is in the detail. Yes, Vista has automated backups. So does the Mac. Do you think that this is the same as Time Machine? It's like when Apple added outline font support at OS level back with System 7 saying "hey, Windows has fonts too".

"Web Apps Are Not Applications" Rogue Amoeba



Some developers aren't terribly pleased by Apple's announced option for those wishing to develop iPhone applications.

The original post is simply sarcastic, but this response (strongly agreeing with the original post's sentiment) sums up the poster's point of view:

Apparently if we want to develop for the iPhone, we have to be web developers, and develop web apps. Saying we can develop "Web 2.0 apps using AJAX" is just a nice way of saying "No 3rd party apps and no 3rd party widgets."


Just like if you really want to develop Cocoa apps, you can't write them (easily) in Logo, Visual Basic, C#, or Pascal.

They're right, of course, Web Apps aren't Applications.

  • They don't need to be installed
  • Or kept up to date
  • Or moved from machine to machine when you suddenly need to go on a road trip
  • Or uninstalled when not needed
  • They don't support multiple users either (a) not at all or (b) as an afterthought
  • They can't crash the machine they're running on, only the browser
  • A rogue web app can't format your hard disk, or turn your iPhone or computer into a bot
  • They can be written using a huge variety of tools and languages, many of which are childishly simple to learn
  • "Hello, world" is only a few bytes longer than the ASCII string. There's no 20MB .NET runtime.
  • They don't need to be recompiled to run on different platforms, although they do need a little tweaking.


To allow third party development for the iPhone Apple needs to provide a development and runtime environment that:
  1. is safely sandboxed so that third-party apps can't compromise the iPhone's stability,
  2. has the power to communicate with central servers, and
  3. has some kind of mechanism for distributing and updating itself
  4. and has all the usual capabilities of handling user interaction, drawing pictures, and so on

Safari has all of these things. It runs on HTML, CSS, JavaScript, and Flash, which can be generated by server code written in any language you like, including C++, LISP, Cobol, and Eiffel. Go for it.

Now, Apple could build this from scratch or it could use something that already exists. Since Apple doesn't have, say, a managed code environment like .NET to throw at the problem, the other glaringly obvious option is Web 2.0 etc. Which is what they picked. Sure, this limits what you can do in your application ... I don't think anyone has written a 3d animation package in JavaScript yet, so I guess that's going to be a stretch.

Don't want to sully your hands with Perl -- fine. Code your server in LISP or C++. I don't care. Neither does the iPhone.

Now there are legitimate concerns vis-a-vis the iPhone working when disconnected from the internet, or in low bandwidth situations. Will it be possible to (a) load a "website" onto your phone and run it as a local app (possibly with some local runtime support, such as Apacha/PHP/Perl or whatever?); (b) can you load a page or pages into your cache explicitly and always have access to them? These are perfectly legitimate questions for which I suspect there are good answers.

But whining about being forced to learn HTML/CSS/JavaScript or whatever is just dumb. If you can handle Objective-C, you're not going to have any problems building web applications.