A TEXT POST

the native is better thing again (sigh)

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

  1. the best possible user experience
  2. the best-looking UIs
  3. the lowest-latency responses
  4. the smoothest animation
  5. 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

  1. Is installation part of UX? If so, click link beats app install hands down
  2. 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

CSS3 Transforms and Transitions in most cases are hardware accelerated on iOS (on Android this still is horrendous by and large, but we’re taking web tech versus Cocoa Touch right here, so that’s not at issue for this discussion). These are animated using Core Animation, the same API that CocoaTouch exposes for animations. Sure, if you use JavaScript to animate effects on iOS you’ll potentially get some pretty lousy performance. As you would if you animate objects with Cocoa Touch without using Core 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).

So why do folks spout such nonsense? And why do other stake it up, and regurgitate it? My opinion is that it makes them feel smart. Deriding one technology, while elevating another makes them feel part of a game they most likely really aren’t part of (shipped any code lately fellas?) As I’ve said elsewhere, if your app doesn’t suck your users don’t care if it is built with ADA, or Cobol, or even lowly HTML/CSS/JavaScript. And if it does suck, well, there are 495,000 pretty underused iOS apps out there no? I’m betting some are developed with Cocoa Touch.

But…

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.
  1. cahiggin reblogged this from johnallsopp
  2. zacharyglass reblogged this from johnallsopp
  3. figure-skating reblogged this from johnallsopp
  4. samshull reblogged this from johnallsopp
  5. johnallsopp posted this