Eclipse Che and Neon are like potatos and apple juice

Also this week Eclipse Che will be topic of my blog. Last week I’ve talked about how you setup Eclipse Che. For my client presentation preparations I’ll compare Che and Neon in this post.

At the end of my last post I announced the four aspects I’d like to investigate today:

  • Which trade offs I have to accept when I use Che?
  • Do my familiar shortcuts / key bindings work with Che?
  • Does Che provide distinguished features, only accessible with Che?
  • How easy can I migrate existing projects to Che?

The scope of this post does not include the workspace options, which you can modify during the setup. Instructions for the resource and other additional workspace management won’t be addressed either. My descriptions and pictures are based on the Java Stack (Java, JDK, Maven, Tomcat, Subversion, Ubuntu Git). As reference point I was using Eclipse Neon.1 instead of Neon.2 which was already available at the time. I had no special reason for this, except the missing drive to setup an additional IDE on my workstation.

Cloud IDE – reduced functionality

After I setup my first workspace I dived into a little coding kata, which I knew from the german webpage Clean Code Developer School. You can find additional katas on CodingDojo, CodeKata and CodeKatas. Right before my coding session the differences between Neon and Che jumped right at me, when I was creating my first Java file. In Neon you’ll get different kinds of files related to your current perspective. But Che was offering C#C++ and C files when I was using the Java Stack. Next to the Java Class and Java Package I was able to create basic files (File,Folder, XML File) too.

green=Stack relevant options / orange=Stack related options / rot=Stack unfamiliar options / violett=duplicates

Also the wizard for the Java Class creation was missing well-known options (package, inheritance, interfaces, etc).

You’ll easily find more differences as longtime user of desktop IDE when using Che cloud IDE. Particularly I want to point out the features Refactor and Source of the context menu, while the last one is missing completely in the Che context menu.

Cloud IDE – shortcuts are upside down

The most disturbing experience during my coding session was caused by altered, non-existent or occupied key bindings. I found a few key bindings which worked fine like always  (e.g. Ctrl+Space). Some with different functions like Ctrl+Shift+F which opens the Find dialog in Che and executes automated code formating of the current editor in Neon. And a few functions with no key bindings at all, like Neon has too, but from my point of view Che misses more than Neon.

It was still fun to code with Che because I found out how slow I code when I’m not able to use my well-known shortcuts. The logical consequence for me was to honor my current integrated development environment. For all who are curious about the new key bindings: in the menu you can find a list of all functions which are bound to keys. A big disadvantage of the cloud IDE is the missing ability to change the key bindings by your self.

Eclipse Che – additional features

When you find the previous subjects so disturbing that you don’t want to use the cloud IDE, you still got the chance to mount-and-sync the created workspace. You are not restricted to access the workspace with Eclipse. All IDEs which are able to connect via RESTful workspace API you can use. I’ve never tried that feature because of the limited time I spent on this subject. When you inspect the feature page of Che’s webpage you’ll find the posibility to add additional services to (maybe) compensate the reduced functionality (as mentioned before).

The main reason/feature to use Che in your environment is the integrated team development capability. You can work with colleagues in the same workspace on specified Software Stacks at the same time.

With the possible customization you can adjust your Stacks depending of your target structure / architecture. New technology or software versions can be added to the current stack or you generate a new setup next to your existing by altering the Stack configuration. The Stacks are freely configurable, can be put under version control and reproducable in any kind. Only your hardware will be your limit. You want to hire a new team and want to set them up fast? No problem, just create another instance of your existing Stack or create one from an existing configuration.

Next to the easy setup every workspace is multi-user friendly. You can access them concurrently with colleagues which are connected via remote or the integrated cloud IDE. Everyone can work on the same (virtual) environment. To work in the same file is not possible though. I’ve simulated the multi-user usage with Chrome and it’s incognito mode, when both windows connected to Eclipse Che. Both sessions were able to access and change the same file but only the changes of the first user were saved. Even without the simultaneous changes in one file are the advantages obvious for the development.

You’ll be able

  1. to make your (colleagues) code compile clean without checkins
  2. to see changes of colleagues without patchs
  3. to review code of colleagues before they checkin

Even pair-programming or coaching would be possible with small latency and correct handling of the save behaviour of Che cloud IDE. With telephone or video conference tools you’ll be able to achive the face-to-face aspect and still would be able to see your current code on your (partial) screen.

Eclipse Che – integrate existing projects

Sadly I did not achive any imports. Only problems and errors occured when I tried to access my ongoing projects. With that little time I’ve spent my findings might not be that meaningful. But I still want to document the difficulties I’ve experienced.

First of all I tried to connect to my existing Git repository. In the menu you’ll find a button Import Project to start the import wizard. In the section Source Control I chose GIT and entered the URL of my Raspberry-Pi repository, like I do when I use Neon.

The error message pointed me to a SSH key issue. That’s why I looked up the suggested properties in the cloud IDE.

Sadly I didn’t find the given property in the Preferences. Out of the blue I tried the option VCS and generated a SSH key on the target system. With no luck at all.

Before I gave up I tried to import an existing ZIP file from my project. The Che workspace does not allow the file upload by yourself because it’s working with a pull requests. When you enter a valid URL Che is pulling the files into your workspace. Because I do not have the possibility to share files like that at the moment I had to stop trying at this point.

result

After I looked into both Eclipse products I have to say that a comparison doesn’t feel right. It’s like comparing potatos and apple juice (when I would have to use a metaphor). When you try to find similarity between those two you’ll find some (nutrition, taste). But a comparison is not suitable. Che is not designed to be the new Neon alternative. It’s designed to work in different areas where Neon got no shares at all. Only a little part of Che (cloud IDE) is entering Neon‘s domain.

next steps

I have to say I only scratched the surface and invested not enough time to be able to judge. The next time I look into Eclipse Che I definitely want to try the mount-and-sync feature to integrate the Che workspace into my well-known IDE. Furthermore I need new aspects to investigate before I tackle Che again. Otherwise it will be just another experience report when I try to achive my private projects with Che.

Next week I’m on vacation and got some topics in my pipeline. So I can’t say which project I’ll pick and write about. Furthermore I did experienced some difficulties writing my posts without a certain time of preparation. I do not keep up with my own deadlines to publish my posts on friday after noon. Which is why I want to think about my current goals and adjust them accordingly.

This post is also available in deutsch.

Leave a Comment

Your email address will not be published. Required fields are marked *