- phone
- home desktop/laptop device
- tablet
- workstation
These are not powered by a single OS, yet users want apps that run on all their devices. That's a big reason why we continue to invest in the web.
There are economic reasons as well: many developer shops can't afford to have multiple, OS-specific versions of their apps. Why build a Windows, Mac, iOS, and Android version of your app, when a single web version will run everywhere?
Even doing this with the web is extremely challenging, again unless the application is relatively simple.
Creative apps in particular do not "port" between these two contexts very well at all, whether you use the web or not. Yes, such things exist, but it is very debatable whether the desktop users of e.g. Figma have much use for the same thing in a mobile browser.
The worst part is that the web isn’t immune to the same issues, they just present slightly differently. We still have gatekeeping, web app/extension stores, unbalanced browser market where one vendor is doing whatever they want, DRM, browser services overriding the user’s experience etc.
Also, making cheap “app” that sort of opens on any platform is not the same as making an app that’s truly adapted to a specific form factor or OS.
This was a hard choice to stand by back in the 2010s when everything and everyone seems to have an app... And the gap was undoubtedly huge in terms of functionality.
Today this is no longer the case. We can now use native web APIs and technologies to build feature rich apps that are accessible to anyone with a browser and an internet connection.
I make that difference because electron apps are still JavaScript but not PWA, and I suppose you’re talking about the lack of good UI components in the browser.
We are essentially bolting on more and more management of hardware onto a userland application residing inside an operating system. At what point is it better to just get rid of the operating system and run the browser directly on the hardware?
And why worry about the nomenclature to begin with? The web is already serving the use cases of an operating system for many people today whether we like it or not. So maybe it's our terminology that should change to reflect reality, rather than the other way around?
When was the last time you had to uninstall Hacker News?
App Stores also solve these problems, but with the problems of gatekeeping and platform openness.
You might say that this is technically possible right now, but those people do _everything_ they can to make it easier/cheaper to busy folks to use their software instead of just installing directly.
Are we supposed to build everything as single-purpose operating systems now?
On the other hand I like native apps that don't compromise on speed.
Hopefully the desktop wasm runtimes that have been showing up lately will be the solution.
* We are slowly but definitely moving towards a hub-and-spoke, mainframe-and-terminal topology again. Processing is being centralized in servers and datacenters again (eg: "AI", game streaming, video and audio streaming, cloud storage, etc.), accessed from terminals again with low power consumption hardware to extend battery life, reduce manufacturing costs, and reduce consumer power use.
* Powerful consumer (and prosumer/enthusiast) hardware is becoming economically unviable again (discrete GPUs particularly), politically unfavorable (inefficient and high power consumption), and socially unfashionable (RGB and "gamer" aesthetic), further spurring the mainframe-and-terminal topology above.
* Traditionally powerful and versatile consumer (and prosumer/enthusiast) software is becoming commercially unviable and software vendors are realigning their revenue streams to adapt and survive in an increasingly cutthroat market, further spurring the mainframe-and-terminal topology above.
If you're into computing as a hobby, it might be prudent to find a new hobby soon.
But it's not required. Additionally, there are plenty of good incentives not to, including cost. Client CPUs are fast, free to use, and don't require a high latency network hop. Local ram, disk, and network transfer are also available in abundance. You can totally reverse the architecture where the client is doing the heavy lifting and provide the user a good experience.
Intel CPUs are inefficient when pegged, but more efficient at idle. On AMD your using the same cores the cloud is. Without the massive IO attached on the server side the client CPUs are more efficient for a unit of work. Apple is more efficient than the PC side presently, and Qualcomm is entering the fray and appears to be quite efficient.
So I'm really not certain where you're efficiency claim about client hardware comes from. All that hardware is just sitting there and sales vary, but they are not cratering for high performance local compute.
You have a point about GPUs, but only a very few very specialized applications need those.