JetBrains has put improved performance and accommodating modern workflows at the top of its end of year wish list for IntelliJ and its other IDEs.
The Prague-based firm’s CTO Dimitry Jemerov laid out its plans for the Java IDE and beyond in a pre-Christmas roadmap this week.
He said two of the historic “pain points” for the firm’s IDEs were startup times and indexing. The former had been tackled this year, he continued, and 2020 would see indexing jump to the top of the performance fix list.
“First, we’re making it possible to use prebuilt index chunks,” he wrote, “So that every IntelliJ instance on the planet doesn’t have to do the same work of indexing the java.lang.String class.” This will be rolled out gradually over the year, with the JDK, then libraries from Maven Central, “as well as interpreters and packages in other IDEs.”
The firm is also looking at supporting “sharing of index chunks for project source code within a team or an enterprise.” Other indexing tweaks including making many more IDE actions available during indexing, making the process less disruptive. It will also “detect and notify you about indexing anomalies, including files that take too long to index, files that are reindexed too frequently, and index rebuilds caused by exceptions.”
Other performance improvements include moving actions requiring a write lock out of the UI thread. The new threading model will be applied to IntelliJ, then other IDEs.
On the workflow front, Jemerov wrote that the firm is working on collaborative editing, which is “the highest-voted request in our issue tracker”.
“In the approach we’re currently pursuing, there will be one primary IDE, running on the machine where the source code is located, and other users will be able to connect their IDEs to the primary one as “thin clients”, not requiring direct source code access,” he explained. This will be based on the Rider protocol, he added, and won’t appear in IntelliJ any time soon.
A new “target environment” concept will be rolled out in IntelliJ IDEA 2020.1, with supported environments including “your local machine, a Docker container or a machine connected over ssh.” Over time, “We plan to unify our existing Docker and remote interpreters support around the new architecture [and] provide deeper cloud integration”.
An overhaul of the vendor’s project model is also on the cards, to “workspace model” which will work at the directory, not file level, and allow arbitrary mixing of projects of different types, amongst other benefits.