Newsgroups: comp.lang.prolog
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!news.kei.com!simtel!harbinger.cc.monash.edu.au!bunyip.cc.uq.oz.au!munnari.oz.au!cs.mu.OZ.AU!mundil.cs.mu.OZ.AU!conway
From: conway@mundil.cs.mu.OZ.AU (Thomas Charles CONWAY)
Subject: Re: speed of prolog
Message-ID: <9515210.9197@mulga.cs.mu.OZ.AU>
Sender: news@cs.mu.OZ.AU (CS-Usenet)
Organization: Computer Science, University of Melbourne, Australia
References: <3pam2e$9jh@chuangtsu.acns.carleton.edu> <3pptgj$6do@percy.cs.bham.ac.uk> <3ps2ck$hge@hitchcock.dfki.uni-sb.de>
Date: Thu, 1 Jun 1995 00:39:29 GMT
Lines: 48

vanroy@dfki.uni-sb.de (Peter Van Roy) writes:

>Thomas Lindgren and Don Ferguson are right: commercial Prologs have
>converged to a technology that is adequate for its applications.
>
>It has been proven that there is *no inherent reason* why Prolog can't
>be made to run as fast as C; I think that by now this should be obvious
>to anyone who is well-informed about Prolog implementation technology
>(constructive proofs include the systems Parma and Aquarius; the latter
>is available for free and can run big programs). 
>
>Commercial tools have not yet used the latest Prolog implementation
>technology to get every last ounce of performance.  Perhaps this is
>because they don't feel the need?  Perhaps an execution-time factor that
>is less than an order of magnitude (which is the difference between C and
>SICStus or Quintus) doesn't make any difference, given today's
>high-performance machines.

I would certainly agree that for many applications the currently
popular implementation technologies are adequate, however there
are two points that I would like to open up to discussion.

First, since we presumably are in agreement that predicate logic
is am elegant and powerful notation for writing programs, it would
be nice to use a logic programming language to write software for
my digital signal processing applications, my operating system,
and so on. I think it is possible to settle on accepting Prolog
as being a good tool for a particular group of problems, and to
miss the oppertunity to bring the power of LP to other problem
domains.

Second, as has been pointed out elsewhere in this thread, there is
a lot more to the production of software than the speed of the
implementation(s). The other factors of expressiveness of the language,
the existence of libraries, support for devices, GUIs, etc, the
difficulty of maintainance, and so on, should not be underestimated.
Books like "The Mythical Man-month" (Brooks), and "The Psychology
of Computer Programming" (Weinberg) give a clear message that
maintainance is often the most costly part of the software business.

I do not count maintainability as one of Prolog's strengths, and
while declarative debugging (and more usual use of 4-port debuggers)
are very useful for tracking down problems, many of the problems
that one finds in Prolog programs would be avoided in the first
place if Prolog had a standardized type system (as do Goedel, ML
and Haskell).

Thomas
