How do you describe a system?
I was asked that at a Meetup on Monday. Specifically, I was asked about how I described the periphery of a system.
I was describing my theory that the need to port something is a good way to identify and study the systems around it. Like, the thing I’m porting, be it a code module, or a text to be translated, or a worker that’s being re-trained… is on the edge, the periphery of the systems. That thing is being transferred from one system to another, and that’s where we start seeing the borders between the two.
Callil stops me there. “I’m curious. What language do you use to describe this edge that you’re talking about?”
I’m not great at answering things on the spot. I gave an answer to Callil, but I don’t know if it is particularly good.
In the moment, I saw each system as a self-contained cell. Like a human cell. The periphery of the cell is its membrane. The part being ported is like a little molecule, making its way to membrane. As it leaves its host cell, it bulbs off the membrane, taking some with it, and now it is this sort of floating globule moving towards a neighboring cell. The globule reaches the membrane of the next cell. But, for all the receptors on this membrane, it doesn’t have ones that recognize or work with the approaching globule. The globule bashes helplessly against the membrane, here and there, looking for a way in, before drifting off into nothingness.
That was the description I gave on Monday. Now, I’m not so sure it is an accurate depiction of the act of porting.
One, the person doing the porting isn’t describe here. Here we leave the formation and movement of the globule to the system itself. But in porting, someone needs to initiate this transfer. Is this someone a force that reaches into the host cell, pulls the molecule from within, and flings it against the second cell’s membrane?
Representing the “porter” seems important to me. This allows us to question the role of the actor within the host system from which they are pulling the component. Do they usually use System A? What do they use it for? Why do they know where the component is within System A? Reducing the person doing the porting to a natural directional movement of a particular strips out these questions.
Two, shouldn’t the thing being ported be a widget within the host system? A cog within that machine? A molecule might just be a food particle, not necessarily contributing regularly to the running of the host cell. Would the analogy be better if whatever is being taken is a functioning component of the host cell? An organelle in a human cell? Like the mitochondria. (I had to Google all of this.) Maybe a particle does work, if it is something that the host cell can identify, digest, use it. Maybe the corollary is the code snippet written in Programming Language A. The snippet (granule) needs to be read by the system (Programming Language A). When fed to the compiler (organelle) of another system (Programming Language B), the “granule” isn’t accepted. The organelle rejects the granule.
Three, should the thing being ported already live at the periphery of the cell? Or should it be moving from a position within the cell, towards the membrane, the edge? This I’m not sure of. If we’re porting a key component of a system, wouldn’t it be usually situated deep within the “body” of that system? Wouldn’t it have to be extracted from a certain distance within that system? Or is the system dynamically folding and unfolding, regularly revealing its innards at its edge?
What is the visual representation of the system, and how is it laid out internally? Is that layout dynamic, or is it static?