The web app developer's lament

The ‘Safari is the new IE’ rhetoric highlights the pipedream at the heart of the universal web app vision.

I said this here thing on Twitter yesterday (edited for clarity):

Not a day passes without a WebView, Safari, or Chrome tab crashing on one of my devices. Usually it happens several times a day. The core problem with visions of a future ruled by web apps is that, of all the platforms I regularly use, the web is the least usable and the least stable.

Speed, stability, features—pick one. If you want to make code more stable you stop adding features and prioritise correctness over speed.

And we’ve known this at least since the seventies, when Fred Brooks wrote The Mythical Man Month.

(You all should read The Mythical Man Month. That it is, still, one of the best books written on managing software development and project management should terrify you.)

It doesn’t matter whether I’m on iOS, Mac OS X, or Android. It doesn’t matter which browser I use. The web is the biggest source of day to day software instability in my work and my life.

Browser vendors are entirely to blame for consistently prioritising new features, new APIs, and performance over bugs and stability. All browsers suck.

Instead of talking about how to improve the overall stability (and thus viability) of the web app platforms, people prefer to slate Apple for a couple of crap Mobile Safari releases. (And it really has been just a couple of releases: iOS 7 and 8.)

The ‘Safari is the new IE’ is a lazy rhetorical tactic for implying that Apple is maliciously holding the web back without having to back it up with any facts.

The funniest part of all this is that web developers seem to have been living in a cave for the past year because they keep missing the likeliest explanation for Safari’s problems: the entirety of iOS 8 is a bit of a lemon.

The simplest explanation for a crap Safari release is that Apple has been having problems maintaining software quality in general.

Safari is likely to be hit hard by this since it’s a large and complex project—tightly integrated with the rest of the platform—that uses a lot of the OS’s APIs.

What to do?

Casting Apple as the villain trying to kill the web and spinning conspiracy fantasies isn’t productive.

Instead there are more constructive things we can do to improve the web. (You don’t need to browse far to see that people are already doing all of these things.)

Finally, and I’ve had to learn this the hard way1, don’t develop an antagonistic relationship with platform vendors. Doing so makes people defensive and shifts their attention away from the problems with their platform.

Consider this analogy:

Your son, otherwise a sensible and well-meaning lad, has gotten himself a total moron for a boyfriend.

If you point out that the idiot your son is screwing is indeed an idiot, your son will take it as a personal attack and his attention shifts away from the dumb boyfriend and onto you. “Why are you always so mean?! I hate you!” ::slams door::.

If you go the passive aggressive route of subtle criticisms and jibes you create friction in your relationship with your son and you push them away. It has the same effect as pointing out the obvious, albeit slower, filled with more bitterness, and leading to higher therapy bills in the future.

The only path you can take is to trust your son. Consistently give the best advice you can give and behave with integrity yourself. Your offspring will eventually get over the fact that the boyfriend gives great head and the boyfriend’s idiocy will begin to grate on him.

And, most importantly, you need to keep open the possibility that there isn’t anything wrong with the boyfriend and that it’s you who is being an idiot.

  1. That bridge, I haz burned it many many times. Seriously, don’t do this. Don’t make my mistakes.