When I was little, my (much) older brother gave me a computer for my birthday. It was a Commodore 16. That’s not a typo. Because it flopped, it was being dumped in Germany. That’s how he could afford such a lavish gift, for the times.
Anyway, I remember the magical experience of connecting it to our TV and starting it up for the first time. It looked something like this:
My new computer started up in the Basic shell. It assumed that any user would want to program the computer.
Later, that changed. Starting a computer became an experience of using software, not writing it. You were assumed to be a consumer, not a creator. While computers became much more usable as a result, I think we lost something valuable in the transition.
I would like to return to a place where the computer is fully controlled by you. You are its programmer. But you don’t need to be a programmer.
Why write software at all?
My original plan was to make it easier to combine applications. Each application could contain other applications, use their capabilities, and share data with them. You could add your own custom features by connecting existing pieces. The Web would be the platform, and your data would live outside the applications.
There is still useful work in that idea. But I think any tool that allows you to create your own custom software should now use AI as a baseline. And there is a more important change coming: why write your own software at all?
I think the AI will become the user interface. And in that world, there may be limited use for custom applications outside the AI environment itself.
I may be wrong here. There is still a need to publish your thoughts on the Web. I can see use for a calendar with your important dates in it. But I think increasingly those interfaces will be subsumed by more capable AI environments.
I imagine a base layer with your data, and links to other people’s data and organizations. The AI uses that directly and creates custom views depending on your need. It can use existing tools, or create the functionality it needs.
This need not mean doing everything through chat. I think you would get a smart interface that remembers which views you use repeatedly. It would allow you to change them, add new ones, or just add a temporary view inside a chat. Your calendar could remain a calendar. You could change how it works without first finding a different application.
Moving to another AI
Personally, I would still want to look inside the software. I like to know how tech works. But in this case the important distinction is how free I am to move my data, to move to another AI environment. And how well another AI can explain what was built, alter it, or rebuild it from scratch.
I’d expect the familiar views I repeatedly use to come with me essentially unchanged. The new AI will have new capabilities, differences, and perhaps some features it lacks. That will impact the interface, but where possible it should be mostly the same.
It should certainly not change the history of my data and choices and connections.
For that to work, the things the AI learns about how I want to work need to be available outside that particular AI environment too. Otherwise I can move my files, but have to start again with everything I taught it.
Something like the Solid Project is one possibility for the base layer. Muze has been working with Solid for quite a few years. It separates data from applications and lets people choose where their data lives and who can access it. But it was not designed for this whole role. I think an evolution of the idea that includes queryability is needed.
Solid’s core access model works with documents and other resources over HTTP. Storing lots of data in a single large document makes access management too coarse for what I want here. Splitting it into many small documents gives finer control, but retrieving them can become a performance problem. I want to be able to ask for the relevant information without fetching all those documents individually, while still respecting the permissions on that information.
A database-like system can help solve both problems. ActivityPods is already moving in this direction, with a query interface that respects access permissions. Our work on SimplyStore is another option I want to explore.
Working together
The first place I am looking to try this is the virtual company: a place for people to work together, with chat, shared whiteboards, documents and AI support. It should also give them access to a decentralized network of experts through their existing contacts.
One thing currently awkward is project management across multiple projects with different partners. Each partner has different access, and each should remain in control of the data they supply. I want a shared kanban board that can work across those boundaries, in a decentralized way.
Ideally, each fact remains in the storage layer owned by the participant who added it. The view combines them. The same information could appear in your own view of your work and in the board you share with a partner, according to who is allowed to see it.
Realistically, there will be a need for caching, or for some connective tissue to keep the view usable when storage or information disappears. That connective tissue does not necessarily need to store the actual content. It can retain the URL, so other facts that link to it still refer to the same thing. We can know that there was something there, even if we can no longer read it.
That is not enough for every purpose.
Missing data means that facts relying on it may no longer be meaningful. In a business setting, that may become the center of a dispute. We will need some kind of immutable ledger where important decisions are stored with all the provenance they need: what was decided, by whom, and on the basis of which information. Similar to what we have been doing with Spiral Developer.
This qualifies the idea that any contribution can be withdrawn. Some information will need to remain as part of the shared decision record. I think that can be prearranged. Each virtual company or collaboration can have a set of rules and agreements you opt in to before joining. Those agreements should say what you commit to the collaboration and what remains under your own control.
Where to start
The virtual company gives us somewhere to test these ideas with people doing actual work together. We can find out whether an AI can provide useful views across information held by different participants, while respecting their access and their agreements. And whether those views, and the work behind them, can survive a change of AI environment.
I also want to find out whether AI can allow Muze to make such a system quickly enough to matter.
I don’t think we have years in which to experiment.