Tcl/Tk

Tcl (tool command language) is a scripting language with the feature that it is easily extendible with new commands written using C. Tcl was created with the goal in mind of providing a simple method for designing good command languages for solving simple tasks. Tk (toolkit) compliments Tcl with a set of commands for the creation of graphical user interfaces. Jobs that would normally be considers a difficult task using typical C based toolkit libraries are much accelerated by the use of Tcl/Tk. Also since Tcl/Tk programs are interpreted rather than compiled problems can be discovered early and corrected quickly. Applications written using the Tcl/Tk environment generally consist of a small set of new commands which are compiled using C, along with Tcl scripts making use of them to define the user interface and control data-flow.

Tcl/Tk was brought to our attention by the Marc Levoy paper "Spreadsheets of Image". Levoy made use of the scripting language as an interpreter for cell formulae, this had the advantage that cells could contain Tk widgets returning numerical results, however Tcl is much harder to learn than any normal spreadsheets language, and hence was not where we used it.

Our reasons for choosing Tcl/Tk over X-View or equivalent C based toolkit was that it allowed us to abstract the interface from the spreadsheets internal model. Making it a very simple task to expand the interface or produce an entirely new one.