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.
Fast deferred reference counting memory management that supports real-time 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.
Build command-line applications, games, web servers, kernels and everything
else in between. Nim has a low barrier to entry and offers powerful
features you won't find in many mainstream programming languages.
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.