JetBrains is revealing some of the things that IntelliJ IDEA and other IntelliJ IDE users can expect in the new year.
According to JetBrains, the following features will be released over the course of 2020. The first to be released is the 2020.1 spring release. The features are centered around two main themes: performance and support for modern development workflows.
On the performance side of things, it is improving indexing speed, redoing the read/write locks threading model, and support for loading and unloading plugins without restarting.
According to JetBrains, the two biggest pain points related to IDE performance are startup performance and indexing speed. The team fixed issues around startup performance this year, allowing them to focus their attention on indexing speed next year. To improve indexing speed, they will make it possible to use prebuilt index chunks, make indexing less disruptive. In addition, the team will be making more IDE actions available during indexing, detecting, and notifying developers about indexing anomalies, and investing in performance optimizations to make sure that the indexing systems don’t need to do unnecessary work.
Another pain point developers run into is UI freezes. JetBrains plans to address this by removing actions requiring a write lock out of the UI thread. According to JetBrains, there is an architectural reasons that many of the IDE’s internal data structure runs on the UI thread. The benefit of this architecture is that it offers a simple programming model, but UI responsiveness often suffers because of it. “Next year we are going to refactor the essential UI components and APIs of the IntelliJ Platform to employ the new threading model. Once the new model is stable and the improvement is perceivable, we’ll switch to the new model in all IDEs, making the UI smooth and lag-free,” JetBrains wrote in a post.
It is also adding support for loading and unloading plugins without restarting. In IntelliJ IDEA 2019.3, they introduced this ability for install theme and keymap plugins, and now they are extending it to all plugins. To accomplish this, they will provide instructions for doing so to third-party plugin developers.
Workflow support improvements include collaborative editing, cloud execution support, and a redesign of the project model.
According to JetBrains, collaborative editing was the highest-voted request in their issue tracker. There will be one primary IDE, which runs where the source code lives, and other users can connect their IDEs to the primary IDE as “thin clients.” These “thin client” users will access to core IDE features like navigation, completion, and debugging, but not the complete feature set.
JetBrains is also introducing cloud execution support. They will provide a target environment, with which files can be copied to and from. Processes can also be started from the target environment. This will initially be available in Java and Go configurations, and support for Docker and remote interpreters will be available in future releases.
Finally, it will redesign the project model. The project model is how the IDE represents the structure of a project, and while it has worked well in the past, it has certain limitations, such as not supporting arbitrary mixing of projects of different types and the fact that the project model works at the directory level, not the file level. The redesigned project model will remove those limitations and offer additional benefits like improved performance during project opening, smoother synchronization with Maven and Gradle, and a nicer programming model.