If you go into an application on your desktop PC like Spotify or Steam, the application has everything it needs to run on your computer, this would be a tier 1 system or sometimes a native application.
You open your browser of choice, go to amazon.com and search for "Shadow of the Colossus PS4". Now you are looking at a tier 2 system, you are performing an action and your computer is a part of that but it can't complete this action without the help of Amazon's servers, 2 part's, 2 tiers.
Now you are done shopping for the day and you are going to play some mario knock off flash games on your favourite ad spam website. You use your computer(tier 1) to connect to the website(tier 2), then you click your favourite crapware game and you are taken to a small flash app running within the browser(tier 3).
But here's the trick, tier 3 is now being abandoned for tier 4, 5 and 6, separating the business logic alone and adding low level compute like auto-calculating shipping charges or tax based on your location, even basic things add more complexity and the tiers aren't like an elevator going from floor 1 to 10, stopping at each floor and up and up, the tiers are tiers, they intermingle and interact with each other, you don't have a functioning system without all the tiers performing their job, tier 6 isn't going to tell you what the tax costs are till tier 3 finds out what your location is, meanwhile tier 2 can't access custom tabs in the database till tier 6 accesses the database and so on and so on.
If you are doing something very simple you can often get away with it without taking a huge hit in performance. Adding complexity to the chain dramatically increases your problems. If Candy Crush can run on a $100 smartphone you'd need a desktop PC worth several hundred dollars to get the game running at the same resolution and detail if it was a web app. I mean here's the OFFICIAL website for king.com's candy crush that will run in your browser:
https://king.com/play/candycru...
I have a i5-6600K overclocked to 4.5GHz and every time I put a line together in my Vivaldi browser(based off fairly new Chrome build) the damn thing slows down and lags, whereas with my 2 year old Galaxy Tab S2 that I got for $200 when they bought the Tab 3 out and did a clear out on samsung.co.uk on the older model, I mean it pretty much does some weird popping stuff on the tablet that I don't even see on the tablet because it blurs everything together when it has to process the changes between the 60 billion layers.
This whole spiel really isn't new, this shit started back around 10 to 15 years ago with Ajax, it reared it's head again around the time iOS was exploding circa 2007-2008 and thanks to Apple's annoying way of doing things, it was very difficult for developers to maintain apps for iOS as well as Android and/or Windows Phone. The web app was back in business baby, native apps were dead and hopefully Apple too. Eventually everybody ended up making their own App store so.. yeah maybe a bit of a misfire there.
The issue is very very simple, when you add a layer between two things, that layer takes up space and increases the distance between two objects, this isn't some programming flaw from 1962, this doesn't even require understanding of low level code or computing to process. You put ten layers between something and distribute it amongst a bunch of computers in different locations it is quite possibly going to run a little worse than just running the application right from your local storage array right into your computers memory and your CPUs cache, you could be travelling faster than Superman but speed is distances bitch, light may think it's the fastest thing in the universe but if that was true then why hasn't light got to the edge of the universe yet, fucking noob-light. I'm jesting of course but there are no programming tricks to overcome hurdles like the distance between two computers as opposed to having both parts on the same computer, the best you can do is try and make the gap as small as possible and then find ways to make the difference negligible, wait isn't this stuff supposed to make life easier...
By the way the dude that you responded to, he didn't go far enough. WPAs can access: Bluetooth, Geolocation(they don't have any geofencing last I checked so they can ALWAYS read your location and there is no deny there), in fact here is a table of everything that WPA can do as of February 2018:
https://cdn-images-1.medium.co...
It wasn't what I was looking for but beggars can't be choosers. Suffice to say it has a LOT more access than any browser, by the end of 2018 the developers and fans of this project are on target to give this application all the access it can get on a smartphone/tablet without having to root the phone and download SU, it doesn't only do a LOT of stuff browsers can't, it is damn near doing everything it can do.
Microsoft are talking all that shit about security and how Windows S will protect the casual user from malicious Win32 programs, you know because the average user downloads and spends a lot of time on Win32 exe's named after terrorists, and of course the Edge Browser and the Bing search engine are mandatory too, because Google is probably some haxxor word and what the fuck is a chrome anyway. Then they turn around and say they are going to add a million webapps, apps that have the kind of access to your devices that would make the CIA paranoid. Webapps are developed because they are cheap for the most part, it's a lot easier writing code when 90% of the work is done for you after all. They think adding a million webapps to the store is the solution but they insist on Bing and Edge to protect you?
I still like Windows 10, though I'm starting to reconsider things but that's just bullshit and Microsoft knows it. Nadella is such a POS, can we have Ballmer back now, it's better to die with dignity than to live like a cunt.. said Shakespeare. PWA are good because they are an option, options are good because they give you more possibilities but the entire reason for the existence of PWA has to do with man hours for making and maintaining code which translates into money. It's like going to Starchucks, and getting a mocha lartay, I mean fuck it's probably not going to kill you but you aren't going there for the customer service.
I remember some years ago when they started adding these tools to browsers and people were like "all game development will be done in the browser, why even bother with PC's and their expensive GPU's when you could just drop into a game of Half Life 2 with a click of a button on any computer in your house, hardware is dead guys. Then 2 years later Apple is selling an "eyephone" that costs 800 dollars, or 900 if you want the extra shiny back. Also it uses a piece of toast as a processor and the screen is so low resolution they call it retina because you can't see the gap between pixels when there's only one pixel. I'm going to file this one with the Linux desktop, the NT supercomputer, the many-core CPU that replaces GPU's and all those DRAM alternatives that were supposed to kill DRAM within a decade of it being released with superior technology that would eliminate the gap, still waiting on super-RAM a few decades later but I'm patient, plus everybody knows selectron tubes are due a comeback, it's been a 70 year comeback but time is nothing if not persistent. I mean I guess a ray of sunshine is that by the time Half Life 3 comes out web apps should be able to play it in browser at native speed. It'd be one solution to the GPU massacre at least.