4 ms·
It is also interesting to think from the viewpoint of Curry-Howard Isomorphism. Programs are proofs. Progress in mathematics relies on the ability of mathemati
by galaxyLogic 5y ago
It is also interesting to think from the viewpoint of Curry-Howard Isomorphism. Programs are proofs. Progress in mathematics relies on the ability of mathematicians to use other mathematicians proofs as their lemmas. That is possible because all mathematicians speak the same language.
But if every programmer has their own version of the base-library that hinders collaboration. And still the base-library must also somehow evolve all the time. Like you say, not an easy problem, but as in mathematics the ability to use other people's software as "lemmas" I think is (or should be) the key problem of Software Engineering research.
- karmakaze 5y agoI can relate this to what does happen between ecosystems. We 'black-box' subsets of the problem by splitting up into front-end, back-end, microservices, datastores, etc. This does give some interoperability between languages/ecosystems. Within each language/ecosystem there are library/packages that can serve as a shared/reusable base but still have many challenges in that there typically is no agreed-upon contract. We're even drifting from stability that we had before in that languages themselves evolve more rapidly now often having version/point-version numbers or add-in extensions. Another thing that keeps happening is that languages become popular because of the platform it's tied to gets popular with little correlation to how good the language is in any sense, other than it being adequate to produce a working program. There's at least some possibility of convergence with LLVM backends, wasm or jvm and .NET. I think there will still be more (low-code, online collaborative) before there's any culling and less.
- galaxyLogic 5y ago> there typically is no agreed-upon contract. True. It's the Wild West, at this point