Learn Nim - Part 0 of n | Introduction
There is a huge lack of well-written materials in the tech industry. It is quite rare to find documentation that is easy to understand, which also prevents you from banging your head against the wall. The quality of documentation is sometimes what contributes to the successful adoption of a particular technology including programming languages.
I started learning Nim recently. Nim is a compiled, statically typed programming language that was released to the public in 2008. However, it's not the rage these days.
It ought to be!
Why?
The language has the features to write low-level programs and yet is syntactically pleasant to work with unlike C++, C, Rust, Zig, Go, Odin, and V. Add to this, the language is flexible.
The followers of the language boast that the language offers the productivity that Python offers and the power offered by the C programming language. That is an audacious claim.
If you are a scripting language person and want to start system programming, Nim is a good choice.
I was going through a phase where I was getting bored of programming. I then realised that it was actually because I wasn't programming that much at all. I was spending a lot of time reading about stuff and learning the theory behind technology. I wasn't making any applications. At the same time, I wanted to work with some low-level stuff in computers (basically, work with the memory) and I also wanted to use a programming language that is elegant by design.
So, I stumbled upon Nim.
At first glance, Nim feels like a scripting language. Because you rarely see the thing that makes a systems programming language what it is: blocks demarcated by curly braces {}.
Nim is not the first mid-level language (assembly languages are low-level languages) that doesn't use curly braces "{}" to create code blocks. But that sort of language syntax is now associated with languages like Python and Bash. So, it's natural to assume that Nim is a scripting language. Well, it is not. Even though people do write "scripts" using Nim.
Let me get to business. I want to create a learning material that is easy for beginners to understand. This is it. Wait for my next post.
Read part 1 here.