Introduction

Jim is an opensource small footprint implementation of the Tcl programming language. It implements a large subset of Tcl and adds new features like references with garbage collection, closures, built-in Object Oriented Programming system, Functional Programming commands, First class arrays. All this with a binary size of about 85kb (that can be reduced further excluding some non-vital commands, and commands not available in Tcl itself).

The Jim core is currently entering the beta stage, must of the core language is already implemented and it is possible to use it to run many unmodified Tcl programs. In the mean time we started to develop extensions, some like sqlite, and ANSI I/O are already ready for prime time, some other like SDL, Win32 and Win32 COM, POSIX, Event loop, and many others are work in progress. All the extensions are included in the source distribution. (Read more about extensions)

Goals

Jim's goal is to provide a powerful language implemented in roughly 10k lines of code that is presented as a single C file and an header file, in order to allow developers to put Jim inside their applications, as scripting language, configuration file syntax, without to depend on external libraries or other big systems.

We belive scripting is a very interesting feature for many applications, but developers are often not encouraged to link the application to a big external system. Jim try to address this problem providing a very simple to understand and small footprint implementation of a language that is ideal for scripting, and at the same time is powerful and able to scale.

Another field where Jim may help is the one of Embedded Systems. Jim is written in ANSI-C, is very little both in binary size and memory requirements, and the Tcl language is just ideal for this tasks (For example, CISCO routers are using Tcl).