CommunityNews

CommunityNews

Computer Programming with the Nim Programming Language

In the year 1970 Prof. Niklaus Wirth invented the Pascal programming language to teach his students the fundamentals of computer programming. While the initial core Pascal language was designed for teaching purposes only, it was soon expanded by commercial vendors and got some popularity. Later, Wirth presented the language Modula-2 with improved syntax and support of modules for larger projects, and the Oberon language family with additional support for Object-Oriented Programming.

The Nim programming language can be seen in this tradition, as it is basically an easy language suited for beginners with no prior programming experience, but at the same time is not restricted in any way. Nim offers all the concepts of modern and powerful programming languages in combination with high performance and some sort of universality — Nim can be used to create programs for tiny microcontroller as well as large desktop apps and web applications.

Most books about programming languages concentrate on the language itself and assume that the reader is already familiar with the foundations of computer hardware and already has some programming experience. This is generally a valid approach, as today most people are taught this fundamental knowledge, sometimes called Computer Science (CS) in school. But still, there are people who missed this introduction in school for various reasons and decide later that they need some programming skills, maybe for a technical job. And there may exist some children that are not satisfied with the introduction to computer science taught at school. So we have decided to start this book with a short introduction to fundamental concepts — most people can skip that part. In part II we explain the basics of computer programming step by step in a way which should enable even children to learn independently. In this part we may repeat some of the stuff which we already mentioned in part I. We do that by intent, as some people may skip part I, and because it is generally not a bad idea to support the learning process of the reader with some repetitions. Part III will give you an overview of the Nim standard library, and part IV will introduce some useful external packages. Part V will introduce advanced concepts like asynchronous operations, threading and parallel processing, and macros and meta-programming. Nim macros are very powerful but difficult at first. Part VI may finally present some advanced examples.

This book is basically a traditional text book…

Read in full here:

https://ssalewski.de/nimprogramming.html

This thread was posted by one of our members via one of our news source trackers.

Where Next?

Popular Backend topics Top

PragmaticBookshelf
Elixir's straightforward syntax and this guided tour give you a clean, simple path to learn modern functional programming techniques. Exp...
New
PragmaticBookshelf
Drowning in unnecessary complexity, unmanaged state, and tangles of spaghetti code? Clojure cuts through complexity by providing a set of...
New
PragmaticBookshelf
Classroom-tested by tens of thousands of students, this new edition of the bestselling intro to programming book is for anyone who wants ...
New
PragmaticBookshelf
Modern C++ Programming With Test-Driven Development, the only comprehensive treatment on TDD in C++ provides you with everything you need...
New
PragmaticBookshelf
It's easier to learn how to program a computer than it has ever been before. Now everyone can learn to write programs for themselves—no p...
New
PragmaticBookshelf
Expand your knowledge of the Raspberry Pi while building nearly a dozen immediately applicable hardware and software projects. Use Python...
New
PragmaticBookshelf
Write effective and useful tests with the Mockito framework. Distinguish between mocks, stubs, and spies, and feel confident about when a...
New
PragmaticBookshelf
Use your Ruby knowledge to quickly learn Elixir and build scalable applications using the most powerful libraries in the Elixir ecosystem...
New
PragmaticBookshelf
Give your Rail's apps an instant performance boost by harnessing the power of efficient, manageable, and sustainable background processin...
New
PragmaticBookshelf
Shave countless hours off development time with production-ready Go recipes. Learn language nuances while doing common (and not so common...
New

Other popular topics Top

PragmaticBookshelf
From finance to artificial intelligence, genetic algorithms are a powerful tool with a wide array of applications. But you don't need an ...
New
AstonJ
This looks like a stunning keycap set :orange_heart: A LEGENDARY KEYBOARD LIVES ON When you bought an Apple Macintosh computer in the e...
New
Exadra37
Oh just spent so much time on this to discover now that RancherOS is in end of life but Rancher is refusing to mark the Github repo as su...
New
PragmaticBookshelf
Learn different ways of writing concurrent code in Elixir and increase your application's performance, without sacrificing scalability or...
New
PragmaticBookshelf
Author Spotlight Rebecca Skinner @RebeccaSkinner Welcome to our latest author spotlight, where we sit down with Rebecca Skinner, auth...
New
New
New
husaindevelop
Inside our android webview app, we are trying to paste the copied content from another app eg (notes) using navigator.clipboard.readtext ...
New
PragmaticBookshelf
Develop, deploy, and debug BEAM applications using BEAMOps: a new paradigm that focuses on scalability, fault tolerance, and owning each ...
New
AnfaengerAlex
Hello, I’m a beginner in Android development and I’m facing an issue with my project setup. In my build.gradle.kts file, I have the foll...
New