Can Eclipse Two dethrone the good old Eclipse IDE?
Old number two key on vintage typewriter image via Shutterstock
There is no rest for Eclipse — while most people are still recovering from the obligatory holiday food coma, some are back in business. Doug Schaefer, Eclipse contributor and member of various Eclipse councils and committees, is tirelessly working on Eclipse Two, the real next-generation Eclipse IDE based on Electron.
Funny how a simple blog entry mentioning Eclipse Two can garner such attention. At least shows there’s curiosity about the possibilities.
— Doug Schaefer (@dougschaefer) 5. Januar 2017
December 31 is also know as the day people make New Year’s resolutions and solemnly swear to achieve each of them. But it’s not quite a resolution if things have already started to move, is it? Doug Schaefer, a software architect at QNX working on the Momentics IDE, as well as an Eclipse contributor as co-lead of the Eclipse CDT project and a member of various Eclipse councils and committees, explained in a blog post in late 2016 that he is working on Eclipse Two, “the real next-generation Eclipse IDE based on Electron.”
According to the project’s description on GitHub, “the philosophy is to treat the IDE as a web-site which has access to local resources and tools as well as cloud based services. It brings a new user experience to the desktop IDE that is friendly, integrated, and powerful.”
The user starts with a dashboard of cards supplied by plug-ins that give the developer access to all the information they need to do their jobs. From there, the IDE helps the user through working with code, checking that code into source control, integrating changes with change management systems like JIRA or bugzilla, provides a user interface to cloud services like logs allowing the developer to associate code changes with cloud resources.
The foundation of Eclipse Two is Electron which provides an HTML5 user interface with a node.js backend. Plus, The Language Server Protocol will be an essential part of this, along with protocols that integrate other tools. Schaefer opined that Eclipse Two is “a platform that will serve us well for the next 20 years as Eclipse One has done for the last 20 years.” However, he also pointed out that this project can only succeed “with a strong community and with strong architectural leadership that Eclipse is famous for.”
The only threats to the classic Eclipse IDE is father time and lack of contribution from the community. https://t.co/ZYwudcpfku
— Doug Schaefer (@dougschaefer) 4. Januar 2017
Plan for Eclipse Two
Schaefer revealed in the project’s description that the first phase is to get the IDE to the point where they can self host; this includes features such as:
- Build support which runs ‘npm run build’ and presents output in a console pane
- Folder Editor which supports adding and removing files in a directory.
- File Explorer which navigates mounted directories and opens files in the editor.
- Launch support which runs ‘npm start’, presents output, and has a stop button that kills the process
The second phase is to add UI to work with Git to further support self hosting and add Github page to support cloning of repo. To support writing extensions using node.js’s native build capability, C++ support will be added and the team will start working with the LSP and CDT in the final phase.
To get the IDE running, one must do the following
npm install npm run build npm start
To learn more about the philosophy behind Eclipse Two, check out the Architecture guide.