Prev Next Up Home Keys Figs Search New

Why Hasn't Prolog Taken Over the World?

Appeared in Volume 8/2, May 1995

Keywords: programming.

roland@sics.se
Roland Karlsson
14th November 1994

1. You need that 'a-ha' experience before you understand how good it is. It is much easier to start programming C.

2. Most Prolog environments are just that - environments. The Prolog query top loop is very nice for debugging and for some applications. For most applications though, you need to be able to make small, easy to compile stand alone applications.

3. Conservatism. A company needs some serious motivation before trying something new.

4. Prolog has an academic flavour. Industry tends to look at academic work with some amusement.

5. Lack of control over memory allocation. This is a serious one!

6. It should not take over the World! Different problems needs different tools.

walth@netcom.com
Walter Howard
19th November 1994

From what I have seen, many languages reach the real world via this series of events:

1) Small company needs some computerization.

2) They hire the cheapest programmer they can afford who uses the

language of his choice (Visual Basic is a good example).

3) The Small company grows larger and so does the original system. Now we have a major system built from a language whose selection was made on a whim, not an assessment of real capability.

4) Every company I have been in, without exception, at this point gets the notion that they could sell their internal computer system to others in their particular vertical market.

5) Some of these successfully do this and then sell the system to a Software Only type marketing company.

6) Voila. It looks like the product was developed from scratch by this software company but in reality is was just a kludge put together years before and repackaged with new flair.

The above scenario provides some hints to those who want their language accepted.

1) Compilers must be made available cheaply to the original progammers/ hackers who get them used in the real world. More than $100 is too much.

2) The language has to be understandable to newbies.

3) The language has to be appealing to newbies. In many cases lots of bells and whistles and pretty lights do the trick (thus the popularity of the god-awful garbage dump called Microsoft Windows).

Visual Basic fits all of the above and it is shocking how much demand there is for programmers who know it. It's a sad state of affairs.

alf@sics.se
Thomas Sjiland
20th November 1994

Logic programming environments, like those of other languages developed in the 70s and 80s, have in my opinion a serious problem (apart from their often inherent single-threadedness): it is usually difficult to write small programs that load quickly and perform a simple task without interaction with a "top level". More effort must be put into interoperability and GUI-integration so that small handlers for various tasks are at least as natural to write in a logic programming language as in C/C++ or BASIC. It would be nice if all the different dialects adopted similar abstractions for these aspects, of course.

There is also a need for more programs (partly) written in Prolog, that perform tasks that are accepted as important by the majority of developers who couldn't care less for theoretical elegance.

Apart from this, access to a good development system at a reasonable price is crucial. You must be able to write programs that can be distributed without requiring licences for the full development environment.

mmh@dcs.qmw.ac.uk
Matthew Huntbach
18th November 1994

Wayne Citrin wrote:
Most Prologs I've encountered offered no support for modularity. In the ones that had it, it was rudimentary. Such support is necessary if Prolog is to be used for the development of large software systems.

Usable commercial Prolog systems should support something like strong typing (preferably without sacrificing too much of the power of the model). Many bugs in Prolog programs are essentially type errors.

The Goedel logic programming language (see the book published this year by MIT Press, authors Patricia Hill and John Lloyd) has both these things. I've been critical of Goedel in the past for other reasons, but I agree with it on types and modules: these things have to be in a language, logic or otherwise, if it's to be a serious tool for serious programming and not just a toy.

conway@munta.cs.mu.oz.au
Thomas Charles Conway
29th November 1994

Roland Karlsson writes:
5. Lack of control over memory allocation. This is a serious one!

If Prolog implementations lack good garbage collectors, then complain to the implementors. Automatic memory management is one of the biggest strengths of the logic and functional programming paradigms. A good proportion of the bugs in C programs are memory management related. In a logic or functional language, the implementor needs to get it right only once, and then it works for everyone.

I believe there is also research that has demonstrated that the amortised cost of automatic memory allocation is lower than the cost of explicit memory management.

Prev Next Up Home Keys Figs Search New