| ▲ | 6510 3 hours ago | |
I keep returning to this thought: Assuming our abstraction architecture is missing something fundamental, what is it? My gut says something simple is missing that makes all of the difference. One thought I had was that our problem lives between all the things taking something in and spitting something out. Perhaps 90% of the work writing a "function" should be to formally register it as taking in data type foo 1.54.32 and bar 4.5.2 then returning baz 42.0 The register will then tell you all the things you can make from baz 42.0 and the other data you have. A comment(?) above the function has a checksum that prevents anyone from changing it. But perhaps the solution is something entirely different. Maybe we just need a good set of opcodes and have abstractions represent small groups of instructions that can be combined into larger groups until you have decent higher languages. With the only difference being that one can read what the abstraction actually does. The compiler can figure lots of things out but it wont do architecture. | ||
| ▲ | Hackbraten an hour ago | parent | next [-] | |
There's more to a function than just types. It's not sufficient to know that the function outputs a baz 42.0. You have to understand which one. The oldest? The latest? The one that matches the foo and bar input parameters? I think that's the part where it remains difficult. Someone has to convey clearly what the semantics and side effects of the function are. Consumers have to read and understand it. Failing that, you get breakage. | ||
| ▲ | marcosdumay 2 hours ago | parent | prev [-] | |
You seem to be describing a type system. | ||