[Up] [Contents] [Index] [Summary]
There are a number of reasons why you better choose a commercial 
Prolog system, or another academic product:
- SWI-Prolog is not supported
Although I usually fix bugs shortly after a bug report arrives, I cannot 
promise anything. Now that the sources are provided, you can always dig 
into them yourself.
 - Memory requirements and performance are your first concerns
A number of commercial compilers are more keen on memory and performance 
than SWI-Prolog. I do not wish to sacrifice some of the nice features of 
the system, nor its portability to compete on raw performance.
 - You need features not offered by SWI-Prolog
In this case you may wish to give me suggestions for extensions. If you 
have great plans, please contact me (you might have to implement them 
yourself however).
 
On the other hand, SWI-Prolog offers some nice facilities:
- Nice environment
This includes `Do What I Mean', automatic completion of atom names, 
history mechanism and a tracer that operates on single key-strokes. 
Interfaces to standard Unix editors are provided, as well as a facility 
to maintain programs (see make/0).
 - Very fast compiler
The compiler handles about 100K bytes per second on a SPARC-II 
processor.
 - Transparent compiled code
SWI-Prolog compiled code can be treated just as interpreted code: you 
can list it, trace it, assert to or retract from it, etc. This implies 
you do not have to decide beforehand whether a module should be loaded 
for debugging or not. Also, performance is much better than the 
performance of most interpreters.
 - Profiling
SWI-Prolog offers tools for performance analysis, which can be very 
useful to optimise programs. Unless you are very familiar with Prolog 
and Prolog performance considerations this might be more helpful than a 
better compiler without these facilities.
 - Flexibility
SWI-Prolog allows for easy and flexible integration with C, both Prolog 
calling C functions as C calling Prolog predicates. SWI-Prolog is 
provided in source form, which implies SWI-Prolog can be linked in with 
another package. Command line options and predicates to obtain 
information from the system and feedback into the system are provided.
 - Integration with PCE
SWI-Prolog offers a tight integration to the Object Oriented Package for 
User Interface Development, called PCE Anjewierden & 
Wielemaker, 1989. PCE is now also available for the X Window 
System.