<!DOCTYPE HTML>
<html>

<head>

  <!-- ************* Meta ************* -->
  <title>Eclipse N4JS Language and IDE</title>

  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
  
  <!-- ************* OpenGraph ************-->
  <meta name="description" content="High-quality JavaScript development for large Node.js projects">
  
  <meta property="og:site_name" content="Eclipse N4JS"/>
  <meta property="og:title" content="Eclipse N4JS Language and IDE"/>
  <meta property="og:url" content="https://eclipse.org/n4js"/>
  <meta property="og:description" content="The Eclipse N4JS language and its IDE enable high-quality JavaScript development for large Node.js projects."/>
  <meta property="og:image" content="images/n4js.png">

  <!-- ************* JQuery ************* -->
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
    
  <!-- ************* Favicon ************-->
  <link rel="icon" href="images/favicon.ico" />
  <link rel="icon" type="image/png" href="images/favicon-32x32.png" sizes="32x32" />
  <link rel="icon" type="image/png" href="images/favicon-16x16.png" sizes="16x16" />
  <!-- ************* Styles ************* -->
  <link rel="stylesheet" type="text/css" href="styles/styles.min.css">

  <!-- ****************** Required for buttom to top scripts ****************** -->
  <link rel="stylesheet" type="text/css" href="styles/backtotop.css">

  <!-- ****************** Scripts ****************** -->
  <script type="text/javascript" src="scripts/scripts-legacy.js"></script>
  <script type="text/javascript" src="scripts/scripts.js"></script>
</head>

<body>

  <header class="Grid">
    <div class="Cell Cell--4-12">
      <a href="#"><img src="images/n4js-logo.png" alt="Eclipse N4JS Language and IDE"></a>
    </div>

    <div class="Cell Cell--8-12">
      <nav>
         <a href="downloads.html">Download</a> ·
         <a href="community.html">Community</a> ·
         <a href="userguides/index.html">Documentation</a>
      </nav>
    </div>
  </header>

  <div class="Main">

    <article class="Intro Grid Grid--fullWidth">
      <div class="Intro-Slogan Cell Cell--9-12" style="text-align: center;">
        High-quality JavaScript development<br/>
        for large Node.js projects
      </div>

      <img src="images/N4JS_VSCODE.png">
    </article>


    <article class="Grid">

      <div class="Cell Cell--12-12">
        <h2 id="introduction">N4JS is for Java and JavaScript Developers</h2>

        <ul>
          <li>You are a Java developer and missing the comfort of familiar tools while developing for JavaScript environments?</li>
          <li>You are a JavaScript developer and want to write large-scale server-side applications in a way that it stays maintainable?</li>
          <li>You are a TypeScript developer and ran into problems the type checker didn't catch? </li>
        </ul>

        <p>N4JS is a general-purpose programming language based on ECMAScript.
          It adds a static type system as reliable as that of Java, but with the flexibility of JavaScript.
          The language provides built-in support for state-of-the-art programming paradigms such as dependency injection and test support.
          Code is validated as you type with the addition of tools such as content-assist and quick-fixes which ensure your code is written safely and intuitively.
          N4JS transpiles to ECMAScript code, using features supported by Node.js.
          Based on the Language Server Protocol, the N4JS language server can be integrated into several LSP clients.
          For VSCode we provide an extension for N4JS via the VSCode marketplace.
        </p>
      </div>    
      
    </article>


    <br/>
    
    <article class="Grid">
      <div class="Cell Cell--12-12">
        <h2 id="introduction">Feature Overview</h2>
      </div>
      <div id="features" class="FeatureTabs Grid Grid--fullWidth">

        <div class="FeatureTabs-nav Cell Cell--3-12">
          <ul data-tab-nav>
            <li><a href="#feature-modules" class="is-activeTab">Modules</a></li>
            <li><a href="#feature-typing">Nominal And Structural Typing</a></li>
            <li><a href="#feature-generics">Generics</a></li>
            <li><a href="#feature-async-await">Async/Await</a></li>
            <li><a href="#feature-di">Dependency Injection</a></li>
            <li><a href="#feature-testing">Test Driven</a></li>
            <li><a href="#feature-nodejs">Node.js Support</a></li>
          </ul>
        </div>

        <div id="feature-modules" class="FeatureTabs-stage is-activeTab">
          <h2><a href="features/modules.html">Modules</a></h2>
          <ul>
            <li>ES2015 module syntax</li>
            <li>Manage npm dependencies in IDE</li>
            <li>Organize imports in IDE</li>
          </ul>
          <img class="" src="images/modules.png">
          <p><a href="features/modules.html">Read More about Modularization with N4JS ›</a></p>
        </div>

        <div id="feature-typing" class="FeatureTabs-stage">
          <h2><a href="features/nominal-and-structural-typing.html">Nominal And Structural Typing</a></h2>
          <ul>
            <li>Nominal typing (by default)</li>
            <li>Structural typing</li>
            <li>Combining both</li>
          </ul>
          <img class="" src="images/typing.png">
          <p><a href="features/nominal-and-structural-typing.html">Nominal And Structural Typing in N4JS ›</a></p>
        </div>

        <div id="feature-generics" class="FeatureTabs-stage">
          <h2><a href="features/generics.html">Generics</a></h2>
          <ul>
            <li>Generic classes &amp; interfaces</li>
            <li>Generic functions &amp; methods</li>
            <li>Wildcards</li>
            <li>Familiar from Java</li>
          </ul>
          <img class="" src="images/generics.png">
          <p><a href="features/generics.html">Read More about Generics in N4JS ›</a></p>
        </div>

        <div id="feature-async-await" class="FeatureTabs-stage">
          <h2><a href="features/async-await.html">Async/Await</a></h2>
          <ul>
            <li>Async functions &amp; methods</li>
            <li>Await on functions/methods returning a Promise</li>
            <li>@Promisifiable and @Promisify</li>
          </ul>
          <img class="" src="images/async.png">
          <p><a href="features/async-await.html">Read More about Async/Await with N4JS ›</a></p>
        </div>

        <div id="feature-di" class="FeatureTabs-stage">
          <h2><a href="features/dependency-injection.html">Dependency Injection</a></h2>
          <ul>
            <li>Configure bindings with @Bind</li>
            <li>Nesting injectors @WithParentInjector</li>
            <li>DI support in N4JS test framework</li>
          </ul>
          <img class="" src="images/di.png">
          <p><a href="features/dependency-injection.html">Read More about Dependency Injection with N4JS ›</a></p>
        </div>

        <div id="feature-testing" class="FeatureTabs-stage">
          <h2><a href="features/testing.html">Testing</a></h2>
          <ul>
            <li>Built-in test support</li>
            <li>Annotations <code>@Test</code>, <code>@Ignore</code>, etc.</li>
            <li>IDE support for running &amp; viewing results</li>
          </ul>
          <img class="" src="images/testing.png">
          <p><a href="features/testing.html">Read More about Testing with N4JS ›</a></p>
        </div>

        <div id="feature-nodejs" class="FeatureTabs-stage">
          <h2><a href="features/nodejs-support.html">Node.js Support</a></h2>
          <ul>
            <li>On-Demand npm Installation</li>
            <li>N4JS type definitions</li>
            <li>npm package export feature</li>
          </ul>
          <img class="" src="images/nodejs.png">
          <p><a href="features/nodejs-support.html">Read More about Node.js Support in N4JS ›</a></p>
        </div>

      </div>
    </article>

    <br/>

    <article class="Grid">
      <div class="Cell Cell--12-12">
        <h2>The N4JS Project</h2>
      </div>

      <div class="Cell Cell--8-12 m-Cell--withMargin">

        <h3>N4JS Project Status</h3>
        <p>
          The Eclipse N4JS project is in the <a href="https://wiki.eclipse.org/Development_Resources/HOWTO/Incubation_Phase">Incubation Phase</a> and there is no official Eclipse release available yet
          (for all releases see the <a href="downloads.html">download page</a>). 
          This doesn't mean that N4JS is unstable; we have an extensive test suite (>90.000 tests) to ensure a stable nightly build and N4JS has been in use in several large non-public projects for years. 
          There still may be bugs (there are always bugs) and features which are under development. 
          We encourage feedback from all users! You can ask questions about getting started with using the N4JS Language and IDE for developing your own projects at <a href="https://www.eclipse.org/forums/index.php/f/365/">the forum</a> or you can create bug reports and feature requests using <a href="https://github.com/eclipse/n4js/issues">GitHub issues</a> at the official Eclipse repository for N4JS. 
          Note that it's also possible to <a href="releases/reporting-bugs.html#reporting_bugs">write and submit bug reports</a> from within the N4JS IDE itself.
        </p>
      </div>

      <div class="Cell Cell--4-12">
        <h3>Incubation</h3>
       <div align="left"><a href="https://www.eclipse.org/projects/what-is-incubation.php">
       <img align="center" src="images/egg-incubation.png" border="0" alt="Incubation" style="width:98px;height:128px;"/></a></div>
      </div>

    </article>

    <br/>
    <br/>
  </div>

  
  <footer class="Grid" style="color:#d5dfea">
    <div class="Cell Cell--2-12 m-Cell--withMargin">
      <h2>Quick Links</h2>
      <ul>
        <li><a href="downloads.html">Download</a></li>
        <li><a href="userguides/index.html">Documentation</a></li>
        <li><a href="https://github.com/eclipse/n4js/">Source</a></li>
        <li><a href="https://github.com/eclipse/n4js/issues">Issues</a></li>
      </ul>
    </div>
    <div class="Cell Cell--2-12 m-Cell--withMargin">
      <br/><br/>
      <ul>
        <li><a href="https://www.eclipse.org/forums/index.php/f/365/">Forum</a></li>
        <li><a href="http://n4js.blogspot.de/">Blog</a></li>
        <li><a href="https://dev.eclipse.org/mailman/listinfo/n4js-dev">Mailing List</a></li>
        <li><a href="https://projects.eclipse.org/projects/technology.n4js">Eclipse Project Page</a></li>
        <li><a href="https://twitter.com/n4jsdev">Tweets by n4jsdev</a></li>
      </ul>
    </div>
    <div class="Cell Cell--2-12 m-Cell--withMargin">
      <br/><br/>
      <ul>
        <li><a href="http://www.eclipse.org/">Eclipse Home</a></li>
        <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
        <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
        <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
        <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
      </ul>
    </div>
    <div style="clear: both; height: 0; overflow: hidden;"></div>
  </footer>


  <script type="text/javascript">
    dp.SyntaxHighlighter.HighlightAll('code');
    smoothScroll.init();
    featureCards.init();
  </script>
  <script type="text/javascript">
    // Create a back to top button
    $('body').append('<a href="#" class="back-to-top" style="right:5%">Back to Top</a>');
    var amountScrolled = 300;
    $(window).scroll(function() {
    if ( $(window).scrollTop() > amountScrolled ) {
      $('a.back-to-top').fadeIn('slow');
    } else {
      $('a.back-to-top').fadeOut('slow');
    }
    });
    $('a.back-to-top, a.simple-back-to-top').click(function() {
    $('html, body').animate({
      scrollTop: 0
    }, 700);
    return false;
    });
  </script>
 </body>
</html>
