Continuing our series of innovative and useful open source projects that you should know, we spoke this month with the creators of Eclipse Che.
First released in March 2016 by the Eclipse Foundation, Eclipse Che is an open source integrated development environment that will get as portable as your code and applications. Packing a serious punch, this one is an essential tool for developers looking to capitalize on solid open source options.
According to Che’s Project Lead Brad Micklea, “The idea of Che actually started as a cloud IDE for the eXo Platform product. However, it grew much more quickly than anyone expected and people began using it for development beyond eXo. At that point it was decided to spin it out of eXo Platform as its own company — Codenvy.
Codenvy's mission was broader and more ambitious though, looking to remove the need for a developer to ever have to install or configure anything in order to contribute to a project.
As the project grew, it soon became obvious that a web IDE was the simplest part of the problem.he real issue explains Micklea was with the runtime and tools that a developer has historically installed and maintained on localhost.
“Runtime has always been the developer's responsibility to create, manage and update. Plus, because each developer's machine was unique, these workspace runtimes were difficult to share (even with VMs), hard to secure, slow to load, and fragile,” says Micklea, adding that in order to meet the challenges,“These were all things we wanted to change.”
Ultimately Codenvy decided to open source its technology as Eclipse Che as a growth multiplier for their product and adopted containers as a mechanism for providing standardization in the developer workspace. “That was the real breakthrough,” says Micklea, describing how they were able to help bring Eclipse Che to the masses.
In short, Che is a workspace server running on an application server. Che provides an integrated IDE which can be used via a browser. After the initial load, the IDE provides a dynamic user interface including known components like wizards, editors, toolbars and many more. The user has the opportunity to create workspaces, projects, environments, machines and many other modules that are needed to build a project from scratch.
The communication between the user interface and the server is done using RESTful APIs that interact with the so-called Workspace Master. One workspace may include zero or more projects and must include at least one environment, which itself contains at least one machine. A machine is a runtime that has the necessary software installed. If the user adds for example a project which uses Apache Maven, the Workspace Master installs Maven on any machine in the workspace to ensure the project can be executed on each machine.
Che comes with some predefined technology stacks to quickly set up a new machine. To ensure high flexibility and extensibility the user may also define custom technology stacks which can be used to set up new machines.
While nearly every developer loves working with open source, it is not always a given for a company to decide to take one of their products open source.
However Micklea says that this was a labor of love for their team, and that going open source brings some of its own rewards.
“Open source is exciting and gratifying – you're building something out in the open and working with people who are there because they're passionate about the project! However, it's tough for some of the same reasons,” he explains, noting that it can come with some unexpected pushback from the community.
“Sometimes you feel like you know what you want to do and are excited to just start doing it, but you have to remind yourself to give the community enough time to weigh in rather than just charging forward. It's also hard not to take it personally when someone complains about your project because you've poured your heart into it,” he says, while noting that “Ultimately that feedback is what propels the project forward and you just have to keep reminding yourself of that.”
Despite the gruffness that can come from the open source community expressing its displeasure over something that Che may or may not have gotten right in their opinion, Micklea says that he enjoys engaging with the community, explaining to them the value of their project in their messaging. “I'm not a great developer (ironically) so the part that I find fun and easier than some is the marketing-y aspects of open source.
While many projects may develop fantastic code, Micklea believes that often times they fail to properly — and concisely — explain their value to the community.
“It's an area many projects pay very little attention to but I feel it's critical. Pushing yourself to create a short, compelling and clear expression of what your project is and why it matters to other people (not just yourself) is key.
In his experience, good messaging goes beyond a great readme.md and docs page (although those are essential) and into thinking about what kind of developers would be drawn to your project, where you can find them, and how you can convince them to participate in the project.
“It's a ton of hard work,” he tells me, “But when it clicks it's amazing!”
Having started out their journey as a proprietary product, the Che team knew that they could have a greater influence by engaging with the open source community. However getting there meant finding a foundation with whom to partner that had the relevant experience to guide them and connect them with the community in a way that would minimize the friction and maximize the engagement.
“When we chose to contribute the source code for Eclipse Che we consciously selected the Eclipse Foundation as the place to do that,” says Micklea. “The Eclipse Foundation is highly focused on developer tools so for us they provided a fantastic tailwind with the right marketing exposure, connections to influencers in the developer tools community, and advice on how to handle the bumps in the road every project hits. That gave us a wonderful foundation on day one that would have taken us months or years to build ourselves otherwise.”
Once they got their foot in the door, Micklea explains that they shamelessly copied from the best open source projects we could find. “We adapted what we found from other great projects and active communities and implemented them for Che. This ensured that when people did look at the project they found something that looked professional and well run. There's no shame in learning from the best!”
Speaking with Micklea, it is clear that developing with open source is more than just a job, it’s a deeply rooted passion.
As a member of the Red Hat team — and a self-described old school Java guy — Micklea says that his favorite projects are Kubernetes and the Jakarta EE projects, noting that “Both, in different ways, are pushing rapid innovation in their communities.”
He explains that he first fell in love with coding when he started playing with Java back in the late 90’s.
To learn more about the Eclipse Che project, please visit their GitHub page.