Eclipse Orion: Your IDE in the Cloud

Eclipse Orion has come a long way since the early days. While officially becoming an Eclipse project in 2011, work had begun on browser based tooling for the web long before that time. Out of the ashes of “e4” and the attempt to bring desktop IDE tooling and development to the web came the main idea behind Orion: “The web is the platform”.

Time has shown us that this was the right way to go. Orion consumes JavaScript based libraries and other web based technologies directly. It provides stand-alone components (in particular, a JavaScript aware editor) that are consumed by many different organizations and projects. Finally, Orion is the basis for the IBM Bluemix DevOps Services Web IDE, a cornerstone component of Bluemix and IBM’s cloud.

Right now, it’s time to get back to our roots, with an eye toward the future: Orion is first and foremost an IDE and must provide a first class development experience. We need to reflect and ask ourselves, “What are the core features of an IDE?” The “I” stands for “Integrated” and this is well understood, but nowhere is the list of core features formally specified for a “Development Environment”.

Code development is a continuum that starts with an editor and ends with a fully integrated development experience. These days, developers use many different tools, languages and environments. At least for web development, the idea of deep integration and a single environment might increasingly be a notion from the past.

One thing is for sure: An IDE is about making programmers productive and this means great language tooling. Orion makes coding more productive by providing:

  • Error checking (and Quick Fixes) – to find errors in the code before it gets released
  • Code Completion – to help the write code but also see what code is available
  • Navigation – to move quickly around the code (for example, to the definition of a code element)
  • Search – to understand where and how code elements are used

To find errors early, Orion uses ESLint. ESLint is integrated in the IDE however; ESLint works in the context of a single file. Starting at Orion 9, cross-file support was added to allow navigation between call sites and function declarations. This work made type inference data available for use in other contexts. Putting the two ideas together, future versions of Orion will be smarter about errors and be able to catch problems earlier for entire programs, not just single files.

Navigation is important but even more important is the ability to understand a large code base. This is particularly true when onboarding new team members, but it is also an issue for experienced members. It’s hard to know every line and all developers need to find their way easily around a code base.

Often, code does not get refactored. This is particularly true for dynamic languages where refactoring is difficult due to missing type information. Over time, new code is written to implement features and the code base grows. As it grows, it becomes harder to maintain, team members with tribal knowledge leave and others come on board.

Future versions of Orion will provide a Structured Search capability to allow programmers to reason about their code. From here, the next logical step is refactoring. Refactoring with limited type information is difficult, but refactoring is a great reason to use an IDE.

Orion is about productivity and first class tooling for developers, created by developers, makes them more efficient. Come to our talks at EclipseCon, 50 Shades of an IDE and Eclipse Orion: Fast, Functional and at Your Fingertips, and join the conversation as we "get back to our roots".

About the Authors

Steve Northover

Steve Northover
IBM