[net.ai] On Hewitt's "Prolog and logic programming will fail ..."

tomk@cvaxa.UUCP (Tom Khabaza) (09/05/85)

I have read with interest the discussion following Carl Hewitt's
"Prolog will fail as the foundation for AI and so will Logic Programming".
I particularly enjoyed Vijay Saraswat's reply, most of which I agree with.
However, I would like to add a few comments:

In some ways I was surprised by the original message; I should have thought
that if AI has taught us anything, it is that to solve a given problem, we
need a good representation language.  Why anyone might think that logic is the
BEST representation language for every problem is beyond me.  (No Kowalskiist
flames please, I know the arguments, and I don't regard the case as proven.)

On the other hand, we don't yet know what the limits of logic programming are;
researchers in the field are constantly coming up with new techniques.  There
is convincing evidence that logic programming is better than conventional
programming for some kinds of task, at least with regard to ease and clarity
(though probably not yet efficiency).

But I think the basis of the original comment goes deeper than the virtues and
vices of logic programming.  As I understand it (and I wasn't around at the
time) some earlier AI programming languages, such as perhaps micro-Planner and
its successors, WERE expected to become a "foundation" for AI.  Perhaps this
was because people still had hopes for the notion of some "ultimate"
representation language, or family of languages.

AI is older and perhaps more cynical now; I don't think we expect some single
foundation to the field in the form of a representation language.  Logic
programming may be very useful for some parts of AI; for example some kinds of
rule based systems, but I don't expect it to be the best tool for all kinds of
AI programming.  In fact my personal opinion is that logic programming will
find its forte in more conventional Computer Science, where formal
specification is a more practical proposition than in the relatively
exploratory activity of AI programming.

But I will say this in its favour: logic programming is IMPORTANT.

Logic programming is as different from conventional programming as programming
is from not programming at all.  I have met people who have given up on Prolog
because it was difficult for them and they (rightfully) considered themselves
competent programmers - and so thought it must be Prolog's fault!  (I don't
mean to imply that anyone who has posted in this discussion is such a person.)
But logic programming is different in fundamental ways; it's worth persevering
to get to the bottom of it, and as logic programming languages improve, it
will become even more so.

So for all you computer people out there, USE Prolog, and study how other
people have used it.  It really is worth it.