Archives / Search ›

I couldn't resist - tonight is our first real snowfall I've seen this winter in Illinois - I was away last time. Big difference from the freezing rain/sleet that pelted everything in sight last night (and it hurt!) It's so beautiful looking out the window, I don't want to sleep, but I must.

I'm too far behind with non-Net stuff - house, car, music, family, etc. Nothing catastrophic is wrong, but I fear it will happen if I don't start paying more attention to the world outside my computer. Until I'm caught up I'm reducing my online presence - including this weblog.

Steve Zellers: “The big loser in Mac OS X is the file system fragility problem.”

Yup. Cocoa makes things easy for the programmer, at the cost of fragility and poor error reporting: I still can't believe there is no result code or structured exception handling in Cocoa at all. Zip, zero. This is a huge failing: if the framework can't return specific errors to the programmer, then how can the programmer present intelligible error messages to the user? These are simple things like distinguishing 'file not found' from 'permission denied' from 'disk full', which Cocoa completely hides as a single boolean success/failure value despite their presence in the underlying BSD APIs.

The old Mac philosophy was to make things easy for the user, at the potential cost of pain and suffering for the programmer. I don't mind the pain and suffering all that much—I just spent the last five hours trying to fix some threading/corruption issues that I still haven't isolated with a (Cocoa) application, but I'd do it a hundred times over if it meant giving users an application that behaved stably and made sense.

As a programmer, I'd prefer the best of both worlds: an API that's easy to use, but robust and predictable for the user.

The big loser in Mac OS X is the file system fragility problem.

Got a tentative go-ahead on two PhD thesis ideas from my advisor today. I'm still way off the mark as usual, but at least I know what to do to come up with a concrete problem to solve.

‹ Newer Posts  •  Older Posts ›