Currently, standards are advancing rapidly in the area of mobile Web applications as part of the emerging HTML5 platform. The goal, backed strongly by Google and Mozilla, is for websites to be able to do anything that native apps can. If this happens, native apps may no longer be necessary or desirable – right? Would the considerable advantages of the mobile Web (its near-zero footprint, updates performed on the server, and support for all platforms) convince developers and users to target the Web instead of the iPhone and Android? And would Apple allow this to happen?
This utopian dream has existed in one form or another for at least two decades now, and I wonder if we’ll ever get there. It’d be nice to be freed from the clutches of Google Play and the App Store, but it’s a long way off, still.
1. I just can’t see how these web apps are better then native apps. Weirdly scoped. Inconsistent (where is the menu?). Written in the worst programming language in history, or translated into it (I have hard time figuring out which is worse). Inherently insecure. And, of course, “your browser is not supported, use usual suspects.”
It is very much like it was in “portable” Java applets era, only worse.
And of course they are sold under magic sause:
…into clutches of advertisers? I doubt that.
2. There is Unix shell, which allows you to do anything you may ever want. Don’t like typing? Ok, there was NextStep with its wonderful system of services and linking; not as good, but workable. NextStep doesn’t run on your phone? Ok, on mobile OSes you may select applications for roles, so that you can take photos with camera app you chose, browse your images with your gallery, etc. Limited, but workable. But The Web doesn’t have that: all you get is an array of “share” buttons and whatever developers of this particular web app cared to give you. Want to filter your photos? Out of luck! Want to apply filter from that app, and another from this app, and then send through that app? You must be kidding! And you must suffer these constrains just because you can’t install Aptoide? Oh, dear.
3. All you do remains on permanent record. Every click contributes to your profile. All your data is in the cloud, studied. You may be provided with a big red button “Nuke all traces,” but it will only contribute another bit to your profile.
Sure, some native apps share some of these problems. Most popular apps actually share all of these problems. But you can cherry-pick apps that don’t, and even flash a custom firmware with no spying and adequate security policy. With web apps you don’t have this choice.
But what am I saying, all heil The Web!
Possible?
Yes and No, yes, because something akin to Zimbra desktop app, a web app basically but was designed to work offline very similar to a native application. Now the similar Zimbra web app client can be used offline too. This is just one example, but do not ask me for the speed difference, native app wins by default.
IT is a no, because regardless of the native speed of both desktop and web app, there is always the network latency in the equation for web applications, whereas in native application, the limit is the internal speed of your SATA drives and corresponding cables.
https://hacks.mozilla.org/2015/11/offline-service-workers/
Service workers feel like a hack, when one looks at the workarounds they do with web requests versus what implementing the same features on a native app would look like.
Assuming ‘web apps’ would ever reach the quality and ability of ‘native apps’ they would be tied to the same (store) restrictions, they are just as vulnerable to malware as ‘native apps’, so they need to be behind the same permission/review model.
At this point a ‘web app’ is just a native app written for a not very capable sandbox. Nothing special about it, just a lot less features and more brittle.
The dream of platform independence is dead. Even if all apps are written in (HTML)/JS/CSS they still will be tied to a particular browser/store.
I really wish it was not the case, but I don’t have high hopes…
Example: Signal Desktop client.
The problem is that there are standardS. Not one. Many. Many of them de facto. Looking at job listings you get employers that want people to be versed in the Javascript framework of the week that has somehow managed to reach version 2 without many people noticing, but with the feature set and usability issues of a 0.9 release.
Then because the framework was created purely because they thought they could do better than another framework, simply because they are starting afresh, but without understanding why and how the previous framework became a mess, the next version will be a complete rewrite and incompatible with the old version, meaning developers have to go chase another framework with more stability and a dedication to keeping stable (which is never).
You do know that the problems you describe are not confined to Web and Javascript frameworks, don’t you ? Anyway, it seems to me that on these particular fields the exacerbation of “not invented here” and “lets start fresh without too much research and thinking” have reached a whole new level (many orders of magnitude worst).
They don’t happen as fast in other environments. You can rely on Java and .NET to stay reasonably the same.
Hi,
Once upon a time there was a networking protocol that was mostly only designed for file transfer (HTTP) that happened to be quite bad for file transfer (e.g. poor support for proxy caching, no compression, no way to determine if the file came from who you think it did, etc); plus a file format that was mostly designed for static documents (HTML 1) that happened to be quite bad for static documents (compared to alternatives like postscript that were 10+ years older).
The entire modern web can be described as 20+ years of adding poorly thought-out (and often competing/incompatible) hacks and extensions onto a steaming pile of vomit, to make it “less unsuitable” for things it was never designed/intended to do in the first place (and “less unsuitable” for things it actually was originally designed/intended to do); while adding even more layers of puss at both ends (e.g. frameworks) to cope with problems caused by adding the poorly thought-out hacks and extensions.
– Brendan
Yeah, I think if we’re going to do something like this, we should do it with some other than HTTP/HTML/JS.
Unlikely for HTTP and HTML but replacing JS is possible.
More and more is getting tunneled through HTTP (because it’s easier than holding LAN administrators responsible when they cause trouble and because the whole Internet is built on the principle of “easier to ask forgiveness than permission”) and it’s harder than ever before to justify breaking HTML-provided SEO and accessibility as you do with something like a whole-site Flash applet. However, the WebAssembly effort should provide a means to compile anything for the web as long as it’s calling the right APIs or has them shimmed.
Edited 2015-12-31 06:01 UTC
Maybe things are better now but this was Apples approach in the first iPhone and didn’t work which is where the App Store came from.
Especially in places with weak internet access this will be a mess.