Ola Bini is a core member of the JRuby development team and an advocate for Polyglot Programming. He was hired by ThoughtWorks in 2007 to work on Ruby and JRuby.
In this conversation we talk about what polyglot programming is and why we shouldn't settle for the one true programming language. We also discuss how this approach is useful, specifically using Ruby on top of other platforms such as the JVM and the .NET framework.
Ola presents the an approach to use different languages for different tiers within an application. He suggests breaking applications up into the following layers:
DSL Layer - one DSL per per technical domain, typically an internal DSL built in your application layer's language
Application Layer - where the majority of your business rules are defined, typically a dynamic language implemented on top of your static language platform
System Layer - the static language platform and runtime the application runs on, where performance optimizations can be made if necessary
We also discussed real world examples of this approach. And whether this approach adds additional complexity for IS organizations to manage. Ola has been described to me as "scary smart", and he does not disappoint in our conversation. I really appreciate him taking the time to talk to me about polyglot programming and had alot of fun talking to him.