Fitting in with RINA is the idea of configurable computing TM (working title). A future of computing where people can link together computer components in a visual programming model. These links may be local or span networks.
In the beginning was the command line, where programs can be combined together to do complex and varied task.
Next came the Application where apps are generally islands of their own perhaps sharing some libraries.
A brief trip to mobile app land (at least the android country) where programs can ask other programs to do things for them.
Now what next? Let us look go in to the stark utilitarian world of servers for some hints. Here programs setup long term communications channels between each other. Different programs can communicate in the same way and be swapped out. Most websites are built this way of components, the so called technology stack.
Can each person have their own stack? Controlling flows of information between multiple computers, devices and systems like digital wizards?
Apps are okay for the moment, so what will drive this future? It will be the personal capture of information and annotation of visual feeds. If people start life-logging, they will want and need to control what information goes where, what information is processed and how. Let us say there is a new component that processes video and extracts the text around you to be searchable, would you trust it with your video feed? To collect all your personal moments? If you could give it a doctored feed, one that detected faces and removed them? If you could see what other information flowed out from this component you may then trust it. Or this may be the comments of a very private man.
If nothing else it will be needed for efficiency. Different Augmented Reality apps need different information flows, however they share some pre-processing steps. They need to be able to merge these information flows so that more can be done with the processing power. Ideally doing such things in next generation fpgas for ultimate power/performance ratio.
A few design ideas
- Configuration should be separate from programming – This will align the operation of the computers with the users needs.
- Configuration should be visual
- Operation should be inspectable – You should be able to look inside any connection between component and see something
- Configuration should be copyable
- Configuration should be partially copyable (diffs and patching in programming)
- Configuration should be revertible (some form of git?)
- Configuration should be parameterised. You shouldn’t have to repeat yourself.
This post will be a work in progress. But I doubt anyone will read this for a while.