The idea of combining several programming languages into one application to solve a problem is hardly new. In fact, it’s something the industry has been starting to converge to recently with a revitalization of dynamic, functional languages on top of VMs (think Jython, JRuby, Groovy).
But reading this recent post from Ola Bini (one of the JRuby commiters) about polyglot programming felt like an ah-hah moment for me. He loosely describes several layers of a polyglot application and what they might be responsible for. The idea really resonated with me.
When I worked at i2 Technologies, I had the “opportunity” to work on a frankenstein version of one of these. It was basically a fat-client application that was a bunch of Swing components glued together with reams of Jython business logic. The idea was that consultants in the field would modify the Jython, though in practice they never did. Ola’s description seemed like a better fit because it is more structured than what I’ve experienced before.