Eclipse Che vs. Eclipse Mars

This is the third and last post of my Eclipse Che series. In this post I’m going to compare the IDE of Eclipse Che with Eclipse Mars. In case you are not sure whether you should upgrade from Mars to Che, this post might be interesting to you. I recommend that you at least read my first post since I’m using some terms I’ve explained there.

Eclipse Che is a cloud-based integrated development environment (IDE) which can be used by developers to easily create applications without the need to install any application on their local system. Let’s get started!

TL; DR

Eclipse Mars Eclipse Che
License EPL EPL
Installation
  • Requires Java
  • Local only
  • Requires Java & Docker Toolbox
  • Can be installed on a remote server and used by many developers
Project Creation
  • (Nearly) no templates
  • Install dependencies on your own
  • Lots of templates
  • Creates Docker containers for a project which have needed dependencies installed
Look-And-Feel No (good) dark theme Clean dark theme
Language Support
  • Very extensible
  • Many versions for a lot of programming languages
  • Very extensible
  • Only one version with a lot of languages and frameworks supported
General Auto-Completion Nothing to complain
  • No automatic brackets for methods
  • Suggestions need to be manually triggered
Java Auto-Completion Fine Fine
JavaScript Auto-Completion Fine
  • Seems like no standard library support
  • Custom code suggestions working well
Code Navigation Fine Lacks some major features of Mars which (hopefully) will be added soon
Execution Comes with predefined run configurations
  • No predefined run configurations when building a project from scratch
  • Complicated set-up of debugger
Should I use it? Yes Not yet, just play aroung with it, if you are interested.

License

Both IDEs are distributed by the Eclipse Foundation and are released under the Eclipse Public License (EPL) which is similar to the Common Public License.

Installation

Since both IDEs are Java applications, you need to have Java installed. Eclipse Mars does not have any further dependencies, whereas Che needs the Docker Toolbox as well since it provides a lot more than just the IDE (See my first post). But if you configure Eclipse Che to be used as a remote IDE you only need to install Che once on a remote server. Afterwards, many users can access the IDE.

Project Creation

Both IDEs come with a wizard to create projects. While Mars creates – in most cases – only blank projects, Che does provide multiple templates for a lot of technologies. If, for example, you want to create a NodeJS project with Eclipse Mars, you’ll have to ensure that you have installed NodeJS on your system. If you are creating a NodeJS project using Che, it will create a Docker container having NodeJS and many useful tools installed by default where you can instantly run your project. (See my second post which includes creating a project).

Language Support

Since both IDEs are based on an extensible framework, they have or will have support for most of the tools in the future. You can download a specific Mars version depending on your needs. Mars has versions for Java, C/C++, PHP and many more. So far, there is only one Eclipse Che version which supports Java, C++, JavaScript, Python, PHP, Ruby and SQL. Additionally, frameworks like OpenShift, AngularJS, Docker and Yeoman are integrated and can be used without further configuration.

Look-And-Feel

Regarding the layout, nearly every IDE looks the same which is also true for Che and Mars. We have a toolbar in the upper side of the window. On the left side is the package explorer, and the main content is the actual editor. The biggest difference is the really beautiful dark theme of Eclipse Che. In case some of you say that there is already a dark theme in Eclipse Mars: Have you ever looked at the dark theme using Windows?

The Dark Theme of Eclipse Mars

The Dark Theme of Eclipse Mars

See that scrollbar and many other controls? This is just not what a dark theme is supposed to look. Compared to the clean and tidy dark theme of Che, this is just a mess.

The IDE of Eclipse Che

The IDE of Eclipse Che

Auto-Completion

Auto-completion is one of the most important features an IDE provides. Having a bad auto-completion in a perfect IDE is like having the most comfortable car in the world but it’s only driving 20 km/h, it doesn’t matter how good you feel while using it, you will need a lot of time to get to your destination.

Since the auto-completion is dependent on the language, we’ll compare Java and JavaScript for now.

General

There are two annoying things when generally looking at auto-completion in Eclipse Che: The first – and maybe worst – thing is, that if you write an open bracket “{“ and press ENTER Che does not automatically insert the closing bracket “}”. If you then go to the next line and insert the closing bracket it is still indented. The second thing is that you have to trigger the auto-completion by yourself. In Eclipse Mars if your write for example a “.” the auto-completion triggers and you will automatically get suggestions. In Che you’ll have to open the auto-completion manually by pressing CTRL+SPACE.

Java

Regarding the Java auto-completion both IDEs are even. They made the same suggestions for each statement I tested. In my opinion, this is a good thing, because the auto-completion for Java in Mars is fine.

JavaScript

Unfortunately, the JavaScript support in Che is worse than the JavaScript support in Mars. If, for example, you type things like “ale” or “cons” you’d expect to see suggestions like “alert” or “console” but Che does not show any suggestions at all.

If you want to get suggestions for public methods of a class, the suggestions Che and Mars provide are fine.

Code Navigation

Anyone seen the Open Type functionality? No? Me neither. The only nearly similar thing I found is Navigate to File which does not only search for classes, it includes any files (even .class files).

Everything summed up, Eclipse Che is just not as good as Eclipse Mars when it comes to code navigation, but this may be because it is pretty new and under heavy development. Tyler Jewell – the CEO of Codenvy and one of the main contributors in Che – summed up the focus of the developers right now:

But as Che works its way to GA, the emphasis is primarily around stabilizing the performance and features around the workspace life cycle. After all,that is really the core. If the workspace isn’t very fast & secure, then the product is not viable.” (source)

But I guess they will give some love to the code navigation and IDE functionalities as soon as they improved the workspace life cycle.

Execution

One major disadvantage when executing projects in Che is that Che does not come with standard run configurations like Mars does. For example, if you create a simple Maven project from scratch you’ll have to write your own run configuration which includes the maven tasks like clean or install and afterwards you’ll have to java –jar the file maven just created. Eclipse Mars ships with predefined run configurations so you can easily execute or debug the project. Debugging is even worse in Eclipse Che since it only supports Remote Debugging so far. You’ll have to create a complicated run configuration which executes your .jar file in debug mode and afterwards you’ll have to point the Eclipse Che debugger to a specific port to listen for the application. For more information, you might read my previous post about getting started in Eclipse Che.

Conclusion

If you are asking yourself whether or not you want to upgrade to Eclipse Che, just don’t – at least not yet. At the moment, the IDE of Eclipse Che lacks some important features. But that might not be a problem, since they hopefully will be included in the future. The main concept behind Eclipse Che is awesome and it’s working how it should right now. I intentionally say “working how it should” since some concepts are not sophisticated like the last-write-wins policy if multiple users edit the same file. I’m curious how they’ll handle the new problems occurring when the multi-cursor Google Doc like file editing is coming. For example, what happens when user A refactors the name of a variable user B wants to use. The creation of machines with Docker is a nice idea and eases up the start of a new project. Also the inclusion of new developers to existing projects is working like a charm since you can just send a link to the workspace. If you are having issues with the last-write-wins policy, you are able to run multiple Che instances and share the workspace configuration between the different instances.

You should definitely keep an eye on Eclipse Che, since the main concept is awesome. For now, you should use Eclipse Che just to play around a little bit, not for big projects.

Short URL for this post: http://wp.me/p4nxik-2BK
This entry was posted in Eclipse Universe and tagged , , , , , , . Bookmark the permalink.

2 Responses to Eclipse Che vs. Eclipse Mars

  1. TylerJewell says:

    Loris – you did a phenomenal job with this article series. We just released 4.2 which adds SSH machine management and a universal debugger for Go / C++ / Python. We are working on 4.3 for May which will introduce workspace sharing permissions management, an entirely rewritten maven plugin (lots of intelligence), and auto-snapshot management of workspaces.

    • Loris Bachert Loris Bachert says:

      Thank you, Tyler. I really like the idea behind Che and i’ll definately keep my eyes on it. I might even write another post about the new features and changes. Keep on going with that good work!

Leave a Reply