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
I don't have a practical solution btw. Even in my own very isolated world where a lot is written from scratch, I run into this issue all the time... Something that has helped me to structure code is to ask "could I in principle write a compiler for the code I'm writing manually".
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
Replying to and
I'm vaguely familiar but I'll definitely give them a closer look. I saw a talk about Unison where I thought the point of the lang was the content-addressability. And Darklang is self-described as limited to the backend - my dream is a full-stack solution.
1
1
Show replies