JetBrains released the latest major version of IDEA, it's multi-language development environment. In this interview with Artima, JetBrains architect Dmitry Jemerov talks about the most significant IDEA 8 features, including improved core Java support and support for multiple languages. He also discusses JetBrains' new Ruby IDE:
One of the major things we added in IDEA 8 is SQL support, providing full-featured coding assistance to the SQL language. As a result, IDEA can now serve as a database development tool: it can run scripts, it can do code completion inside SQL queries, and so on. Presently, we support the MySQL dialect, and we're soon going to support more dialects, such as Oracle and Postgres. Some of those will appear in bugfix updates shortly.
Another new feature is extensive support for the template languages FreeMarker and Velocity. If you're using those, instead of pure JSPs, as your view technology, you also get full support for CSS and HTML embedded inside your templates. We also understand macros in the templates, and provide a lot of code assistance while editing those templates.
We also expanded our support for the popular Java enterprise frameworks. We now provide full support for the JBoss Seam framework, including page-flow diagrams, all the usual code assistance features, and some support for the business rules part of Seam. In addition, we now support Struts 2, Spring 2.5, as well as working withRESTful Web services.
In the latest IDEA version, we evolved our Maven support to include Maven archetypes, full code-assistance for editing pom.xml files, error highlighting and code completion. We also have some Quick Fixes that automatically locate a missing class: If you're using a library you haven't imported through your Maven file, we will automatically find the library for you and add a dependency to pom.xml.
We also have something we call UML-like code diagrams. The current version has been in development for just a few months, and it's not yet as full-featured as some people would expect it to be. But it's a start, and we're looking forward to getting feedback from people about what they want to see in a code diagram solution.
Our Groovy plug-in has been evolving as well in parallel for a long time, and is now very full-featured. So we decided that it was ready to be in the core product and, as a result, Groovy and Grails are now bundled with the core IDEA 8.
We also have perhaps the most extensive integration between Ruby and Java. If you install the Ruby plug-in to IntelliJ, you get full cross-language support, including navigation and refactoring between Ruby and Java. If you rename a method in Java code that's also called from Ruby, the Ruby code will automatically be updated. This allows for a very efficient way to work with Rails applications that target JRuby, for instance.
IDEA 8 offers some Scala support as well, but we're still working on that. For the moment, the team working on Scala is quite small, but we hopefully will be able to expand that team in the coming year. One of the big recent milestones is that we can now do joint compilation for Java and Scala code. This is available for the latest version of Scala. We are working on improving our type system support: while not yet complete, it has progressed a lot. And we're working on providing less fancy features, too, such as overrides, implements, refactorings of Scala code, and documentation.
We have been working for some time now to factor out many aspects of IntelliJ IDEA into a modular design. The first fruit of that work is a new product, RubyMine, a Ruby IDE. We released RubyMine just a couple of days before releasing IntelliJ 8. It's currently available as a public preview, and will remain in preview for next few months, with a 1.0 release planned for the first quarter of 2009.
We also have a Python IDE in the works, and PHP is under consideration, as well as possibly making a database development tool. These will be focused tools, and we will introduce them at prices that will make them very attractive to developers.