It's widely known that IntelliJ IDEA supports multiple languages which run on the JVM: Groovy, Scala, Ruby, Python. A lesser known fact is that large parts of the plugins targeting those languages are themselves written in the languages being targeted. The Scala plugin is almost entirely written in Scala, the Ruby plugin has large parts which run under JRuby, and so on.
During this talk we'll describe our experience extending a large Java application with those languages, the problems we've faced and the benefits we've achieved. We'll also demonstrate the cross-language development features of IntelliJ IDEA, including cross-language navigation, refactoring and cross-compilation. We hope that our experience will let you decide whether to start using one of these JVM-based languages in your own project.
Ilya Sergey is a software developer at JetBraint Inc. His research interests include programming languages design, optimizing compilers, type systems and multiparadigm programming, both their theoretical and applied aspects. Last two years he concerned to development of JVM-based languages support in IntelliJ IDEA, namely Groovy and Scala. Ilya received his Masters Degree cum laude in Mathematics and Computer Science at Saint-Petersburg State University and now continue his research in the domain of Type Systems at DistriNet research group on the base of Katholieke Universiteit Leuven. Scala plugin for IntelliJ IDEA is almost fully implemented on Scala programming language itself. In his speech Ilya will describe some problems and their solutions related to implementation of code analysis, cross-compilation and interaction between Java and Scala parts of big project. Various cross-language development features, such as refactorings and navigation, will be demonstrated.