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.
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 types.
Statements are grouped by indentation but can span multiple lines.
7 years ago I wrote how Nim would get “write
as an alternative to adding const to Nim’s type system.
This year it finally made it into Nim nightly!
Since then the feature was reimplemented and all the details how it works did change.
The first Nim book, Nim in Action, is now available for purchase as
an eBook or printed soft cover book.
Learn the basics such as Nim's
syntax and advanced features including macros, and gain practical
experience with the language by being led through multiple
application development examples.
Teaches the basics including the syntax of Nim.
Explains how to use the Nimble package manager.
Includes step-by-step instructions and explanations of
how to develop various applications, including a chat program,
a Twitter clone and more.
The Nim compiler and tools are all written in Nim and licensed under the
MIT license, with most development taking place on GitHub.
Be sure to watch the repository to get updates on Nim's
development, or star it to give us some brownie points.