Our software is written in a combination of several languages. The low level code, requiring high performance, is written in Java. Above that we use dynamic (or scripting) languages to allow rapid and user friendly development. The primary dynamic language that we have used is an implementation of Tcl (Tool Command Langauge) that is itself written in Java. Tcl was originally designed as, and is still widely used as, a language that could be embedded into computer programs so that they could be easily scripted and extended, even by end users. You can learn more about Tcl at the Tcl Developer Exchange. Programming languages wax and wane in their popularity and Tcl is not currently at the height of its popularity, yet it remains a powerful and exceedingly useful language as described here.
The Java implementation of Tcl that we use is JTcl and you can learn more about it at the JTcl Project. One of the great things about JTcl is that you can not only write a script in Tcl, but your Tcl script can directly interact with Java code. Commands are available that allow you to create new instances of and call methods of public Java objects.