
Ask HN: Why are there so few logic programming languages like Prolog? - elcapitan
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?
======
Blackthorn
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?

------
zmonx
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.

------
thorin
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/](http://www.drools.org/)

------
solomatov
Because they have a very limited area where they excel. On the other hand, you
can do almost anything you like in functional programming. Consider, for
example UI. Take a look at UI code in visual prolog: [http://www.visual-
prolog.com/video/FormDemo/default.htm](http://www.visual-
prolog.com/video/FormDemo/default.htm)

------
seanwilson
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.

~~~
sundarurfriend
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.

~~~
zmonx
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.

