Every so often I run into people who tell me that web apps have gotten a bit of an unfair reputation–“they can be just as good as native apps!” they tell me. (Usually the “bad” reputation is the work of some villain hell-bent on walled-garden-domination.)
For example, there are blog posts like this one from Mozilla that try to push the performance problem under the heading of “hardware accelerated CSS/WebGL solve all problems”. Or there’s this post from Sencha were I guess they’re trying to shame Facebook for moving to native by building a web app that is faster.
Well, I don’t know what planet any of these people live on, but this is my planet:
Making matters worse, in many real-world situations in which you want to write a web app, you have to disable Nitro (for sound technical, not nefarious, reasons, contrary to what the rest of the Internet may want you to believe), which means if you thought the first chart was bad, you’re in for sticker shock:
Now, if what you mean by “web app” is “website with a button or two”, you can tell all the fancypants benchmarks like SunSpider to take a hike. But if you mean “light word processing, light photo editing, local storage, and animations between screens” then you don’t want to be doing that in a web app on ARM unless you have a death wish.
Sure, you can design performant mobile web apps if you have good engineers. But do you know what else you can do with good engineers? Things that are actually of value to your customers. If you’re putting yourself into a situation where it takes top-flight talent forking Sencha to render a list, I hope you really want that list.
The desktop market is shrinking year-on-year. Computers are going to be what the hardcore professionals use–Photoshop and Visual Studio will always stick around–but mere mortals who spend all day in Excel or Outlook or Powerpoint are going to migrate to ARM tablets. (Maybe even ARM notebooks.) Some of us like desktop computers for ideological reasons, or like x86 on the technical merits, or whatever. But the truth on the ground is that ARM is rising and x86 is falling, like it or not. Even if we throw out all the smartphones and tablets, you have reasonable research firms projecting things like a 60-40 ARM-Intel netbook split for 2013. And once you throw the tablets and smartphones back in, well, let’s just say that more ARM chips were fabbed last year than all the x86 chips ever made. The sky is falling. The building is on fire.
Whenever you make a platform decision, you’re making a bet. If you’re writing a web app, you’re essentially betting either 1) that ARM doesn’t matter, 2) that ARM customers will just suck it up and use your slow product, 3) that the web browser guys will wave a wand and make it faster, or 4) that the WiFi guys will fix the speed of light so that everybody has a zero-latency always-on connection to an x86 chip. Unless you’re writing Photoshop, or writing an app with two buttons, I think you’re nuts.