Creator of https://rpgplayground.com here, which features game tech running in the browser, so I definitely disagree with this statement :).
Here is a list of benefits that I see:
1. One build runs everywhere, Windows, Linux, Mac, Chromebook (used a lot in schools), Android, iOS, I even have someone running it on an XBox web browser.
2. No download and install, so barrier to entry is way lower. Also great for locked down systems. "Wanna play my game? Play it here"
3. Everyone runs the latest version.
4. Easy update scheme: I update the website, and everyone gets the latest version.
5. Not giving away % of revenue to platform owners.
I code in Haxe, so I could easily build a native version for any platform. But I am a one man shop, and maintaining all those versions and updates is way more work.
The world is all about trade-offs, and claiming PWA's are either superioir or inferior is a very naive way of decision making.
This also exists outside of web development (e.g. Qt)
>2. No download and install
The client must download the source code, same as any other platform. The installation part occurs when the user had to first install a web browser before being able to use your software. Outside of a monstrous application, installation is almost instantaneous these days.
>3. Everyone runs the latest version.
Nothing new here. For instance web browsers: They download in the background and silently install upon next restart. Also, running the latest version isn't necessarily an advantage, especially if it wasn't the end user who installed that latest version or otherwise has no control over whether it gets installed or when.
>4. Easy update scheme: I update the website, and everyone gets the latest version.
This might be the only advantage. Though, if such deployment is a requirement, setting up the necessary servers to facilitate the communication with the client isn't nearly as difficult or complex as it was even 5 years ago.
>5. Not giving away % of revenue to platform owners.
Unless you're talking about an iPhone app, then this isn't a requirement.
For games, sure, native is much better. But for any other app, which doesn't require a lot of rendering and simulation, PWAs are actually a great option.
You can have one codebase for both platforms. Through the use of Cordova you can actually use native apis very easily. Also, using PWAS gives you access to the thousands of useful packages in the npm ecosystem. How about the tens of thousands of themes you can use to enhance your app? Or things like Vuetify or TailwindUI to quickly craft attractive UIs
If you're not making an app which needs a lot of computational power I would say a PWA is a great option.
Slack and Spotify are both resource-hungry applications that would benefit immensely from being native applications. Yet we are stuck with the worlds laggiest IRC client and an application that you’re actually better off running in the browser so it doesn’t destroy your SSD (again).
Electron packages up its own browser and something akin to a node process along with your code. There is effectively no sandbox on Electron. Last I played with it the minimum bundle size is ~80MB, depending on the platform and feature set and it runs somewhat larger on disk after install.
A PWA uses the existing browser on your device and must abide by the browser's sandbox and limitations. It's basically running as a page tab but skinned to look like a native application.
For both Slack and Spotify, I would prefer a PWA over electron. They work fine within the sandbox and then it's simply smaller/faster and your browser, the one major dependency, updates separately. That's less bandwidth to keep everything up to date, less resources both on disk and in ram. Given you advocate using the browser for Spotify, it seems that you would prefer it to be a PWA as well.
There are pros and cons to both approaches, but from a resource perspective, PWAs are potentially quite lean. The last PWA I published has a download footprint of about ~800k, uses ~3MB on disk, and ~30-50MB of ram when running, and ~1s load time on my phone. It's pretty much a big ball of javascript, light on pics or media other than the icon set - but runs an inventory system and allows some modest camera assist from the device. Contrast that to a React-Native application I produced of the same complexity at a previous employer, it was 30MB download, 50MB on disk, and even more ram, and 3 s load time on my phone. PWAs potentially open faster than similarly complex native app if the browser is already running and in memory - which is a common case.
Ideally I’d like us to stop trying to force every single application into the browser when they don’t belong there. I prefer to use Spotify on web over the electron app only because it’s only marginally less-bad there, I’d prefer it more if it was a native application like Apple Music is because all my music is on disk anyways.
https://news.ycombinator.com/item?id=27576937
Opening it up, fresh, it's taking 49.9MB of memory for me. For a tab I've had open for a while, of the same page, it's doing 60MB. And that's despite it not being a "web application": it's barely a web page! So here I am, doing exactly what everyone claims I should be doing, and using a web browser for my web content. And one of the most spartan sites on the internet, Hacker News, has mildly-active threads that take up 60MB of memory. For the tab. Not for the browser, for the individual tab.
The best Electron application I've ever came across launched with 100MB of memory consumption and pegs a CPU core. That's not even getting into how nearly every single Electron application puts 150MB+ on your hard disk, because that in particular isn't incredibly relevant.
I'm sure there are many like you who want applications to be frugal with memory and cpu consumptions, but I think most users don't really give a damn.
There are bloated web apps that should be improved for sure, but they also exist with "native" languages.
The issue has always been runtime computations, PWAs are perfomant if you keep them low.
I wrote myself an ebook and webnovel reader PWA which tracks progress by pixels and percentage amongst other things. There is no noticeable difference between fbreader (native) and this angular app. I get the same amount of drain per hour as I repeatedly verified when I switched.
You as much as glance at a web page, and it causes a repaint and reflow of the page.
Everything else stems from that.
I mean, there ARE downsides to using web tech, but as a flexible layout system that can gracefully describe very large ranges of targets I have not found it's equal.
You probably mean literally every native system. Because it's not like native toolkits didn't exist on the same systems as HTML+CSS.
> a flexible layout system that can
There's significantly more that's required of UI than just layout. And HTML+CSS are horrendously bad for anything beyond a static page of text with images.
For layouts, I've used various toolkits including Qt, Java AWT and SWING, and Visual Basic way back when. Creating a GUI that scales gracefully on these, in my experience, is time consuming and highly difficult. Most everyone favors static layouts because of the challenges. Learning responsive design on a web page takes a bit of time but it has the tools to reasonably manage a variety of layouts on a wide range of screens.
I would even accept an individual native system's layout manager as a counter argument of something that is at least competitive. It really isn't an easy problem.
These facts are obvious to anyone who has seen anything else besides just HTML+CSS.
Adding a simple box shadow on an element will trigger reflow in most browser engines [1] Efficiently animating anything that as much as breathes at layout is impossible. Efficiently displaying anything beyond a few hundred elements on a page? Equally impossible (and there are no virtual lists on the web).
But the actual argument is this: given "the most advanced and powerful layout system in the world that has no parallels anywhere else, it's so unique", why is it that most CSS frameworks struggle to implement anything beyond the most basic of controls (buttons, links, may be tabs)?
> Creating a GUI that scales gracefully on these, in my experience, is time consuming and highly difficult.
Ah yes. "Scales". Because this is the area that only HTML and CSS have to deal with. Because, you know, resizing windows didn't ever exist since the earliest days of GUIs.
However, being able to work at different sizes isn't what "scaling a GUI" means, or should mean. Desktop apps have been able to work at different sizes for close to 40 years now.
I can only applaud Apple. Please do that Cordova stuff on your own phone. There are enough frameworks that aren’t that bloated if you really don’t want to develop for a platform
All things which you can implement in a pwa. Do you have any experience building native, hybrid or pwa apps?
https://news.ycombinator.com/item?id=27601802
On a whim, I also opened the front page of reddit (again, in my web browser that's already opened) and the tab is taking 140MB fresh.
[0] I'm aware of web apps that use local storage and other strategies to keep user data out of a silo, but these are the exception not the norm
Apple controls the iPhone ecosystem. That's how they're worse. It's the single most dictatorial move our industry has seen, and it's damaged our industry to the point we have to go through a single company to reach consumers.
The minute native Rust/WASM with custom painted UI and the ability to call device APIs lands, it's game over for app stores. Or it would be, if Apple would allow this stuff to exist on their platform. (They won't.)
You can't blame every single problem on "the iPhone ecosystem."
I certainly don't like the iPhone or its software; this doesn't mean that it's somehow responsible for PulseAudio being bad. Not everything can be tied to the iPhone. Really!
They just have to make it bad enough.
How many other countries justified their Covid lockdowns with statements like "we need to protect our healthcare service"?? Our healthcare service is to protect us.
I live in Wales, where the Labour party has been in power at all levels of government for decades, and the Welsh NHS is practically non-functional.
Personally, I think an ordered transition to something like every other European country has (a mix of very basic public healthcare and various levels of private healthcare) is the best way forwards.
Basically every comparable country has a more expensive healthcare system than the NHS. The NHS is incredibly efficient (or systematically underfunded, take your pick).
https://www.ons.gov.uk/peoplepopulationandcommunity/healthan...
To me it sounds like there is a super simple answer to that - don't vote tory.
https://www.telegraph.co.uk/news/2019/10/28/nhs-manager-allo...
Edit: and to your "don't vote Tory" point - as I've already said, I live in a place (Wales) where the Labour party has controlled the Welsh NHS for decades, and we enjoy about the worst healthcare in Europe.
I have also lived in Poland for a time, believe me if you think Wales is close to the worst healthcare in Europe you are blinded by your privilege.
I think you and I are used to different standards of evidence. I provided you the statistics showing you that the NHS is cheaper than any G7 country except Italy (which has substantially worse outcomes) you provide me with one guy living in Marabella. You see how I find the first more convincing?
Edit: to address your last point, the government in Wales is pretty much a function of the money they get from Westminster.
50% more doctors, and 3x the number of beds - I'd call that a whole lot better.
It's not deniable that the NHS is "cheaper", and I have not tried to do so. I am saying that the quality of care is not sufficient, and may even be less efficient than other (more expensive) healthcare systems.
Edit: The Euro Health Consumer Index puts UK healthcare at 16th out of 35, putting it below all of the "tier one" countries in the EU. You certainly can't argue that the NHS is providing comparable healthcare to countries like France and Germany, for a lower price.
As for the "Wales can only spend what Westminster gives them" argument - the Barnett formula assumes that the average taxable income to the government per head is the same across the UK. As this is not true, it actually results in relatively more tax revenue going to the nations (like Wales) than the taxes those nations raise, per capita (yes, I know you can make arguments about which expenses the central government defines as "local" and "national" spending, etc etc). Welsh Labour has squandered huge amounts of this money. If anything, I am in support of each nation only having access to the tax revenue that it generates, as that would very starkly show just how under-performing the Welsh economy is (and I say this because I want it to be better. Knowing what the problem is is the first step to fixing it.).
Edit: not to mention Italy’s early example also
We hear this all the time about education in the US. "Oh, we just don't fund it enough because of those eevviiill Republicans!"
There's plenty of money. It's just poorly spent.
1. There isn't plenty of money
2. It's spent quite effectively
[1] https://www.ons.gov.uk/peoplepopulationandcommunity/healthan...
[2] https://www.kingsfund.org.uk/publications/articles/big-elect...
We hear this all the time about stuff happening outside the USA. "oh x can't be happening because its different to my super-narrow experience of one country that I've randomly decided is universal".
Just a few examples:
- 50 Reasons to Love Joni Mitchell’s ‘Blue’ https://www.nytimes.com/interactive/2021/06/20/arts/music/jo...
- A 3-D Tour of How the Senate Was Transformed for the Impeachment Trial https://www.nytimes.com/interactive/2020/01/23/us/politics/i...
- The Climate Change Pledges Are In. Will They Fix Anything? https://www.nytimes.com/interactive/2015/11/23/world/carbon-...
And so on and so on. Can't quickly find the biggest and the most complex ones, but they are there.
I think they are beautiful to look at, and perhaps they are smartly built. But personally they make it so much harder for me to absorb the actual content. In the climate change example, the text is large and framed in isolation from the other elements, to the point that it's difficult for me to parse the overall context of the article. The Joni Mitchell article is a bit better, but the text on the right is squished to the point that it feels stressful to read. I understand the goal is to frame the image on the left, but it feels like overkill.
When it comes to news I prefer the content to malleable and customizable (accessibility, content size, color pallet). I don't mind that these experiments exist, just pointing out that they are a bit anti-web in my opinion.
Apple are a bunch of crooks that want everything to be in the App Store so that they can control it and twist these other companies' arms. (Yours too, if you're an indie developer or startup.)
Apple gaslighted us into thinking this is okay, meanwhile we bleed money sitting in their stupid walled garden jail. (I'm sick and tired of people caring about what's good for Apple. They have more money than God, and they don't need our welfare. Especially not while they're breaking our backs.)
A nice step towards a better web would be to require that Apple allow non-Safari browsers on iPhone.
Create the BEST Android and Linux desktop experience you can.
Apple are totalitarian assholes taking advantage of their market position. They've redefined computing as a "protected" function. (Read: protection = regulated and taxed)
I really wish it had been Microsoft that won instead. You'd all be complaining just like me.
> flexibility of a desktop operating system on my mobile device
There used to be powerful Palm and Windows PDAs with very capable operating systems and lots of complicated software. There were devices like the Nokia N900 (then the iPhone came and destroyed everything and everyone) and there still are handheld devices with full operating systems (like the GPD computers).
People just don't want those. Maybe you do, but for every you there are millions who don't. It's not about the business models.
If only a native toolkit had been available to build the UI........ oh wait....
> Apple is intentionally making a "not truly shitty, just bad enough" browser to have us all eternally question whether PWAs, web apps and other open web technologies are inferior to apps.
It is a fact that a company which derives 99% of its revenue from hardware/apps is against PWA (Apple), and company that derives 99% of its revenue from the web (Google) is pushing PWA very hard.However to me as a user what Apple is doing makes much more sense. If you care for the web, you should be doing exactly what Apple is doing and that is preventing web from touching your hardware as much as possible.
He notes how big tobacco authored the playbook for all disinformation, that everyone uses right now: "a denialist doesn’t want to convince you that smoking is safe, they just want to convince that it’s impossible to say whether smoking is safe or not."
Apple is intentionally making a "not truly shitty, just bad enough" browser to have us all eternally question whether PWAs, web apps and other open web technologies are inferior to apps. It's worth billions to them to do that. And, its awful that they are destroying a sphere where open culture could thrive and blossom while they do that.