The design of languages in the LISP family generally provides little support for a real module system and the possibility of delivering stripped-down, closed applications; indeed, most implementations call for a single “world” in which the application and the tools used to develop it (compiler, interpreter, debugger, and so on) coexist in the same core image. In this research and experience paper, the authors present the module system TALK, a new LISP dialect that was designed by listening to industrial users.
TALK program units are modules, libraries, and executables, just as in C. Each module has an associated description file that lists the exported entities, the modules and libraries necessary for the execution of the module, and the modules and libraries necessary for its compilation. Indeed, one of the main features of this module system is the clear separation of the execution environment from the compilation environment. The TALK system comes with an analysis tool that automates most, if not all, of the management of these description files.
I like this paper because it provides a sound, simple, and well-justified solution to one of the main hindrances to using LISP to develop industrial applications. Of course, it does not follow the traditional approach, but the authors (and their customers) show that it is quite effective. The paper is well written and I recommend it to both potential customers and competitors of TALK.