The development of SWI-Prolog started at the University of Amsterdam. It was deployed in numerous research projects funded by the European union as well as the Dutch government. Over these projects lessons learned were reflected in the evolving SWI-Prolog system and its libraries. Developed in an application context rather than a language design context, caused the system to stress support for running and developing large applications in international teams.

Because SWI-Prolog was a means to an end for the research context in which it was developed it was quickly released for free under a, then common, academic use license. Free access, good portability, an early port to MS-Windows and an easy to use environment caused the system to become dominant in education and, later, research.

Involvement of commercial users has greatly matured the system. With their funding and contributions to the software in kind, SWI-Prolog got its first garbage collector, mature multi-threading support, improved memory management, support for unbounded integer and rational number arithmetic, ODBC interface, SSL (TLS) support, advanced tabling support, documentation generation, unit testing and much more. See also the contributors page.

The development of the SWISH web IDE that commonly serves hundreds (with peaks well over thousand) of students simultaneously on a single server have given SWI-Prolog and Prolog in general new perspective for education. Running 24x7 on a single server while so many students running very diverse and often broken programs has greatly improved robustness and scalability.

As a result, a great deal of the development work as well as positioning SWI-Prolog primarily as a robust and scalable application development platform fits poorly in an academic setting. This is why I started SWI-Prolog Solutions b.v.

Jan Wielemaker, PhD