Nim is a statically typed compiled systems programming language.
It combines successful concepts from mature languages like Python,
Ada and Modula.
Nim generates native dependency-free executables, not dependent on a
virtual machine, which are small and allow easy redistribution.
The Nim compiler and the generated executables support all major platforms
like Windows, Linux, BSD and macOS.
Nim's memory management is deterministic and customizable with destructors
and move semantics, inspired by C++ and Rust. It is well-suited for
embedded, hard-realtime systems.
Modern concepts like zero-overhead iterators and compile-time evaluation of
user-defined functions, in combination with the preference of value-based
datatypes allocated on the stack, lead to extremely performant code.
Nim can be used for all backend and frontend needs.
Nim is self-contained: the compiler and the standard library are
implemented in Nim.
Nim has a powerful macro system which allows direct manipulation of the
AST, offering nearly unlimited opportunities.
Macros cannot change Nim's syntax because there is no need for it — the
syntax is flexible enough.
Modern type system with local type inference, tuples, generics and sum
Statements are grouped by indentation but can span multiple lines.