Developing the Jspresso framework (not a Jspresso based application, but the framework itself), raises big challenges in terms of tooling. We are not talking about design nor architecture nor build system, but about everyday work writing, runing, testing and debugging the framework internals and how IntelliJ IDEA helps in solving these challenges.
Jspresso mixes different languages, technologies, libraries, and we need to work with an IDE that unifies the developer experience.
We could raise very similar points regarding Flex/Actionscript development (and with the Apache move, wee need the Flex integration to go forward very fast) or Groovy development (the SJS DSL is developed in Groovy); not to mention Java development, of course !
Beyond multi-language support, we need a strong integration of the libraries we use in Jspresso (Spring, Hibernate, …) in the IDE so that it can raise problems at development time and assist coding. These integrations are generally available and well supported in different IDEs but it’s a must have.
Then comes other tools integration. For instance, we often use JProfiler in order to track memory leaks and / or performance problems. Being able to run JProfiler from the IDE with all the session parameters already configured is a big advantage in terms of efficiency.
After more than a year using IntelliJ IDEA, the IDE has proved to cover almost all of the challenges that the Jspresso development raises. We almost never leave the IDE, whatever the phase we’re in (writing code, debugging, profiling, …), and it definitely helps us to spare time and effort to concentrate on what’s important for us : code quality and efficiency.