Reimagining the web as a remote application platform


  • "Normal Considered Harmful"
  • bhartrihari:

    [Gemini] seems still far from what Alan Kay describes he would have wanted to do with the Internet.

    > Oh, indeed, quite the opposite.
    > I feel quite conflicted about it.
    > Gemini is based on ideas that have proven themselves, e.g. complexity of protocol leads to fewer implementations and higher cost of entry.
    > And I like the predictability of presentation, so one is focused on the content instead of how to navigate it.
    > And the predictability that the page will only fetch a single request from the domain, and that's that. If it's loaded, that's all there is to it. That and the removal of images makes invisible trackers quite impossible.
    > But I imagine Kay would say there's no reason you can't have a simple protocol for dynamic interaction with a consistent UI, and sandboxed for privacy.

The current problems

  1. Cannot trust the applications
    • Will it consume more resources than we want? (freezing up the runtime, laptop fans whining, RAM thrashing, …)
      • Don't allocate more than a certain amount of CPU/memory without user permission
    • Will it send information about us to people we don't want it to?
      • Partly addressed with the current wide array of restrictions. The only solution I see is "Don't send back any data, period." Any data can be sent to someone else - if not client side, then server side. How do common web app use cases work with such a restriction?
    • Will it access files on the file system which we don't want it to? (user data, OS, etc)
    • Come to think of it, this is also a problem with extensions of malleable systems, and even operating systems in general.
  2. Lack of consistency of UI and UX. Each web app implements completely different controls and UI, so there is no common and familiar language of interaction.
    • Emacs extensions are more consistent than even native applications. Part of it is the common data/UI model of buffers, and part of it is convention. Malleability fills in where those two don't.
    • What if users decide the UI for applications, similar to how CSS does for HTML, or Gemini browsers do for text/gemini? A single ruleset applying to all applications. A different ruleset could change their UI and interaction behaviour entirely.
      • This seems to harken to the programs vs protocols dichotomy. Better to use a protocol - usable by any kind of program written in any language and allowing for all kinds of frontends - rather than a single program.
  3. Can only use a single language
    • Being improved, perhaps, by WASM. But I'd prefer to not duplicate OS functionality.
  4. Cannot know whether you're about to open a document or an application.
    • A solution inspired by Gemini - app:// and doc:// links? 🤔

Anything I missed?

Why is it important?

As a fresh Geminaut, and someone sick of - as Solderpunk puts it - driving a battle tank along a minefield, it is tempting to say that the "web as an application platform" has no merits whatsoever. But I can make out at least one - installation.

Similar to manual memory management, software installation is a distraction - busywork which has nothing to do with the user's task at hand. Web apps, by omitting this step, are far more accessible to users. I find it far easier to get people into a Jitsi Meet chat over the web client for desktops rather than the native client for mobiles. On the quest for better UX, we must jettison the concept of "installation".

Are there other merits to a web app?

Note: I have zero programming experience with the web, so I can only speak from a user's perspective.