IntelliJ IDEA 10 Interview
IntelliJ IDEA is really a huge project and in major releases almost every area gets some attention and improvements. IntelliJ IDEA 10 is not an exception.
With the public EAP program of IntelliJ IDEA 10 opened last
month, JAXenter speaks to JetBrains IntelliJ IDEA team lead Maxim
Shafirov on what we can expect from the final release, and how open
sourcing IntelliJ IDEA has affected the project…….
JAXenter: Can you give us a brief overview of
some of the most important new features in IntelliJ 10?
Maxim Shafirov: IntelliJ IDEA is really a huge
project and in major releases almost every area gets some attention
and improvements. IntelliJ IDEA 10 is not an exception, and here
are some of the most important areas:
• UI and usability improvements in the IDE and the editor for
all platforms, and for Mac OS X in particular.
• Many enhancements in supporting version control systems,
especially distributed ones (DVCS), namely Git and Mercurial.
Mercurial support is now a bundled feature of all of our IDEs.
• We’ve made a significant effort to improve Maven integration
in IntelliJ IDEA, with new refactorings, code generation and
navigation actions, as well as useful dependency diagrams.
• Different databases and persistence frameworks support gets
many big and small improvements that our users have asked for, such
as new JPA and improved JDBC consoles, support for HSQLDB dialect,
inplace database editing, and more.
JAXenter: How has console folding, also
available in IDEA 9.0.2 via a Console Folding plugin, developed in
Maxim Shafirov: Generally, console folding works as it did in IntelliJ
IDEA 9.x, with one new addition: it allows for easier creation of
folding rules using the new ‘Fold Lines Like This’ option. Also,
the console folding functionality is now bundled with IntelliJ IDEA
10 and does not require any additional plugins to be installed.
JAXenter: How does IntelliJ 10 help resolve
dependency conflicts between modules and libraries in Maven
Maxim Shafirov: IntelliJ IDEA offers a special
dependencies diagram layout which shows
dependencies (nodes) in the same order as they are defined in
pom.xml files. Colors help understand the structure, e.g. modules
are blue, test dependencies are green, and conflicting dependencies
are red. If you select one of the conflicting nodes, IntelliJ IDEA
shows what they conflict with. Of course there are many helping
actions, such as quick navigation from a node to its definition,
filtering the scope to display in the diagram, and smart quick-fix
actions suggested for conflicts resolution.
JAXenter: IntelliJ 10 comes with initial
support for AspectJ and Spring Roo. How do you see this support
developing in the future?
Maxim Shafirov: At the moment AspectJ support
is centered around inter-type declarations (required for Roo), with
the goal to make development of them as pleasant as it is for Java.
Full-featured support of AspectJ including its dynamic
cross-cutting capabilities is on the way. For Roo, the first
waypoint is definitely a console integration into IDEA.
JAXenter: You open sourced IntelliJ IDEA in
October, 2009. How has open sourcing impacted the IntelliJ IDEA
Maxim Shafirov: It’s been almost a year since
we started the open source program. In this time we’ve observed
every positive change that we had expected. The community around
IntelliJ IDEA has grown and become more active in ways that were
not even possible before, like submitting thoughtful patches and
many others. We feel increased awareness of IntelliJ IDEA in the
Java development world and other communities like Groovy and Scala.
Truth be told, we were prepared for a sales drop, but it never