Ask HN: Why are there so few logic programming languages like Prolog?

6 points by elcapitan ↗ HN
On other non-standard fields (like functional languages) there is a huge variety in implementations. Why is Prolog still the only major example of a logic programming language?

7 comments

[ 0.19 ms ] story [ 27.3 ms ] thread
It's not! You just aren't looking hard enough.

First, miniKanren interpreters have become vogue in some other languages. For example. Clojure has an embedded one: core.logic. Then here are some other full non-embedded languages, like Datalog and Mercury.

There's not going to be as much variety as full-fledged general-purpose programming languages though because it's a more specialized domain with more restricted usage. And, well, Prolog is pretty standard. The question you have to get over is, if you need to use logic programming, why aren't you using Prolog or an embedded miniKanren interpreter?

I think the enterprise now uses quite a lot of rules engine type stuff which draws inspiration from prolog. We used drools pretty heavily at my last place http://www.drools.org/
Prolog is a very versatile language, and despite many attempts to build a logic programming language that is equally powerful and convenient to use as Prolog, so far Prolog remains the most popular logic programming language by a huge margin.

People who need some variation of Prolog usually add the desired extension on top of Prolog instead of using a different language altogether. This is easy to do in Prolog because its abstract syntax is completely uniform.

Having used Prolog a lot myself, I'd guess it's just that the kind of problems Prolog is good at (i.e. ones that require backtracking and the user of an inference engine) don't occur often enough.
In the future, I believe that a significant amount of 'sciencing' will be done by AI; collecting facts from various disciplines, seeing how they fit together and where there are gaps, and so on. Cross-disciplinary knowledge is something that often yields gold, but getting more and more difficult for humans to have.

So, it's near certain that such an AI (or multiple ones) will be built and used, and from your description, a Prolog-like language might be ideal for this. This is something I'm excited to see in my lifetime.

I think this comment hits the nail on the head.

In my opinion, Prolog is now starting to become interesting. In the Prolog community, the last few decades were spent on researching efficient Prolog implementation techniques and important features like constraints. In the coming decades, we will see many interesting Prolog applications that will benefit from that work.