Hacker News new | ask | show | jobs
by jjnoakes 3525 days ago
I'm not taking a side here, but I would like to advocate for a fair comparison, since you have skipped all of the trade-offs in the other direction.

For example, web apps are often easier to discover, easier to update, easier to manage (since you only have one version in the wild you have to handle), easier to launch (especially for first-time users), easier to use from different platforms, more secure (debatable, but since the browser has huge companies working to keep it secure, and your native app that's just opening sockets doesn't, it probably is true), ...

There's pros and cons to both sides. Just framing the situation as "my side has these benefits, therefore there is no reason to consider your side" is not an honest discussion.

2 comments

> easier to discover,

How can that possibly be true? A web app can appear in a search engine. A native app's website can appear in a search engine and in a platform App Store.

> easier to update,

because "clear your cache and reload the page" has been said by no frustrated support/technical staff, ever?

> easier to manage (since you only have one version in the wild you have to handle), Except when there are cache issues. Or when you have multiple servers and need to upgrade them without downtime. Not to mention all the stuff required to host your app needs to handle enough scale to load not just any potential server side data but also the entire ui, possibly every time someone loads it (opposite of the cache problem above). Must be easier though, I've never heard of any web apps being unavailable because the servers were overloaded.

> easier to launch (especially for first-time users), How is typing a or clicking a link easier than tapping/clicking an icon?

> easier to use from different platforms,

If your browser on your platform is supported. And you have the right version.

> more secure (debatable, but since the browser has huge companies working to keep it secure, and your native app that's just opening sockets doesn't, it probably is true)

This is a joke, right? Did you suddenly forget all the huge leaks of massive amounts of information from hacked web apps? Pretty much no web apps use local storage exclusively. So your attack surface is not "the browser", it's the browser, the network stack, the network itself (see: ddos on Dyn, Comodo/WoSign bullshittery to name a couple from the last month alone), your server host(s), your server os/stack, your server side app logic, your server side db/storage stack.. Do I need to go on?

> How can that possibly be true? A web app can appear in a search engine. A native app's website can appear in a search engine and in a platform App Store.

Because when I come across a web app in a search engine, I can click it, use it instantly, evaluate it, and decide to stay or leave, all within seconds. No checking if the app I found supports my platform, no click-through to my native app store, no download and installation process, no delay, instant feedback.

> because "clear your cache and reload the page" has been said by no frustrated support/technical staff, ever?

Not sure I follow. Are you asserting that native apps are easier to update than web apps?

> If your browser on your platform is supported. And you have the right version.

The combinations are smaller than the combinations of operating systems and phones one would have to worry about.

> This is a joke, right?

Is this a good way to have a productive conversation?

> Did you suddenly forget all the huge leaks of massive amounts of information from hacked web apps?

Do you think only web apps communicate with servers?

> Not sure I follow. Are you asserting that native apps are easier to update than web apps?

I'm saying the processes are more robust. You either have the old app or the new one. You're never left with half of each, and you aren't beholden to random caches about whether or not you get the update.

> The combinations are smaller than the combinations of operating systems and phones one would have to worry about.

That can't possibly be true. Most platforms have more than one browser available, and with the exception of Microsoft, browsers don't have a "use x.y.z version rendering" like platform sdks.

Edit: unless you're taking the approach of: it works with this specific platform device running browser X, so it must work with all others running X. In which case, why not take the same approach to native apps?

> Do you think only web apps communicate with servers?

Where did I say that? Nowhere.

Web apps must contact servers and any remotely useful app will have all its storage server side.

In addition, web apps rely on servers to deliver the very thing the user sees and interacts with. UI spoofing has become such an issue browser vendors are reverting back to make it harder for web pages to present native looking dialogs etc.

Native apps can operate in a client server model, but a great deal of them don't need to because their use case is for local work, and even those that do, are merely transferring data over that channel. They aren't dependent on the same channel for the very interface the user sees.

Claiming that web apps are more secure is the most ridiculous thing I've read in a long time.

> I'm saying the processes are more robust.

I disagree. I think updating a web app is vastly more robust. You update the source, and the only possible issue you have is caching and platform compatibility (the former is a real issue, the latter is mostly alleviated by decent testing).

Updating native apps (due to the next point) is much more problematic because the number of platforms is much higher.

> Most platforms have more than one browser available

Yeah but you can't multiply the number of browsers times the number of operating systems, because Firefox on Linux and Firefox on Windows and Firefox on Android and Firefox on MacOS are (for 99% of the apps) the same target.

> Claiming that web apps are more secure is the most ridiculous thing I've read in a long time.

Are you interested in a real discussion? Or just posturing?

Thanks for this. I was meaning to respond to my own comment but you made the points for me. It definitely goes both ways.