Once again today, John Gruber asserts a number of intrinsic benefits of “native” (by which it appears he now openly means apps developed with Cocoa Touch and Objective -C) over web technologies for developing applications (sorry to be getting all broken record on you about this, but a meme repeated without opposition becomes the truth).
my interest lies in having the best possible user experience — the best-looking UIs, the lowest-latency responses, the smoothest animation, the most elegant designs
Can you count the assertions here? If you said 4, you’d be off by one, there are 5.
In essence Gruber asserts that native apps, specifically on iOS, give us, intrinsically
- the best possible user experience
- the best-looking UIs
- the lowest-latency responses
- the smoothest animation
- the most elegant designs
Against my better judgement, let me address these one by one.
The best possible user experience
I’m guessing the assertion is that because the next 4 factors are all intrinsically better in CocoaTouch apps, then you automagically get the best possible user experience.
To counter this
- Is installation part of UX? If so, click link beats app install hands down
- Is upgrading part of UX? If so, click link, or open off home screen just like a native app and have an app transparently upgrade to the latest version with no user intervention seems to beat the app store shuffle once more
And so on and so forth.
the best-looking UIs
I could argue that this and point 4/5 (“the most elegant designs”) are close to the same thing (though I’m guessing Gruber may be referring to interaction design, application architecture and so on, soI’ll address these separately).
I’ve long since pointed out the logical fallacy of the assertion of CocoaTouch apps having the best looking UI. All you need to demonstrate the fallacy of the assertion is to point to a single web tech based app that is better looking than a single CocoaTouch App - which is not even worth attempting it is so obviously true.
Apps built with CocoaTouch and web technologies have the same screen resolutions, color palettes, and so on available to them. It’s up to the designer to use them to create the best UI. There’s nothing associated with CSS, HTML and so on that limits the designers ability to create compelling user experiences.
the lowest-latency responses
While we typically associate latency in applications with network performance, I’m guessing Gruber is referring to responsiveness to user input. Is this a huge concern for app developers? Not that I’m particularly aware of. I’d be more than interested in seeing real world evidence of the challenge this present developers. BTW, this is a new addition to the standard list of intrinsic native benefits (we’ve dropped a few like offline capability over the last couple of years, as they have become non issues, or as folks have woken up to the fact that they never were in the first place).
the smoothest animation
the most elegant designs
This is more or less addressed above. But it lies at the heart of my objection to Gruber’s nonsense (and it is nonsense).
Over the years as a developer, I’ve seen many development environments derided (Visual Basic, Real Basic, heck just about any kind of Basic). But you see it with the proponents of static versus dynamic languages, strongly typed versus loosely typed languages.
But these are the positions of fan boys, by and large. Choices of languages and development tools are made for many, often complex reasons - economic, cultural, structural, legacy. You’ll find examples of crappy apps built with these technologies as proof of the assertion that any app built with these technologies will be crappy. The logical failing, along with the rhetorical dishonesty of that line of reasoning should hopefully be obvious to any sentient being.
The idea that simply by choice of a language, development framework or tool the work of any developer or designer will be better than the work of any other developer or designer choosing a different tool is simply ridiculous. But that’s what Gruber’s (and the proponents of “native (by which they almost invariably mean Cocoa Touch/Objective-C) is better” are asserting).
But let’s for a moment assume everything Gruber says is true. I’d still advocate and use web technologies over Cocoa Touch. Because one set of technologies opens up the opportunities of the vastness of the web, and almost every screen (mobile, table, desktop, TV, dashboard, …), today, and into the future (hold that thought). And the other locks you into the silo of a single vendor, and the whims of their platform and business decisions.I’ve got commercial code running I developed more than a decade ago. Take a long view. Where do you want your code to be in 10 years time? And how much control do you want over it? That’s realy the issue here.