Everyone’s favorite Java IDE, Eclipse, goes clouded with Eclipse Che. It’s so much more than an IDE though, it’s the perfect framework for creating projects that are hosted in the cloud, it makes projects simple to manage, run, set up, and it removes frustrations that arise between the developer and IT staff.
What Problem Does Eclipse Che Solve?
The Eclipse Che mantra is that anyone, anywhere, at any time, should be able to work on a software project, without having to install the software first.
Eclipse Che provides a stack that just works, without setting up, fiddling around, and spending time installing and linking dependencies. This is particularly great for educators, demos, client meetings, and on the fly updates.
Che can be run fully from the browser, connecting to a Che server, without the need to set up dependencies, install specialty software, or configure.
Let’s Take It Back to the Beginning…
So, what do you need to contribute to a software project? To do this, at a bare minimum, you will need your IDE, project files (or your source code), and your runtime. Traditionally, your workspace lives in the IDE and works with your project files as a configuration between your IDE and the runtime. Your runtime itself? Well, the default runtime is locally, which poses challenges when working across different machines.
There are various workarounds to this conundrum, such as Jetbrains, which gives you a configuration server. However this has no shared projects or dependencies.
So, how do you share a runtime? Who has root access? If developers have root access, they can develop freely, using the tools, languages, and frameworks that they choose, however, it sacrifices stability when attempting to share with other devs. If IT has the runtime, the root access, there is stability, but developers will feel restricted and bound by the terms that IT has stipulated, and may feel a great deal of frustration.
The Solution and Configuration
Eclipse Che seeks to rectify the runtime headache by using workspaces that bring with them their own runtimes. Che workspaces are not the same, conceptually speaking, as workspaces before.Each workspace should now include the project code, the IDE, and all of the dependencies within as well.The default workspace machine, or runtime, in Eclipse Che, is Docker, and Docker is a completely descriptive runtime.
Because of the new configuration of the workspace, this means that workspaces are now “servers”, and workspaces now serve their own browser IDE. An actual Che server itself hosts multiple different workspaces, and works as a workspace manager.
The IDE Itself
The Eclipse Che IDE itself is built on JDT and Orion, with a similar and yet different look, feel, and experience to what you’re used to from the Eclipse Orion IDE. It’s run from the browser via RESTful wrappers around the runtime.
Desktop IDEs can now connect over SSH, so you can use whatever IDE you prefer, such as IntelliJ, to work on the project, with the same runtime and configuration, without having to use the Eclipse browser IDE if you do not wish. You can also run Eclipse locally, if that’s more your flavor.
Not only is your IDE interchangeable, but the Che server, as well as each workspace, is completely customizable via APIs, so that you can create your own experience, instead of the products that Eclipse Che provides.
What this all means is that workspaces are instantly shareable and projects can be worked on immediately from any machine, as well as entirely portable. Snapshots or images of workspaces can be taken, then put on disk, and replaced locally by using Docker, etc.
This article is based on Tyler Jewell’s 2015 DevNation talk, An Introduction To Eclipse Che: A Next-Generation Java IDE, available via DevNation YouTube.