blob: fc5a458e5e4778e3ad4c816ebb0586559541e0d0 [file] [log] [blame]
////
Copyright (c) 2016 NumberFour AG.
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://www.eclipse.org/legal/epl-v10.html
Contributors:
NumberFour AG - Initial API and implementation
////

[discrete]
.N4JS Userguides
= N4JS Userguides
:doctype: book
:notitle:
== FAQ
Find concise answers for the most frequently asked questions about the Eclipse N4JS project.
[horizontal]
<<../faq/index.adoc#faq,Frequenctly Asked Questions>> :: Common N4JS topics such as Open-Sourcing, JavaScript, Java and Typescript Comparison.
<<../faq/comparison-java.adoc#n4js-and-java,N4JS & Java Comparison>> :: A comparison between the features of N4JS and Java.
<<../faq/comparison-typescript.adoc#n4js-and-typescript,N4JS & Typescript Comparison>> :: A comparison between the features of N4JS and Typescript.
---
== Features
The link:../features/index.html[Feature Table] describes the state of all current N4JS Language and IDE features.
For specifics on each feature described here, see their respective feature pages:
[horizontal]
link:../features/async-await.html[Async/Await] :: Learn about the benefits of asynchronous data flows and how they work with N4JS code.
link:../features/dependency-injection.html[Dependency Injection] :: Configure dependencies between classes with built-in Dependency Injection support.
link:../features/generics.html[Generics] :: N4JS Generics look similar to Java's generics with some differences that are illustrated in this article.
link:../features/modules.html[Modules] :: Modules help keep code well-defined and easy to comprehend. Read about keeping large projects maintainable with Module support within the N4JS IDE.
link:../features/nodejs-support.html[Node.js Support] :: Seamless integration of N4JS projects with existing node.js-based environments.
link:../features/nominal-and-structural-typing.html[Nominal vs. Structural Typing] :: N4JS provides both forms of typing. Read the feature on how they are combined in N4JS.
link:../features/testing.html[Test Support] :: The N4JS IDE and the built-in test execution runtime Mangelhaft were designed from the ground-up to support Test Driven Development. Explore how testing with N4JS will help ensure your projects behave as expected.
---
== Tutorials
=== IDE Setup & HelloWorld!
This short introduction covers the basics of getting up and running with the
N4JS IDE. From installation to running HelloWorld!, quickly learn about new features
of the N4JS IDE, how to create a new project, manage workspaces and begin development!
[horizontal]
<<n4js-ide-setup.adoc#n4js-ide-setup,N4JS IDE Setup Guide>> :: Basic installation and setup instructions.
=== npm Export Guide
The npm Export Guide briefly covers the essentials of Node.js development. A simple
code example is written and exported from the N4JS IDE as an npm package, run from
the command line and published to the npm registry. Quickly learn how to streamline Node.js development
using the N4JS IDE.
[horizontal]
<<npm-export-guide.adoc#npm-export-guide,npm Export Guide>> :: Basic npm export and publishing instructions.
=== In-Depth Tutorial
Using the built-in example projects as a reference, this in-depth tutorial covers the most important tools and features
of the N4JS IDE. The example project is explained as a domain model and built step-by-step.
New features of the N4JS IDE are introduced along the way such as *modules*, *type annotations*,
*dependency injection*, *testing* with an example test project and more.
[horizontal]
<<tutorial.adoc#tutorial,In-Depth Tutorial>> :: Begin using the more powerful features N4JS has to offer!
---
== Specification
=== N4JS Language Specification
For a complete reference of the N4JS Language, the Specification is available at the following location:
* link:https://www.eclipse.org/n4js/spec/index.html[N4JS Language Specification]
=== N4JS IDE Specification
For a reference of the N4JS IDE, i.e. the specific views and UI features of the Eclipse based IDE, the Specification is available at the following location:
* link:https://www.eclipse.org/n4js/idespec/index.html[N4JS IDE Specification]
=== N4JS Design Documentation
The design and other internal information valuable for contributors to Eclipse N4JS can be found at the following location:
* link:https://www.eclipse.org/n4js/design/index.html[N4JS Design Documentation]
== Release Notes
Information on the current state of the N4JS Language and IDE including details of known issues and upcoming features that are under development.
* link:../releases/index.html[Eclipse N4JS Release Notes]
=== Copyright Information
* <<license.adoc#license,License>>