ANALYSIS OF POSSIBLE TECHNOLOGIES TO DEVELOP IDEs
2022-01-31
By Ismael Torres
ANALYSIS OF POSSIBLE TECHNOLOGIES TO DEVELOP IDEs

As part of the project PIACERE, a new IDE will be delivered. The tool to be developed is an Integrated Development Environment (IDE) and therefore it must support up-to-date functionalities for programmers.

A thorough study of existing technologies for building an IDE has been realized and shortly described in the present blog. More details are available in the deliverable D3.7 of the project.

Among the key features identified to be covered by the IDE, we could mention the following three:

  1. possibility to exploit a web-based approach, that will allow the IDE to be made available as a service (SaaS IDE)
  1. support of UML models and profiles provided by and integrated with the suite of PIACERE applications
  1. connection of the models following the lifecycle of a PIACERE solution

The different tools analysed are described below. We will present in another blog entry our conclusions with the technology finally selected to develop the PIACERE IDE.

VS Code

Visual Studio Code (VSC) IDE [1] is a desktop application mainly developed by Microsoft. It’s an extensible code editor heavily based on keyboard commands and web technology but deployed on the Electron framework as a desktop application. It is written in Typescript and HTML, and it’s available for all main operating systems.

VS Code is one of the most used IDEs by programmers today because of its large number of extensions and the possibility to be used with many languages and purposes. However, VS Code is not a tool intended to make your own IDEs and does not support Eclipse Modeling Framework (EMF), which is a set of Eclipse plug-ins which can be used to model a data model and to generate code or other output based on this.

GitHub Codespaces (VS Code Online)

GitHub Codespaces [2] is an online version of Visual Studio Code, hosted by Microsoft in Azure,  their Cloud Platform. It runs fully within a software container in the server where it’s deployed.

Nevertheless, it has the same disadvantages than VC code for developing your own IDE based on models.

Eclipse IDE + Eclipse Modeling Framework (EMF)

The Classical Eclipse IDE [3] is the most complete IDE available at this moment, completely free of use and more powerful than any other desktop IDE.

The Eclipse Modeling Framework (EMF) project is a set of Eclipse plug-ins along with a modelling framework and code generation for building tools and other applications based on a structured data model in Eclipse. EMF (core) is a common standard for data models, which many technologies and frameworks are based on.

Eclipse + EMF have been for years the favourite technologies to build IDEs based on models. EMF was designed with the specific purpose of developing your own IDE. It has native support for models and has a series of utilities and plugins for this purpose. This technology has been on the market for almost 20 years and is well established. The solutions based on these technologies can be offered as desktop solutions. It is not allowed to be offered in SaaS mode in the cloud.

Eclipse Theia + EMF.cloud

Eclipse Theia [4] is a completely open-source project hosted by Eclipse Foundation with a modular and flexible architecture. Theia is not a tool per se, but by definition, it’s more of an open-source platform for building web-based tools and IDEs and developing under vendor-neutral open-source governance, which supports the VS Code Extension protocol.

EMF.cloud [5] is an Eclipse-based modeling framework and code generation facility for building tools and other applications based on a structured data model. EMF.cloud is considered as the web and cloud version of the classic EMF. Many of the EMF plugins have been adapted for this new web version, although new plugins have also appeared specifically for the web version.

Eclipse Theia + EMF.cloud are new technologies that run in the cloud and fill in a gap in the market that is not covered by Eclipse + EMF. These technologies have the handicap that they are not yet fully mature, however in their current state it is possible to develop IDE and integrated tools. They are also in continuous development and have a very active community.

Eclipse Che

Eclipse Che [6] is not strictly speaking an IDE, it is more of a workspace server ”Kubernetes-  Native” for open-source developers that allows collaborative/multi-user work. Eclipse Che integrates multiple kinds of IDEs for developers. Eclipse Theia is the default option, but it competes with others like VS Code, Jupyter, Classic Eclipse, or IntelliJ. From a hosting point of view, it’s more flexible because it can be hosted in any Kubernetes cluster. You just configure a Kubernetes installation in a server and run Eclipse Che on it. Each workspace corresponds with a container in the Kubernetes cluster and can be shared with multiple developers.

Eclipse Che is not an IDE per se, but as it integrates with several IDEs previously described in this blog, it could play a role in case we would need to have an IDE with a real multi-user feature.

References

[1]  «Visual Studio Code» [Online]. Available: https://code.visualstudio.com/

[2]  «GitHub Codespaces» [Online]. Available: https://visualstudio.microsoft.com/es/services/github-codespaces/

[3]  «Eclipse IDE» [Online]. Available: https://www.eclipse.org/eclipseide/

[4]  «Eclipse Theia» [Online]. Available: https://theia-ide.org/

[5] «EMF.cloud [Online]. Available: https://www.eclipse.org/emfcloud/

[6]  «Eclipse Che» [Online]. Available: https://www.eclipse.org/che/

0 Comments