>>21692The separation between mathematical logic and real world systems is a big problem in software development, or at least used to be a big problem. Nowadays it's not so much in most systems, and you can happily program in very high abstractions without worrying about pesky hardware issues.
That said, when we do software, we do it to solve a real world task. The biggest pain in software engineering is transferring the complexities of the development of a real world task, into a relatively static representation that can solve the task. Big issues arise when the real world task changes or more context is introduced. Then the old digital representation is no longer valid and needs to change. Unfortunately, software becomes "hard" the more you change it and the bigger it grows.
If there is to be a programming language that has some passing resemblance to marxist philosophy, then I suppose one that can simultaneously capture the complexities of the domain to a large degree, while not necessarily delivering on the implementation of the domain.
Meaning that you could write a program incrementally by implementing a highly detailed domain description. This way, the language itself could coerce you into writing implementations that actually fit the domain, without any incorrect assumptions since they're already spec'ed elsewhere.
For this to work, you'd need to have all the "stakeholders" be capable of writing down all the assumptions and constraints of the system, including where they can vary, and where it's absolutely impossible for them to vary.
Afterwards, if conditions change, then the specs need to be changed first, which would cause the implementation to fail to build, which would prompt a re-implementation or a fix.
Just riffing about it here. I don't see this as being particularly viable.