5 ms·
Datalog is a form of prolog, used currently by a database called datomic as it's query language. If you wanted to play with datalog, the best way is to do the f
by ghufran_syed 8y ago
Datalog is a form of prolog, used currently by a database called datomic as it's query language. If you wanted to play with datalog, the best way is to do the free tutorial at www.learndatalogtoday.org you don't need to anything about datomic or clojure in order to do the tutorial, and I found it really helpful to get an idea of how it would be really helpful for certain types of queries, compared to an analogous query in SQL (which I also like btw...)
[Edit] - funny, someone just posted this other tutorial to HN too, haven't done it yet but looks fun and educational, it's a murder mystery! https://xmonader.github.io/prolog/2018/12/21/solving-murder-prolog.html https://xmonader.github.io/prolog/2018/12/21/solving-murder-...
- slifin 8y agoAll my upvotes, it's criminal how under hyped Datomic is Hyperfiddle is a paradigm shift on the front end too, using the same concepts, imagine real time GraphQL on steroids where the query doesn't need a horrible SQL translation on the backend and that doesn't even begin to cover it, no worrying about multiple round trips, SQL injection gone, cache invalidation solved, supports recursion, nested data Everyone outside of Clojure/Datomic should be looking in for things to steal
- brudgers 8y agoDatomic's popularity is constrained by the decision to make it closed source commercial software. That's not a knock. It's not saying Datomic is not worth the money. Profitability in exchange for popularity is a very reasonable decision. The decision not to play around with the free version of proprietary software is also reasonable. Vendor lock-in is a trade off many developers are not interested in making.
- kibwen 8y agoHere's an instructive post from Frank McSherry on building a simple datalog engine in Rust (which I think might currently be used in Rust's new borrow checker?): https://github.com/frankmcsherry/blog/blob/master/posts/2018-05-19.md https://github.com/frankmcsherry/blog/blob/master/posts/2018...
- xvilka 8y agoDid you mistake it with Chalk[1]? Unlike DataFrog it is not too basic, actively developed and aimed to be used in Rust compiler itself. [1] https://github.com/rust-lang-nursery/chalk https://github.com/rust-lang-nursery/chalk
- kibwen 8y agoI don't think I'm confusing it with Chalk; note that Datafrog is, like Chalk, hosted in rust-lang-nursery and sees ongoing development. IIRC Chalk is more intended to serve the trait system, rather than the borrow checker as mentioned in Frank's post. Of course, I have only a passing idea of what all these experimental components are being aimed at (and it's possible that I'm confusing Datafrog with another one of them, like, say, Polonius).