Web apps vs. native apps Original: http://blog.superfeedr.com/webapps-or-die/ # Original post Facebook finally surrendered to Apple and rewrote their app as a full native iOS app, rather than using Webkit’s Webview. This may look like a good news to all the Facebook junkies, but it’s actually a very bad news for all the web lovers, because it slowly pushes the false idea that native apps are better and that HTML5 apps can’t reach that same level of performance. Why is it bad you ask? Well, because the thing I love the most about my little phone is its data plan, the fact that I can access the web… with no one acting as a filter! No watchdog who could decide what app I should use or not. Unfortunately, iOS apps are a trap! Not only the architecture, the language or even the layout are fully controlled by a single entity, but also what app can be installed or not as well, and finally, even the price at which they can (or can’t be sold). A couple months ago, the whole internet roared about net neutrality, thinking that telcos where to feared, and now that Apple’s doing just that, everybody is silent? The Twitter principle (it probably predates Twitter though) is clear: when you build your business on a proprietary plaform, there IS a day when that platform comes after you, shuts you down or even copies you. I get the valid argument that eventually users to decide, and they wanted a faster Facebook app. I wanted a faster Facebook app. But who said that to be faster it had to be full native? Apple! Remember, Apple wants Facebook to be their b****, and the best way to do that is to make sure they’re not satisfied with the performance of their WebView. Did I suggest that Apple may be purposedly slowing down things? Did I suggest that Apple may not have offered all the HTML5 features to this view to make it not as great for the user? I did, because if I were Apple, I’d do just that. There are ways to build apps on the web that are as performant as native apps: browsers have apps/extension. These are coming from the desktop to the mobile platforms as well. We will have a great battle between the natives (iOS, Android) or the web (Chrome, Firefox). I hope you’ll chose the web. # Answer This is a very simple, binary view of the Web vs. Native debate, and if the Web people keep thinking like this it will go nowhere. We have to admit that the "Web Platform" is a technical mistake. Stop thinking that we will have really fast applications in a browser. Seriously, look at what the Web used to be: a big library of interlinked documents. We have stacked more and more stuff on top of that: images, data entry (forms), presentation (CSS), scripting (JavaScript)... And now we want to make it the platform for applications. Can't you see this is pure madness? In the early 2000s we were talking about accessibility, standards and the separation of form from content. Now we are making bloody games in the browser, where has the content gone? Do your Web Applications run correctly in Lynx? Do they work for blind people? Of course not. Even some Flash websites were more accessible that the current JS infection that the Web has become, and look at the proprietary vendor extensions debate... How could this happen? Now maybe we traded Web 1.0 for something else then, maybe it is is a good platform for applications? NO! Of course not! Every single application embedded in a XML-ish format for documents! A half-assed scripting language that is clumsy with things like parallelism and binary formats in lieu of assembly! A security model designed for anything but generic applications that is sacrificed every single day on the altar of the latest fade (WebGL, WebSockets...)! One of the worst supports for HTTP ever (seriously, have you tried to make a clean REST client in JavaScript)! Really, open your eyes, this madness has to stop. There is already something like a "browser for Web applications", it is called an operating system. The one problem that the Web solves well is distribution. One URL = one application, seamless updates. It is way, way easier to backport that to the world of applications than to rebuild the OS in the browser. The other thing is fragmentation / compatibility but 1) it's failing on the Web and 2) there have already been much better (although far from perfect) attempts to solve it (for instance the JVM...). I am not saying we should learn to stop worrying and love the App Store. I am saying we should make Apple (and the others) allow us to do things correctly, or just admit they are not making small computers but small TVs and move on. Because if we don't, we will destroy personal computing, and we will destroy the Web we love. Look around, it has already begun. # Ensuing Twitter discussion (SF: Superfeedr, CW: me) SF: The web is not perfect, but nobody controls it. Apple controls _everything_ about the native apps. We had the same debate about Twitter less than 2 years ago… and where are we now? But you're right, the destruction of the web we love as begun: silos everywhere: I can't iMessage my friends b/c I use Android. CW: This is a different problem. Frontend (client) vs. protocol or backend service. SF: Tehcnically, yes, different. But business wise it's the same issue: you're giving control to someone else out of laziness. CW: You cannot message friends that use Facebook if you don’t, the fact that you use the native or Web app doesn’t change that. SF: Agreed, and that's another problem, at another technical level. CW: OTOH you can message friends that use Jabber from any native or Web client... SF: Well, I could also send them snail mail. It doesn't matter what I could use, what matters is that someone controls it! CW: If Apple decided that the browser will not execute JS unless it is signed by them what would happen? SF: The web would happen. Bilions of people visit websites with unsigned JS every single day. You shouldn't solve a technical problem with a business solution. Technical solutions solve technical problems. Unsecure JS execution should be solved technically. CW: Billions of people used to visit websites with Flash. SF: And? Again, you're mistaking tech problems for business problems. CW: No, I think you are. The main reason “native apps are evil on iOS” is Apple’s distribution policy. Do you really think security is their problem? *Making money* is their problem. SF:exactly my point. Its apple problem to make monry , my problem is to not compromise the web. CW: If people start to use Web Apps instead of the App Store they will find a way to make people stop using them or pay for them. It’s exactly the same thing: they don’t allow other browsers than Safari so they control the “Web on iOS” platform too. SF: we sad its a good thing? This is also bad CW: So yeah, it’s all fundamentally a business / political problem that you’re trying to solve with a poor technical solution. ("poor technical solution" here refers to Web apps, not Superfeedr!) SF: I'm sure well talk again in a couple years from now... also I may be mistaken but the web ( tech solution) predates iOS and the appstore (business solution)... CW: Not sure I understand you: solutions to what problem? What I say is that tunneling apps into the Web (like you tunnel a protocol into another one to bypass a stupid firewall) is a bad technical “solution” to the business problem: “Apple wants to control application distribution on iOS”.