A hosted language that has the idea of symbiotically interweaving into existing ecosystems.
I've done a lot of clojure in my past, and while I love the language and it's heigh ceiling, I've found the floor not quite low enough.
I do indeed think that there is room to bring a more data driven approach to existing ecosystems, especially when it comes to interoperability between them. Something living in the area between SQLite, protobuf and a hash table.
And I don't think there is actually much needed to achieve this.
* A dead simple binary graph representation format.
* An easy to implement immutable datastructure to represent that graph.
* A simple conjunctive query DSL to that translates between the data graph and the tree semantics (structs, maps, arrays, e.t.c) of the host language. Implicitly providing join and filter operations (similar to GraphQL).
These tree declarative primitives would probably be enough to pull any host languages 80% over to being data-driven.
All the other fragments of relational languages, like recursive queries in Datalog or negation and optionals in SQL, would be recoverable by using the capabilities of the host language.
A hosted language that has the idea of symbiotically interweaving into existing ecosystems.
I've done a lot of clojure in my past, and while I love the language and it's heigh ceiling, I've found the floor not quite low enough.
I do indeed think that there is room to bring a more data driven approach to existing ecosystems, especially when it comes to interoperability between them. Something living in the area between SQLite, protobuf and a hash table.
And I don't think there is actually much needed to achieve this.
* A dead simple binary graph representation format.
* An easy to implement immutable datastructure to represent that graph.
* A simple conjunctive query DSL to that translates between the data graph and the tree semantics (structs, maps, arrays, e.t.c) of the host language. Implicitly providing join and filter operations (similar to GraphQL).
These tree declarative primitives would probably be enough to pull any host languages 80% over to being data-driven. All the other fragments of relational languages, like recursive queries in Datalog or negation and optionals in SQL, would be recoverable by using the capabilities of the host language.