5 ms·
While web programming in Prolog has been insightful, I think there are more expedient areas of application for the language. Prolog is especially underutilized
by ipnon 7y ago
While web programming in Prolog has been insightful, I think there are more expedient areas of application for the language.
Prolog is especially underutilized in databases.
- segmondy 7y agoProlog is already a database, why bring in the mess of an external DB. I have used Prolog and ODBC to access a postgres DB. I found it better to just export the data and turn it into a Prolog DB then process my rules than have it run all those logic across the wire.
- The_rationalist 7y agoWhat about performance?
- chekovcodes 7y agoThis is a database written in Prolog: https://github.com/terminusdb/terminus-server https://github.com/terminusdb/terminus-server - albeit with a RUST storage engine - prolog's lack of types means there are better storage solutions, but for constraint logic, it's unbeatable.
- ipnon 7y agoA statically typed logic language would be ideal for both
- Avshalom 7y agohttps://mercurylang.org/ https://mercurylang.org/
- lliamander 7y agoMercury is cool. I translated a simple Prolog program to it once, and it was a head trip. Hard to get my mind around, but also helped me see the connection between functions and relations.
- ggleason 7y agoWe evaluated the use of Mercury before settling on prolog for terminusDB. Mercury is a great language, but the community and library support is just a bit too small.
- namelosw 7y agoFor Clojure, there is Datomic[0] (a DB with S-expression Datalog) and DataScript[1] (in memory Datalog for browser) which has a fair amount of usage. Also, there's a bitemporal database use Datalog name Crux[2] seems to be quite promising. [0] https://www.datomic.com/ https://www.datomic.com/ [1] https://github.com/tonsky/datascript https://github.com/tonsky/datascript [2] https://opencrux.com/ https://opencrux.com/