Why the Spring Tool Suite is building on Eclipse

Posted by

There have been some questions about whether the upcoming Spring Tool Suite (STS) will support other IDEs, such as IntelliJ IDEA. Rod Johnson and I recently answered some related questions on InfoQ, but the answer to this one is still evolving, so please consider sharing your thoughts on it. In choosing an IDE integration strategy for the Spring Tool Suite, we could either go breadth first and do multiple IDEs at once, or focus on one. A few years back we chose the breadth-first approach with the AspectJ IDE support. This time around the decision to go depth-first was easy because we knew we needed an IDE platform which had the openness and modularity required to support the extensions we have planned, and which was already adopted by a majority of the developers using Spring. There was also the key need to leverage Mylyn’s Task-Focused UI and the Spring IDE, which are at the heart of this effort. At this time, the ecosystem of components and user communities needed to support the Spring Tool Suite exists only on Eclipse. Where does this leave the IDEA and other IDE users?

The good news is that the frameworks that STS will be building on and improving are open source projects that are part of Eclipse and Spring. As we previously demonstrated with the AspectJ compiler and structure model, core framework components that are packaged as Eclipse OSGi bundles can be used from within other IDEs including IDEA and NetBeans. For example, while IDEA already has some neat support for things like Spring AOP, they will be able to reuse our upcoming STS efforts in providing a canonical model of Spring application structure. If you are a user interested in support for your IDE, consider commenting here or on Adrian’s blog, be sure suggest this to your vendor or raise an enhancement request is raised with the corresponding project of interest (e.g. Spring IDE, Mylyn). For example, there have recently been requests to support Mylyn in IDEA. As stated on the mylyn-dev list, I see the reuse of core models as a very positive thing. While there will be plenty of room for closed source differentiation on top of the frameworks that we are contributing to, the frameworks will continue to be open source and designed for reuse, which will help ensure that any developers building on Spring get to see a consistent and comprehensive model of their application within their IDE.