3 ms·
Language is a human invention allowing humans to express ideas. But language often masks the complexity of systems. If I told you "put the jar on the counter",
by peterwwillis 8y ago
Language is a human invention allowing humans to express ideas. But language often masks the complexity of systems. If I told you "put the jar on the counter", there is a lot embedded in that language, but also a lot is missing, and it's up to the human to make decisions based on its life experience to figure out how to interpret that command in each circumstance. If you've had any experience at all in a configuration management DSL, you know that after a while, they all just suck to use.
And it's mostly the same problem for programming. With programming we're using language to express a complex set of interactions, but we still often fail to catch important distinctions, and most of our code does not learn from its past experience. Language can express complex ideas, but only if you have a brain that can re-interpret the language continuously and act differently in each case. That is the hope of language-based configuration management, but rarely do you see a CM tool that is fed regular data solely so it can change how it makes decisions.
I think modeling languages like TOSCA are a much better design for expressing how to manage a complex system. By modeling the components and interactions, it's much easier to observe and test for various conditions in simulation. You can get incredibly detailed in modeling, and as such it's much easier to manage all the complex interactions, rather than hoping you are good enough at language to be able to express your ideas in a way that will be interpreted the right way by an otherwise rigid computer program.