-
@ fiatjaf
2023-02-26 13:33:08Web browsers today serve 3 different use cases:
- Viewing content produced by others.
- Running complex programs locally and interact with a server -- or not -- only very lightly to receive or send inputs or outputs to or from these programs.
- A mix of the two things above.
On category 1 we can include all text that exists on the internet, blogs, articles, news -- but also pictures, video, and even livestreamed video.
On category 2 we can put all "web apps" that talk to an API, like, for example, Google Sheets, Figma, Discord -- but also web-based Nostr clients.
On category 3 there are all the cool little appy things that mix interaction with content, interactive visualizations, comment boxes, and basically everything else.
It would be a good thing if browsers could be split into 3 different products instead of trying to make them be the best at these 3 different use cases.
The first category is much better served by a somewhat static content reader. Gemini is an attempt at that, but it is probably too limited for its desired purposes. Meanwhile Nostr -- and native Nostr clients, could very well fill in most of the spaces of category 1. Maybe that will end up happening. This exact same article is a step on that direction.
Category 2 apps would be much better if they were written as native desktop apps directly, and users were educated to learn how to download and install apps, instead of expecting everything to run in their browser. Experience shows that people do prefer a nice lean fast desktop app than its "web" counterpart,
so for the small amount of apps that are expected to run mostly locally, this would be a no-brainer pick. It just needs a shift in the mentality.
Category 3 is the hardest one. Its existence is probably the root cause of the web having become what it is now, and it is also the hardest element to replace on the equation. I imagine that the solution will be a combination of the following:
- To have people install a small VM specialized in running efficient bytecode, for example, WASM, and make it seriously well-sandboxed while at the same time giving it much better access to the desktop than current web apps have. This should serve as incentive for most of these micro-webapps to switch.
- To standardize the ability to interact in standardized ways with mostly static content from inside native (Nostr?) apps designed for browsing these kinds of content -- so the solution to 1 encompasses part of 3 too.