*** Welcome to piglix ***

Nim (programming language)

Nim
Paradigm multi-paradigm: compiled, concurrent, procedural, imperative, object-oriented
Designed by Andreas Rumpf
First appeared 2008; 9 years ago (2008)
Preview release
0.16.0 / 8 January 2017; 3 months ago (2017-01-08)
Typing discipline static,strong,inferred, structural
OS Cross-platform
License MIT
Filename extensions .nim
Website nim-lang.org
Influenced by
Ada, Modula-3, Lisp, C++, Object Pascal, Python, Oberon

Nim (formerly named Nimrod) is an imperative, multi-paradigm, compiled programming language designed and developed by Andreas Rumpf. It is designed to be "efficient, expressive, and elegant", supporting metaprogramming, functional, message passing,procedural, and object-oriented programming styles by providing several features such as compile time code generation, algebraic data types, a foreign function interface (FFI) with C and compiling to JavaScript.

Nim is statically typed, with a simple syntax. It supports compile-time metaprogramming features such as syntactic macros and term rewriting macros. Term rewriting macros enable library implementations of common data structures such as bignums and matrices to be implemented with an efficiency as if they would have been builtin language facilities. Iterators are supported and can be used as first class entities in the language as can functions, these features allow for functional programming to be used. Object-oriented programming is supported by inheritance and multiple dispatch. Functions can be generic and can also be overloaded, generics are further enhanced by the support for type classes. Operator overloading is also supported. Nim includes automatic garbage collection based on deferred reference counting with cycle detection. Andrew Binstock (editor-in-chief of Dr. Dobb's) says Nim (formerly known as Nimrod) "presents a most original design that straddles Pascal and Python and compiles to C code or JavaScript."


...
Wikipedia

...