Ancient Wisdom
I don’t trust any “SDK” made by a company that won’t use it themselves…
This is why I’ve never tried to program for any of the many, many systems Microsoft has tried to foist off on us over the years (Direct-stuff, Active-thing, C-sharp, .Net, Live-whatever)—because they don’t fucking use their own stuff. They write demo apps in them, sure, and tell us that their frameworks are going to be the basis of the next generation of wonderful applications, but in the end Microsoft’s OSes and their Office apps are just a bazillion lines of old C code, and the programmers who got duped into using Microsoft’s new untested frameworks realize that, surprisingly, untested frameworks never work.
Wil Shipley is taking Apple to task for their (possibly temporary) advice that developers develop “iPhone Applications” in AJAX. Note the quotes: in the nineties, I would have used my fingers to make that annoying “I’m being sarcastic” gesture, because a Safari application is
not an iPhone application. Not that there’s anything wrong with web applications. Except there is something wrong with web applications on a device that willfully refuses to remember your identity.
Sorry, I’m rambling.
The point is, frameworks and libraries and toolkits and programming languages and SDKs are best when they are
extracted from actual development projects, rather than manufactured out of whole cloth from the imagination of someone who
thinks they know what will work and what will not.
This is no different than what works and doesn’t work for other kinds of software. The whole point of iterative development is to put working software in the hands of users so that they can guide its development and design from their experience, rather than from guesses and intuition. It’s an
empirical approach.
(The most glorious example of this principle is a
self-hosted programming language: when a language designer “eats her own dogfood” by using the language to build the language, the result is nearly always powerful and elegant. Decades after their invention, programmers still rave about Lisp’s
metacircular evaluator and Smalltalk’s UI framework, both of which are written entirely in themselves.)
Now, AJAX in a browser is not exactly a figment of some Apple engineer’s imagination. For a very popular class of application’s, it’s
the cat’s pajamas. And if you are building such an application, you probably want to make sure it works well on an iPhone.
But what if you are asking yourself,
Self, what tool should I use to make an application for iPhone with the same capabilities and look and feel of Apple’s own applications that ship with iPhone? I think the answer will be,
Do as Apple actually does, not as they say.
And likewise, when someone suggests an SDK or a framework or any other tool, and they tell me how gosh-darn wonderful it is, my first question will always be,
What are you using it for yourself?
It’s ancient wisdom, reeking of conservatism and cynicism. It doesn’t sound daring and adventurous. But boy, does it work.