<story><title>The Power of Prolog</title><url>https://www.metalevel.at/prolog/facets</url></story><parent_chain><item><author>xlii</author><text>Prolog is awesome and I recommend learning it if only for kicks and experiencing foreign programming paradigm. Many concepts are expressed in a completely  different and (when paradigm &amp;quot;kicks in&amp;quot;) are arguably much simpler.&lt;p&gt;E.g. in Prolog you don&amp;#x27;t usually operate on collection but instead provide information what the collection item actually is and then let the implementation figure it out. Drawing dependency tree is an effect of 3 rules: what is an entity, how to figure out that entity X and Y have relation, how to represent it.&lt;p&gt;I have 2 gripes with it, though. One is that it&amp;#x27;s difficult and thus it&amp;#x27;s hard to convince people to learn&amp;#x2F;use it. Second - I didn&amp;#x27;t yet found way to seamlessly integrate it into other apps (I know that FFI is an option, but it doesn&amp;#x27;t convince me as production ready).&lt;p&gt;For the last couple months I&amp;#x27;ve been looking for some more &amp;quot;production&amp;quot; Prolog alternatives but what I found so far (LispWorks, Franz Allegro CL) costs a kidney and is not integration friendly.&lt;p&gt;If anyone has success integrating Prolog in modern software please share, I&amp;#x27;m really curious.
I&amp;#x27;m also looking for some GUI solutions in it as XPCE doesn&amp;#x27;t work on Mac :(&lt;p&gt;Oh, and check out the Swish for online notebook:
&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;swish.swi-prolog.org&quot; rel=&quot;nofollow noreferrer&quot;&gt;https:&amp;#x2F;&amp;#x2F;swish.swi-prolog.org&lt;/a&gt;</text></item></parent_chain><comment><author>vintagedave</author><text>&amp;gt; If anyone has success integrating Prolog in modern software please share&lt;p&gt;This doesn&amp;#x27;t directly answer you, but Prolog was used by David Hovell the Windows NT network configuration to enforce consistency [1][2].&lt;p&gt;I&amp;#x27;ve heard it&amp;#x27;s been removed since, so doesn&amp;#x27;t count as &amp;quot;modern&amp;quot;. It&amp;#x27;s a _beautiful_ application of Prolog though.&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=36821871&quot;&gt;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=36821871&lt;/a&gt; which leads to &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;web.archive.org&amp;#x2F;web&amp;#x2F;20030218034509&amp;#x2F;http:&amp;#x2F;&amp;#x2F;www.research.microsoft.com&amp;#x2F;research&amp;#x2F;dtg&amp;#x2F;davidhov&amp;#x2F;pap.htm&quot; rel=&quot;nofollow noreferrer&quot;&gt;https:&amp;#x2F;&amp;#x2F;web.archive.org&amp;#x2F;web&amp;#x2F;20030218034509&amp;#x2F;http:&amp;#x2F;&amp;#x2F;www.resear...&lt;/a&gt; -- very worth reading!
[2] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=14046420&quot;&gt;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=14046420&lt;/a&gt;</text></comment>
<story><title>The Power of Prolog</title><url>https://www.metalevel.at/prolog/facets</url></story><parent_chain><item><author>xlii</author><text>Prolog is awesome and I recommend learning it if only for kicks and experiencing foreign programming paradigm. Many concepts are expressed in a completely  different and (when paradigm &amp;quot;kicks in&amp;quot;) are arguably much simpler.&lt;p&gt;E.g. in Prolog you don&amp;#x27;t usually operate on collection but instead provide information what the collection item actually is and then let the implementation figure it out. Drawing dependency tree is an effect of 3 rules: what is an entity, how to figure out that entity X and Y have relation, how to represent it.&lt;p&gt;I have 2 gripes with it, though. One is that it&amp;#x27;s difficult and thus it&amp;#x27;s hard to convince people to learn&amp;#x2F;use it. Second - I didn&amp;#x27;t yet found way to seamlessly integrate it into other apps (I know that FFI is an option, but it doesn&amp;#x27;t convince me as production ready).&lt;p&gt;For the last couple months I&amp;#x27;ve been looking for some more &amp;quot;production&amp;quot; Prolog alternatives but what I found so far (LispWorks, Franz Allegro CL) costs a kidney and is not integration friendly.&lt;p&gt;If anyone has success integrating Prolog in modern software please share, I&amp;#x27;m really curious.
I&amp;#x27;m also looking for some GUI solutions in it as XPCE doesn&amp;#x27;t work on Mac :(&lt;p&gt;Oh, and check out the Swish for online notebook:
&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;swish.swi-prolog.org&quot; rel=&quot;nofollow noreferrer&quot;&gt;https:&amp;#x2F;&amp;#x2F;swish.swi-prolog.org&lt;/a&gt;</text></item></parent_chain><comment><author>bjackman</author><text>&amp;gt; If anyone has success integrating Prolog in modern software please share, I&amp;#x27;m really curious.&lt;p&gt;Not sure if these count but:&lt;p&gt;- Gerrit&amp;#x27;s submit predicates are configured in Prolog. (Edit: deprecated!)&lt;p&gt;- An internal product I worked with at Google is built around a Datalog knowledge base that gets codegen&amp;#x27;d. Then you can query it directly or use a UI to generate queries.&lt;p&gt;Both of these seem to work nicely but they&amp;#x27;re pretty limited use cases.&lt;p&gt;My experience with Prolog at university was that it was pretty fun but there&amp;#x27;s just no way I would wanna use it for anything that isn&amp;#x27;t inherently Prolog-shaped. As soon as we were implementing nontrivial stuff in it the abstraction leaked like a sieve and you felt mostly like you were hacking against the backtracking algorithm rather than taking any actual advantage of the language.</text></comment>