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 an M.S. in Computer Science from Saint Petersburg State University and over 15 years of professional experience, Maxim Shafirov has been a JetBrains IntelliJ IDEA developer and team lead since 2002.
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 IntelliJ 10?
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 projects?
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 community?
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 happened.