Conversation

Replying to
We need a different kind of optimizing compiler to collapse layers but oops we don't have semantics... I starts to look like there is just no solution to the pile-on, apart from throwing things out and rebuilding. But who has time for that? I am not an optimist.
2
2
Replying to and
That would be part of what it produces, yes, but my point is more that this is virtually impossible because there is no real definition of what the layers mean such that a compiler can use this meaning to mechanize code generation.
1
In an ideal setup, the meaning of user clicks and pixels on the screen should be directly related to database state updates by some abstract description. Everything in the middle is just "implementation" of this description.
1
But that is not how we build code. Someone writes an opaque mechanism where "the implementation is the meaning", and someone else builds exactly the same kind of thing on top of that, just a little bit different. So you get layers that a compiler cannot see through.
1
If there is no "reducer", complexity is always just going to grow, because that is the easiest way to build something to solve a problem. However to build a "reducer" or "evaluator", you need a way to define meaning other than a black box implementation.
1
Replying to and
I completely agree. This idea of a lang that compiles to a distributed system keeps popping into my head, but it seems like you'd need to build everything from scratch because of the lack of semantics of any target lang / tools. WebAssembly does have a formal semantics though
1
2
Show replies