25 ms·
I consider them to be tools run upon/within other tool(s), their entire purpose being to manifest some kinds of data flow that produce a cascade of changes with
by MrMcCall 2y ago
I consider them to be tools run upon/within other tool(s), their entire purpose being to manifest some kinds of data flow that produce a cascade of changes within a specific context.
All the contexts are nested aggregates: software resides within the OS (itself having/providing many contexts), which is within the hardware's complex set of contexts, which is within the network of networks.
So, I would say there's nothing really abstract about software systems, except for, perhaps, when we are conceptualizing them, but even then we are imagining something very real that does something very concrete to some real things.
One could also look at the software itself, while latent, as potential dataflow; and then, when it runs in its appropriate context, it is an active agent of change, that may or may not be actually accomplishing its goals, depending on its and its contexts' circumstances at the time.
There are many reasons developing software is the among the most difficult tasks in the history of human tool engineering. The evidence for that is that there is no industry that I know of in 2024 that is not wholly dependent upon software.