The L3 language and interface: "The L3 language and interface"
l3lang(1) is a persistent, interpreted language designed to make interacting with scripts and the data they produce convenient. It does this by keeping track of all computed values (reducing file clutter), providing nested namespaces and functions (avoiding name clashes), and giving point-and-click access to the computed values through the script itself (avoiding the filesystem detour).
It is primarily used through l3gui(1), a worksheet-style interface. Long-running scripts can be executed without the interface, and the results loaded later for interaction.
To avoid the need to learn yet another language, L3 is compatible with a subset of Python and can use any Python library, including Python C/C++ extensions. In particular, the sparx tools (image processing) and NumPy (numerical linear algebra) are known to work. The RPy (statistical computing via R) package also works, but extra care must be taken to make sessions persistent.
In l3gui, every part of a script is an object and its value(s) can be examined via mouse menus, or reinserted into the gui for use in other scripts. This mechanism includes nested loops and function definitions; all values computed in a loop or function can be inspected later.
Scripts and code fragments can be assembled as structures, providing graphical script construction for problems with few steps.