

Who Killed Prolog? - wslh
http://vanemden.wordpress.com/2010/08/21/who-killed-prolog/

======
6ren
Article assumes technology is adopted top-down, from the powers that be. While
that was true at the time of mainframes, for a while now, technology is often
adopted bottom-up, particularly in startups that are free to use the most
effective tool for the job; and in non-mission critical systems within the
enterprise. For example, this is often how open source was adopted.

The picture is complicated by libraries and tool-chains that can make an
established language (c, java, python) a better choice by giving an enormous
(e.g. x1000) boost to productivity, obscuring the intrinsic merits of the
language itself. (Although, languages that facilitate library and tool _use_
will promote creation of their ecosystems).

"Logic programming is a cool idea, but not that useful for most things" would
be a better explanation for why it's not popular _today_. It strikes me as a
rather narrow and dogmatic AI technique; and one that you're better off
reimplementing on demand (Greenspun-style), or using in a library.

~~~
janecoder
"Logic programming is a cool idea, but not that useful for most things"

Except that many regard Prolog as a precursor that little used language SQL.

~~~
justincormack
Sql is slightly older than Prolog. They may have come from similar roots. And
sql is used as an embedded subset not a whole systems programming language.

------
_delirium
A few followups:

A elaboration from van Emden, which describes part of the problem as Prolog
being pushed by Lispers who had only recently become enamored with Prolog:
<http://vanemden.wordpress.com/2010/08/31/the-fatal-choice/>

A different take that blames "technological and cognitive issues" at least in
part, especially debugging: <http://synthese.wordpress.com/2010/08/21/prologs-
death/>

A different take that blames competition from more specialized declarative-
programming languages: <http://www.kmjn.org/notes/prolog_lost_steam.html>

~~~
6ren
Nice point on competition (the last one), that SQL (and even LINQ!) replaced
some aspects of prolog. I would guess that mathematica/matlab/R also have...?
BTW In academia, a related competing paradigm is
<http://en.wikipedia.org/wiki/Constraint_logic_programming>.

~~~
_delirium
Yeah, I'd say some use of constraint-programming in lp is now nearly standard,
though sometimes in a better-integrated way than other times. Nearly every
Prolog system now has both clp(fd) and CHR built in, for example, but they
don't always interact with Prolog derivations in an ideal way ( _especially_
not with Prolog negation-as-failure).

Answer-set programming has constraint stuff more as a core feature. A common
paradigm in asp is to mix "normal" lp type rules, where you specify how to
derive exactly the correct solutions, with a generate-and-test style where you
over-generate (with choice rules) and then filter with constraints (called
integrity constraints in asp), which is sometimes easier to specify.

------
chalst
My explanation at LtU, in response to a question from Ehud Lamm:

    
    
        I think that Prolog has lasting interest as a teaching language, and is one of 
        the handful of PLs that everyone with a broad interest in programming should  
        learn, but that the limitations of its basic computational mechanism make it 
        uncompetitive as a general PL. I find that Haskell, through the list of 
        successes paradigm, is usually a better language for writing the kind of 
        programs Prolog is good at than Prolog.
    
        I think the LP community should be seriously looking for a successor. There's 
        no shortage of candidates.
    

\- <http://lambda-the-ultimate.org/node/2803#comment-41684>

As I said in that thread, I think the LP community is in denial about the
unsuitability of Prolog as a general-purpose programming language; this
article echoes the Lispers claim that Prolog was killed by its association to
over-ambitious AI projects: I think the argument in the case of Prolog is much
weaker than in the case of Lisp.

~~~
_delirium
I don't think most of the LP community still promotes Prolog, although it's
hard to delineate exactly what the LP community is. Going by papers presented
at AAAI and IJCAI, the bulk of the research is on answer-set programming
(<http://en.wikipedia.org/wiki/Answer_set_programming>), which tends to be
used as a more specialized solver rather than as the top-level loop of a
program. In other corners of the world, multiparadigm logic/functional
languages like Mercury seem to be what people are hanging their hats on.

~~~
chalst
That's a good example. I've always thought of ASP being more influenced by SAT
solvers than Prolog, but following the links from the WP article, there's a
lot of Prolog culture there: Horn clauses, Herbrand interpretations, &c. So
maybe LP is moving on. I should take a closer look. (I probably should have
years ago: I've done a fair bit of refereeing for IJCAI over the years).

Multi-paradigm languages are not so great for the Kowalski-esque LP world,
because the elements of these languages don't fit in the Kowalski/Pierce
picture of knowledge representation and reasoning. Something like lambda-
Prolog, which uses higher-order unification to model functional programming
within a clausal language, seems to me to be a much better, more conservative
step for this community.

~~~
_delirium
I think ASP's a bit of a merger of the two cultures. The implementations are
heavily SAT-influenced, with all existing ones based on eliminating variables
to ground to a finite program that's then solved. But its semantics (stable-
model semantics) originated in the early-90s flurry of attempts to come up
with a solid logical semantics for LP (alongside other attempts like the well-
founded semantics), to replace Prolog's operationally defined "whatever SLDNF
resolution returns" semantics, and especially its displeasing-to-logicians
property of the semantics depending on statement order. And the most widely
used surface syntax, sometimes called "AnsProlog", is an adaptation of Prolog
syntax.

This research group in particular is now pushing it heavily in the
programmability/expressivity direction, which is pretty interesting:
<http://potassco.sourceforge.net/> . There is even some other research
floating around on more software-engineeringish things like ASP debugging
techniques.

------
codelion
This is a dupe. Original -> <http://news.ycombinator.com/item?id=1648711>

~~~
billswift
There are some really good comments and links there, thanks.

------
maxharris
From the article:

"Fast forward to 1992. The world looks very different. In 1990 the Nikkei
Index, which had risen strongly for an unprecedentedly long period, from the
beginning of the FGCS project, was about to breach 40,000. But instead of
continuing its rise, it started a decline and was down to half the peak value
by 1992. Most of the Toyotas and Hondas driving around in the US were mostly
made in the US. If MITI was mentioned at all, it was in studies revealing that
MITI had never sponsored a successful project; that industry, far from being
helped by MITI, had been hindered by its meddling."

From Wikipedia: "The Ministry of International Trade and Industry (通商産業省
Tsūshō-sangyō-shō or MITI) was one of the most powerful agencies of the
Government of Japan."
[http://en.wikipedia.org/wiki/Ministry_of_International_Trade...](http://en.wikipedia.org/wiki/Ministry_of_International_Trade_and_Industry)

------
arethuza
The recent comments by Eric Schmidt about school level CS education in the UK
(even though there is no UK-wide educational system) made me look at what my
12 year old son might be studying in a few years.

Interestingly enough it appears that Prolog is alive and well and in Scottish
schools - for example see this exam past paper:

[http://www.sqa.org.uk/pastpapers/papers/papers/2010/AH_Compu...](http://www.sqa.org.uk/pastpapers/papers/papers/2010/AH_Computing_all_2010.pdf)

~~~
chalst
Prolog is great for teaching: I don't many disagree with this, and I don't
that this is what's at stake in <i>Prolog has been killed</i>.

------
valisystem
?- "Who Killed Prolog?"

yes

------
seletz
My experience with Prolog was that of a very arrogant CS student which got
__very __confused by the non-procedural way of prolog and the (for me) weird
syntax.

So it's probably the root cause for me that we've not got an proper
introduction to non-procedural languages. What left is a horrid experience of
trying to solve backtracking problems with prolog.

For my personal universe, prolog got killed by my education.

------
DanBealeC
[http://ngrams.googlelabs.com/graph?content=PROLOG%2CLISP%2CF...](http://ngrams.googlelabs.com/graph?content=PROLOG%2CLISP%2CFORTRAN%2CCOBOL%2CJAVA%2CC%2B%2B&year_start=1940&year_end=2008&corpus=0&smoothing=3)

poorly formed google ngram query is poorly formed.

------
ralphc
It's not dead yet - it was used for NLP in Watson.

------
Volpe
yes

