N4JS Language and IDE
The N4JS language and its IDE enable high-quality JavaScript development for large Node.js projects. Learn more ›

N4JS for Java and JavaScript Developers

  • You are a Java programmer who is missing the comfort of familiar tools while developing for JavaScript environments?
  • You want to write large-scale server-side JavaScript in a way that it stays maintainable?
  • You are using TypeScript and have run into problems the type checker didn't catch?

N4JS is a general-purpose programming language based on ECMAScript Version 5, and ECMAScript 2015 is supported to a great extent. It adds a static type system as reliable as that of Java 8, 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. The feature-rich, Eclipse-based IDE for N4JS is custom-built for precisely these concepts. 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 V8-compatible ECMAScript code, using features available as of Node.js version 5. The transpiled modules can be used with System.js or Common.js module loader.

Modules

  • ES2015 module syntax
  • Manage npm dependencies in IDE
  • Organize imports in IDE

Read More about Modularization with N4JS ›

Nominal And Structural Typing

  • Nominal typing (by default)
  • Structural typing
  • Combining both

Nominal And Structural Typing in N4JS ›

Generics

  • Generic classes & interfaces
  • Generic functions & methods
  • Wildcards
  • Familiar from Java

Read More about Generics in N4JS ›

Async/Await

  • Async functions & methods
  • Await on functions/methods returning a Promise
  • @Promisifiable and @Promisify

Read More about Async/Await with N4JS ›

Dependency Injection

  • Configure bindings with @Bind
  • Nesting injectors @WithParentInjector
  • DI support in N4JS test framework

Read More about Dependency Injection with N4JS ›

Testing

  • Built-in test support
  • Annotations @Test, @Ignore, etc.
  • IDE support for running & viewing results

Read More about Testing with N4JS ›

Node.js Support

  • On-Demand npm Installation
  • N4JS type definitions
  • npm package export feature

Read More about Node.js Support in N4JS ›

The N4JS Project

State of N4JS

We have an extensive test suite (>90.000 tests) to ensure a stable nightly build. The current version is 0.3 and we like to call it a "public alpha" release. This does not mean that N4JS and its IDE are unstable, but you should expect bugs (becoming less every day) and missing features. We encourage you to give us feedback! You can ask questions using our mailing list. Or you can create bug reports and feature requests using Github issues. Before writing issues, please read our release notes. Also note how the N4JS IDE provides support for writing bug reports.

Contribute

Setup your Eclipse environment to develop N4JS itself

Download

N4JS IDE (recommended)

Download the Eclipse-based N4JS IDE as a single bundle.

Nightly Builds:


Release Notes

N4JS IDE in Eclipse

Add N4JS support to your running Eclipse installation or update installed N4JS IDE via update site:

N4JS Command Line Interface (experimental)

Transpile from N4JS to ECMAScript from the command line:

System Requirements: In any case, Java 8 is required to be installed on your system. Node.js is also required in version 5+. The N4JS plugins require the Eclipse Mars release (4.5.1).

Learn more