DEV Community

ringabout
ringabout

Posted on

How to contribute to Nim language?

Nim language is a great and wonderful language. It's powerful and elegant. It is new but promising. It deserves more attentions.

Nim language is a community driven project which encourages more people to contribute to it.

If you want to contribute to Nim, I recommend you read Nim Docs first. You maybe find some typos and improvements from there.

If you need some challenges, you could try to solve some problems labeled easy or documentation.

Then if you have more knowledge about Nim language, you could add some features from other mature language or some functions your library needs which are common to use(maybe need RFC).

If you want to solve more complex problems, I recommend you to check something labeled JS or codegen which tends to be more easy to solve.

Finally I recommend you to read Contributing Guide which introduces more details you need to pay attention to.

If you have some problems about Nim language, welcome to ask in Nim Discord Server.

Top comments (3)

Collapse
 
mellen profile image
Matt Ellen-Tsivintzeli • Edited

What is the inspiration behind Nim?

For example, Javascript's inspiration was "QUICK! WE NEED A SCRIPTING LANGUAGE! LIKE YESTERDAY!", python was inspired by minimalism, c was inspired by a need to make assembler comprehensible, and c++ was inspired by a misunderstanding of what object oriented programming is. #sorrynotsorry

What drove people to come up with this new language? From the site all I can gather is the someone liked a bunch of other languages and picked what they think of as the good bits and put them into another language. Is there more to it?

Collapse
 
ringabout profile image
ringabout • Edited

You could see what the creator of the language said
157.245.209.254/andreas-rumpf-on-c...

quote reddit comments: old.reddit.com/r/programming/comme...

What Nim language is?
One language to rule them all
Good for everything, from shell scripting to web front and backend, to machine learning, high-performance computing (HPC), and embedded.
Type system: strong static typing, nice generics, concepts, and type classes
Performance: matches C and C++, always gives control to the programmer
Portability: compiles to C, C++, and Javascript
Native use of all libraries in target languages (no ABI issues) + really nice FFI
Single (tiny) executable with no dependencies
Write server/client in the same language and share code between front/back end
Linux, Windows, and macOS
Iterating: Very fast compile speeds
Top-tier metaprogramming
Hygienic AST Macros a core part of the language, very flexible syntax
Runs a VM of Nim at compile time giving you most of the language (bar pointers) to generate code or run procedures and store them as const
e.g. async implemented just with macros, doesn't need special language support
e.g. can automate building types and code from file data at compile time

Collapse
 
mellen profile image
Matt Ellen-Tsivintzeli

Thanks!