blob: e7c722ca21297a4ffa0d1b3acbe417fc0d130b19 [file] [log] [blame]
<?php
/*******************************************************************************
* Copyright (c) 2015 Eclipse Foundation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://eclipse.org/legal/epl-v10.html
*
* Contributors:
* Eric Poirier (Eclipse Foundation) - Initial implementation
*******************************************************************************/
?>
<h1 class="article-title"><?php echo $pageTitle; ?></h1>
<p><a target=_blank" href="https://orionhub.org/">Eclipse Orion</a> 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”.</p>
<p>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
<a target="_blank" href="http://www.ibm.com/cloud-computing/bluemix/eclipse/">
IBM Bluemix</a> DevOps Services Web IDE, a cornerstone component of Bluemix and IBM’s cloud.</p>
<p>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”.</p>
<p>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.</p>
<p>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:</p>
<ul>
<li><b>Error checking (and Quick Fixes)</b> – to find errors in the code before it gets released</li>
<li><b>Code Completion</b> – to help the write code but also see what code is available</li>
<li><b>Navigation</b> – to move quickly around the code (for example, to the definition of a code element)</li>
<li><b>Search</b> – to understand where and how code elements are used</li>
</ul>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>Orion is about productivity and first class tooling for developers, created by developers, makes them more efficient.
Come to our talks at EclipseCon,
<a target="_blank" href="https://www.eclipsecon.org/na2016/session/50-shades-ide">50 Shades of an IDE</a> and
<a target="_blank" href="https://www.eclipsecon.org/na2016/session/eclipse-orion-fast-functional-and-your-fingertips">
Eclipse Orion: Fast, Functional and at Your Fingertips</a>, and join
the conversation as we "get back to our roots".</p>
<div class="bottomitem">
<h3>About the Authors</h3>
<div class="row">
<div class="col-sm-12">
<div class="row">
<div class="col-sm-8">
<img class="img-responsive"
src="/community/eclipse_newsletter/2016/january/images/steve.jpg"
alt="Steve Northover" />
</div>
<div class="col-sm-16">
<p class="author-name">
Steve Northover<br />
<a target="_blank" href="http://www.ibm.com/">IBM</a>
</p>
<ul class="author-link list-inline">
<li><a class="btn btn-small btn-warning" target="_blank" href="https://www.linkedin.com/in/stevenorthover">LinkedIn</a>
</li>
<?php //echo $og; ?>
</ul>
</div>
</div>
</div>
</div>
</div>