IntelliJ IDEA 8: Beyond Java
The stand out changes that can be found in IntelliJ IDEA 8 are listed on the JetBrains site, such as:
- Improved Performance
- Flex Code Editing
- Updated Integration for Spring 2.5
- Improved Groovy and Grails support
- Support for Scala and Python
InfoQ: What are the stand out changes made for IntelliJ IDEA 8, besides the release notes page?
Dmitry Jemerov: Internally, the biggest change was a refactoring to extract a common foundation out of IntelliJ IDEA, which allows us to build other products on the same code base. The IntelliJ IDEA platform is already used by MPS, and we have a number of not yet announced products in the pipeline which are also built on the same platform.
InfoQ: What level of Flex integration is provided? Is it comparable to Java?
DJ: For Flex, we are focusing only on code editing support (a visual designer for MXML is completely out of scope for us for the time being). Of course, the Java support has been in development much longer and is currently far more advanced, but the Flex support is following along the same lines. Some of the recently introduced features for Flex are auto-import and optimize imports, generation of constructors and accessors, and so on.
A debugger for Flex has also been added in version 8, and we're also working on seamless compilation support (so that you no longer have to use Ant tasks for compiling your project, as you did with IDEA 7).
InfoQ: What level of Python and Scala support are available?
DJ: First of all, I'd like to note that neither Python nor Scala will be bundled with the final release of IntelliJ IDEA 8. The plugins are in development, but by the time the final version of IDEA 8 is released, they'll be available in beta quality as separate downloads from the plugin manager. (The Scala plugin is actually already available: http://plugins.intellij.net/plugin/?id=1347 )
Once again, we're following the same basic sequence of steps as for other languages we support. For Scala, the main challenge is to provide a full implementation of the type system, which is necessary for full code completion. That's where we're focusing our efforts at the moment. Other than that, most of the common language support features are already in: syntax and error highlighting, formatter, structure view, auto-import, implement/override and so on.
Python is a dynamic language, which brings a significantly different set of challenges, but the feature set will end up quite similar. A debugger is also planned for Python.
InfoQ: Any plans on making the IntelliJFX plugin a first class citzen within the IDE (such as Java, Groovy, etc)?
DJ: We're taking a "wait and see" approach for the moment. From our point of view, Flex is a much stronger contender on the RIA platform market compared to JavaFX for now, and, given that our resources are limited, that's where we're focusing our efforts. But it's definitely possible that JavaFX will be supported in IDEA 9 provided that it sees sufficient adoption.
InfoQ: IntelliJ IDEA 8 brings integraton with Microsoft's Team Foundation Server, are there plans to assist in the development of the Atlassian plugin and provide first class integration with their products?
DJ: Actually Atlassian has allocated much more resources for the development of the IntelliJ IDEA plugin than we could ever hope to, so I don't think that any additional investment is required from our side. We do keep in touch with the developers of the plugin and provide advice and help regarding the usage of the IntelliJ IDEA APIs.
InfoQ: Will IntelliJ provide plugins or support for project management techniques (i.e. agile, rup, xp, etc)? Some plugins for Eclipse (as an example) provide tracking sprints, creating stories, displaying progress charts, etc.
DJ: We do not think that an IDE plugin should be a primary interface for such a tool. An IDE is primarily a tool for working with the source code of the project, and the sprints and stories have a very loose relationship to the code. Even if we do start working on a project management tool at some later time, most likely it will be primarily a Web-based tool rather than a plugin for IntelliJ IDEA.
InfoQ: When can users expect IntelliJ IDEA 8 to be out of testing and final?
DJ: The final release of IntelliJ IDEA 8 is planned for end of fall 2008.
InfoQ: Will existing users be able to download the IntelliJ IDEA 8 installer and simply upgrade?
DJ: IntelliJ IDEA 8 will not be a free upgrade (the users will need to pay the usual upgrade fee or evaluate the new version for 30 days), but the installation procedure for the new version will be as easy as ever.
InfoQ: What can users expect in the future for IntelliJ IDEA?
DJ: We can't announce any definite plans for versions beyond IDEA 8 yet. One thing that can definitely be expected is full support for Java EE 6. Of course, the new language features of Java SE 7 will also be supported, as soon as it's clear enough which of the JSRs being discussed are going into the release and which are left out.
Other than that, you can be sure that the usual stuff will be there - more languages supported, more frameworks, new refactorings and inspections, and so on.