Apple’s Photocasting. First Make It Work. Then Make It Work Better.

Lots of people, including Tim Bray have been commenting on the fact that Apple’s new photocasting feature in iPhoto does not extend and implement RSS in the most elegant of ways.

Now, of course, Tim is more than qualified to comment - it’s undeniable that he has an excellent understanding both of what makes “good” XML and also of XML syndication formats. That’s far from being true of all the commentators, by the way, but that’s by the by. Tim finds Apple’s implementation hard to understand. I think I can see where the Apple developers were coming from.

What they wanted to do was make their software work. They built their implementation; tested it in a few popular environments; found it works; and released it.

So, from the points of view of Apple, and many users - the software “works”. From the points of view of people examining the implementation detail, and people finding the software doesn’t work for them - then the story isn’t such a happy one.

I agree it’s not ideal; however, I would assert it’s not a critical problem. Why? Because what we’re talking about here is implementing support for a standard. The clients that implement the standard are not going to break - they will continue to support the standard. So, all that will happen is that Apple’s software will get better over time. And as it gets better, more clients will be able to read it.

Implementing support for standards is a bit like writing high-performance code. In the case of the latter, the mantra is - first make it work, then make it work fast. I have a new mantra for the case of the former i.e. implementing standards - first make it work, then make it work better.

Sometimes it’s not easy to get your head around all the implications of implementing standards. Five years ago, I wrote an Open Source SAX2 driver framework, which enabled the generation of standard SAX2 events from non-XML files. At the time, it was a pretty cool idea - using the framework made it super-easy to enable event-based parsing on traditionally hard-to-parse flat file formats in a standard way. It wasn’t perfect though. Check out the code of the main abstract class, and one concrete implementation. There’s plenty to criticize there (I even did some criticism myself in the class JavaDoc!). But it worked pretty well. Over the last five years, others in that community have improved the code (browse the CVS for diffs). My point is: if a development team’s first attempt at an implementation isn’t perfect, I think cutting them a little slack is sometimes in order.

And, if you think I’m being overly nice here… you’re right! We’re in the process of implementing some standards ourselves - including RSS and Atom - on a new project, aimed at consumers and corporations alike. I’m sure our version 1 will be far from perfect too - and I really hope people cut us some slack!

Comments

  1. Asam Bashir wrote:

    Perfection is a direction rather then an end. Nothing will ever be perfect because individuals will define it in different ways, the key is to direct the users towards towards perfection.

    Seen Xen and the art of Virtualization? Apparantly, this is the missing link that Apple is going to implement in its next update of Darwin in the same way FreeBSD 7 is being modified to do the same.

    (www.cl.cam.ac.uk/Research/SRG/netos/xen/)

  2. simon wrote:

    The Xen 3.0 looks like it could be pretty good, I have to say. I’m assuming that the support for Intet VT made it into the final release (which means that it should be able to boot Windows).

    I haven’t seen any comparisons with Xen 3 and VMWare (or Solaris Containers or User Mode Linux), so I don’t know how they all compare.

  3. Asam Bashir wrote:

    Not sure if VT implemented on the core duos that are shipping, anyway VT nothing to do with booting in Windows, thats to do with the new EDI Apple is using instead of BIOS, again that’s not a problem since their are already Wintel machines with EDI. This isn’t what Mac users are bothered too much about since we don’t want to ever boot Windows, just run it under Mac OS X, since we NEVER reboot apart from the times an update requires it.

    Also explains why Apple needs to roll this out slowly, they need to have Xen working as the virtual machine monitor before you can even think about VMWare. Apple could make its own virtual machine monitor but I think it will support the Xen and BSD community as well, so needs to implelment it first in the open-source core of Mac OS X, which is Darwin. Apple very strong in supporting open-source as it has shown for Open-GL. Whilst Linux users dream, Apple and Mac OS X just does.

  4. Asam Bashir wrote:

    (www.cl.cam.ac.uk/Research/SRG/netos/xen/performance.html)

  5. Asam Bashir wrote:

    (arstechnica.com/reviews/hardware/imac-coreduo.ars)

  6. simon wrote:

    Intel VT is to do with *Xen* being able to boot Windows. Prior to Intel VT, Xen was only ever going to be able to support Linux. At least I think that’s right. I haven’t looked at Xen for at least a couple of years.

  7. Asam Bashir wrote:

    Yeah sorry for confusion, thought you were talking about booting Mactels directly into Windows as primary OS, which it will be able to do once someone has figured how to drop into the EFI command line.

    Of course, VT support needed for running Windows as a virtual machine running at native speed.

  8. simon wrote:

    Actually, on the topic of the current Mactels booting Windows, has the question been properly resolved yet? I hear conflicting opinions on this topic.

  9. Asam Bashir wrote:

    No its not confirmed yet but really its just a matter of getting a Mactel in your hands for long enough to play with. I think they’ve only been shipped to developers so far, and MacBook Pro showing shipping after 15 Feb on Apple Stores.

    There is normally a key combination to drop into the bootloader. In Open Firmware, it was hold cmd-opt-o-f but this does not work on the new EFI machines. Holding these key combinations in PPC Macs drops you into Open Firmware command line where you can then fiddle around.

    Basically, it will happen when Mactels start shipping and people get their machines to play with.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*

*