[Scrap] Yearning For Soup Systems
There is a structure in programming that's hard to hold on to. Its design naturally slips through your fingers if you try grasp it. It takes whatever form you pour it into. Things float about and bump into each other. You can fish around and pull out exactly what you want when you want it.
If it gets spilled, no worry. Cleaning it up is easy and a part of the process. If the taste is off, the recipe of a soup system can be adjusted without friction. If the recipe is just not the right thing in the moment, the old recipe can be discard and a new one formulated with ease. The programmer should be encourage to season to taste.
Above all else, a soup system is meant to be changed. It is meant to be fluid.
A Structureless Structure
A soup system is a structureless structure for describing computing systems. Objects, entities, data, values, tuples or whatever other name they might be given in a soup system are free-form in nature. They can be freely manipulated, copied, or removed. Additionally, the system is free to openly associate collections of these values.
Soup systems must be free to open association.
A soup system must be flexible and open-ended in nature. Heterogeneity is a fact of life. However, the world of programming and system design desperately attemps to hide it. This causes problems for describing open worlds. Systems where entities are loosely defined, come and go, react to events as they happen. Where associations may shift over time or are highly contextual. Distrubted systems where the members of it must operate with partial information.
You Cannot Build an Open-World in a Closed-World
Numerous techniques have been developed to retro-fit open-world models into closed-world tools. Sprawly suburbias of design patterns. Mountains of technical debt build upon melting permafrost in a vein attempt to say what we mean.
An open-world cannot be built inside a closed-world.
Open-worlds require the system invites modification.
Open Worlds Must Be Built Without Borders
A soup system should not restirct the user from adjusting the soup. The user should haft to feel that changing the systme is a burdern. Changing the system to fit the current needs should be encourage. A soup system should encourage the program to throw out the system if it has become burdensome.