Headless IDE has brains
Inside Upsource, JetBrains’ new web-based code browser
Last week, the company behind Java IDE IntelliJ (and a suite of other developer tools, including JVM language Kotlin) revealed their latest project: Upsource, a web app for browsing code repositories, and maybe more in the future.
The service’s format will be familiar to any users of web-based code repositories such as GitHub and BitBucket, allowing both current and past commits to be viewed and compared with full syntax highlighting.
However, JetBrains are attempting to distinguish their new project from other services with navigation via symbols and static code analysis, achieved by incorporating a headless version of their desktop IDE.
Evgeny Pasynkov, Upsource project lead and Oleg Stepanov, CEO at JetBrains, told JAXenter in a joint email that work on this “headless” version of IntelliJ began several years ago with continuous integration server TeamCity. Further modularisation, into a “so-called IntelliJ Platform”, furthered this work, providing a core codebase shared between more recent JetBrains IDEs like RubyMine and PhpStorm.
“For Upsource we went further with refactorings to enable more features to run in headless mode – project model, code highlighting, inspections,” they told JAXenter.
The current preview of Upsource contains just a dozen repositories, with no way to create a user account, but already impresses with its polish and attention to detail. Diffs can be viewed side-by-side, directories can be drilled through rapidly with an OS X-style nested UI, and it’s possible to link not only to a specific line, but a specific section of a line.
In fact, it’s not difficult to imagine Upsource, even in its first incarnation, being expanded into a full-blown web-based IDE like CodeEnvy. Indeed, it’s described in an official blog post as a “platform”, and the pair said they “plan to eventually add the ability to do small code changes, like the ones required for code review and real-time collaboration”.
However, a full IDE implementation may be quite some way further off: the JetBrains pair said they were not “totally convinced” that the web experience can yet match up to native desktop apps.
In terms of future additions, support for more languages is in active development, while DVCS graph visualization “is an obvious next step”, they said. “We also plan to support more project types (currently only IntelliJ IDEA projects are supported) – adding Gradle support is on the roadmap, for example.”
If you were hoping to get your hands on JetBrains’ latest, though, you may be waiting a while: there are “no particular timeframes yet” for accepting users, they say. However, with web apps gaining in importance year on year, it’s clear the company is playing the long game with Upsource.