Hi,

I have been pondering the same kind of thing myself lately. In an alternate bizarro universe, what would the web look like that is modelled more around plan 9 concepts. Here's my fantastic take on this.

First, there is a focus on simplicity of implementation and interface over flashiness of UI. As a result, services are much easier to use directly rather than having to rely on html/js UI's. You just mount search engine, route planning tool, or even shopping site and echo commands into the ctl file. And you get back results as numbered files with simple text output. User doesn't accidentally run malicious software embedded in the service. It's all just 9P.

If a service is complex enough, due to complexity of the problem it is trying to solve (not invented complexity). Source code is posted on the service in C source code form. User runs mk, which is super fast because the compilers are optimized for this. They run the program in a rfork+rio sandbox. Users quickly learn how simple this is and do it regularly so that in trusted programs don't have access to what they shouldn't. The process isn't automatic so it doesn't happen without user knowledge. Pop ups and such are not possible.

User wraps the connection in tls if they don't want any snooping. Sensitive services such as banking don't allow unencrypted sessions.

URL's are just relative paths, navigable using acme and plumber. Absolute links to sites don't exist since the user can map their namespaces any way they choose. Instead, documents may give 9P connection information and locations. Cross site linking becomes very clear. To facilitate ease of navigation and discovery services pop up to curate documents with nice easy relative linking within that service.

Multimedia documents with both pictures and text are compiled into self contained files kind of like PDF without hyperlinks and arbitrary code expectation. Links between documents are relative paths as above. Users are accustomed to using simple text or even markup/markdown for most things. This rich format is for longer and more focused reading sessions: studying a topic, leisure reading.

Implementers of Internet services have a strong focus on simplicity of implementation and interface, but also in adopting common conventions. For example, a ctl file where you send commands and numbered directories with results of each invocation. Perhaps a new convention could be to include a readme file and maybe man page with details about how to use the service. Also, services are designed to be focused enough and standard enough that they can be easily interact with other services using pipes, redirects, etc. so that the user can combine them to suit their needs.

Services take advantage of the simplicity of plan 9 and 9P to easily sandbox, proxy and load balance their services. Also, commodity and mixed architecture systems are easily integrated for free or new services that are built with whatever hardware they can find.

Single signon is achieved using symmetric encryption. If the service recognizes your public key and you are able to sign a message using your private key you can proceed. Not sure how much overlap there is here with what is in tls and factotum. Something like factotum could be useful to allow you to specify different keys (identities) for different services. The point here is that authentication is in the user's control and not the service. The user ever only needs to remember one password or store their thumbprint in one place.

That's all I have so far.

Chris


From: Marshall Conover <marzhall.o@gmail.com>;
To: <9fans@9fans.net>;
Subject: [9fans] Questions on the browser as a platform if plan 9 had gained marketshare
Sent: Sat, Sep 17, 2016 3:19:51 PM

Hi all,

   For context, I am a plan 9 novice - I've played around just enough to add jury-rigged background-image support for rio (for better or worse), implore sl - if I remember correctly - to add the ^B option to 9front's rc that brings the cursor to the current input place, and, for what it's worth, create this: http://i.imgur.com/6iiF3zi.png.

   I've been wondering about how the web - specifically, the browser as a platform for applications - would have been different had plan 9 become a significant influence in operating systems in the early 90s. I've come to the point where I thought a discussion here might be enjoyable and enlightening, hopefully even to the point of dispelling the playful ribbing that this mailing list may or may not be dead. If this conversation has already occurred, my apologies.

  The improvement I think plan 9 could have brought to the early web is in allowing the browser to have remained, as I understand it to have been,  a medium for mark-up text and images, and have the OS act as the platform for web applications.

The process I'm thinking of would be, with the example of a banking application: the user opens the bank's web page in a plan 9 browser; the user clicks a 'login' link; that link is sent to the plumber, which detects it as a web application link and directs it to a service which:
- sandboxes it, perhaps by using a 'web' user or just modifying the namespace to show the process a limited set of information;
- sets the namespace to prefer any libraries that are on the remote bank machine, allowing the application to always run with the environment the application developers intended;
- sets the namespace to include any files the application needs from the remote sandbox, e.g. a directory with the user's banking files.

As a result of this, it seems that much of the hooplah around flash, webGL, javascript, etc. could have been avoided, and that web applications from yesteryear could still run today (for better or worse), since they could control their environment. Web programming would have also have started off with far greater ability, instead of having being limited by the abilities of its browser platform and waiting years for even simple things to be standardized. Web games, video-streaming applications, etc. on par with local applications could have been launched as soon as the infrastructure could support them, as the providers could just program the application to do whatever the OS allowed.

It also seems it would avoid cookies and other privacy issues, since applications would be sandboxed to only know about the things they have available to them.

That said, having had discussions with friends in web development, they have expressed concerns about ease-of-use and their initial interest in the field - if I understand correctly, they feel that html's ease of modification and immediate gratification was beneficial to getting them into programming, which - while my understanding of this community is that here it's not a highly valued thing - is, I think an important point to address. They are application developers, and the web had aspects system languages did not which attracted them.

Again, if these thoughts are obvious, my apologies, and if it's deeply flawed, my apologies - but I'd be interested in hearing why.

Thanks for your time,

Mars