Tcl/JTcl is a great programming language and allows rapid development of new features in our software. We particularly like it because it was specifically designed as an extension language for applications and its style of programming is somewhat orthogonal to that of the underlying Java code. The latter allows us to really use it as a complement, rather than just a more dynamic version of the underlying Java code. And, fundamentally, we find that there is little coding that can be done in other dynamic languages that is not readily done in JTcl. Having said all that, not everyone likes the Tcl programming style and other languages such as Python are becoming more commonly used in scientific programming.
One advantage of our use of Java is that the Java world consist of not just the programming language, but a virtual machine (Java Virtual Machine) and Java is just one of the languages that will run on it. In the same way we run JTcl on the Java virtual machine, we can use other programming languages. We've recently started including Jython as an additional language in NMRViewJ. We haven't made all NMRViewJ features available via Jython as of yet, but we're starting to move in that direction.