Adapting JDT to the cloud
More developer tools are moving to the cloud. Tools like Orion are already used by web developers and Flux is very exciting too. As Flux aims to bridge the gap between the cloud based tools and traditional desktop IDE, one of the biggest challenges is bringing the wealth of JDT features into the browser. If we were to reuse JDT (which is designed to be part of an IDE) as a deployable service, JDT has to undergo significant changes.
This talk will showcase the Java tooling capabilities provided by Orion using Flux and also highlight some of the challenges the team faced in bringing these different technologies together.Key technical challenges:
- JDT is designed to cater a single workspace and single user per instance. This doesn't augur well for a multi user set up.
- JDT caches lot of information about the projects and project contents. Information such as project structure, packages and even Java program elements are kept in memory for faster processing. This is not a scaleable model for a multi user support.
- Many of the interesting JDT features are tied closely to the UI. Separating these to be used in a headless environment without disrupting the IDE behavior will pose challenges.
- Majority of Orion plugins such as content assist and file system are expected to send data synchronously and only upon request. Flux micro-services however, send data one by one, hence data is received in parts and spread over some short period of time. Putting these all together without compromising user experience is a big challenge.