JetBrains

Polyglot Programming

Different programming languages bring different strengths. Polyglot programming allows developers to combine multiple languages on a single project. They can, for example, use Java to build the system core, scripting in Groovy to define a DSL around the core, HTML with JavaScript to build web UI and let say Ruby to implement other external services.

Of course these needs must be reflected in the tools like IDEs and Continuous Integration servers so that developers can painlessly switch between languages and smoothly integrate the different worlds together. Not only that all the productivity features like code-completion, Refactoring or code inspections must be available in all the languages, but on top of that they need to work across the languages, so that refactoring to a Java class is propagated up to the Groovy code that uses the class, for example.