Blog

Our blog is home to many articles consisting of announcements, descriptions of the language, use cases and much more. You will find articles written by both the Nim developers as well as guest authors.

Launching the 2024 Nim Community Survey

We are proud to announce the launch of the official 2024 Nim Community Survey!


Nim version 2.0.12 released

The Nim team is happy to announce Nim version 2.0.12, our sixth patch release for Nim 2.0, for our users who haven’t switched yet to Nim 2.2.


NimConf 2024 - Nim Online Conference

NimConf 2024 will take place on October 26th.

Nim versions 2.2.0 and 2.0.10 released

The Nim Team is happy to announce two releases:

  • version 2.2.0, our new stable release
  • version 2.0.10, a patch release for Nim 2.0

Nim version 2.0.8 released

The Nim team is happy to announce Nim version 2.0.8, our fourth patch release for Nim 2.0.


Nim version 2.0.6 released

The Nim team is happy to announce Nim version 2.0.6, our third, and the largest by far, patch release for Nim 2.0.


This Month with Nim: October 2023 to June 2024 (It is a long month)

It has been a long time since one of these!

Versions 2.0.4 and 1.6.20 released

The Nim team is happy to announce two releases:

  • the latest Nim, version 2.0.4
  • LTS release, version 1.6.20

Nim Community Survey 2023 Results

Here are the results of Nim Community Survey 2023.

Versions 2.0.2 and 1.6.18 released

The Nim team is happy to announce two releases:

  • the latest Nim, version 2.0.2
  • LTS release, version 1.6.18

Mastering Nim contest winners

The contest is over! A gold crown can be seen by turning the picture upside down:


Launching the 2023 Nim Community Survey

We are proud to announce the launch of the official 2023 Nim Community Survey!


Version 1.6.16 released

The Nim team is happy to announce version 1.6.16, our eight patch release for Nim 1.6.


Mastering Nim, 2nd edition

Discover the secret of Nim!


This Month with Nim: July and August 2023

Webdev, webdev, webdev, and a backup program!

Nim v2.0 released

The Nim team is proud and happy to announce Nim version 2.0.


Version 1.6.14 released

The Nim team is happy to announce version 1.6.14, our seventh (and largest) patch release for Nim 1.6.


This Month with Nim: April and May 2023

Nuance, Ferus and Gooey

This Month with Nim: March 2023

Ui bindings, Chess bots, Raylib binding updates. The list goes on, we swear!

Version 2.0.0 RC2

The second release candidate (RC2) for Nim version 2.0 is ready for testing.


Version 1.6.12 released

The Nim team is happy to announce version 1.6.12, our sixth patch release for Nim 1.6.


This Month with Nim: Feburary 2023

A system monitor, internationalization macros, and a nimib update

This Month with Nim: November and December 2022

Cliche, WebRTC, Nimrun Action and p5nim

Version 2.0.0 release candidate

The first release candidate for Nim version 2.0 is ready for testing.


Version 1.6.10 released

The Nim team is happy to announce version 1.6.10, our fifth patch release for Nim 1.6.


A cost model for Nim

This blog post is the beginning of a cost model for the implementation that is available via `Nim devel` aka Nim version 2.

This Month with Nim: October 2022

Nim's Website Analytics, HTTP RPC, and TileEngine Bindings

NimConf 2022 - Nim Online Conference

NimConf 2022 will take place on October 22nd.

This Month with Nim: September 2022

Nodejs update, assignment macros, OpenSHMEM bindings, and a TCP monitor

Version 1.6.8 released

The Nim team is happy to announce version 1.6.8, our fourth patch release for Nim 1.6.


This Month with Nim: June and July 2022

Home Automation, NimYAML 1.0, and a LaTeX like

Mastering Nim - now available on Amazon

My book 'Mastering Nim - A complete guide to the programming language' is now available on Amazon

This Month with Nim: April and May 2022

Rest API templates, Fancy Strings, and terminal image rendering

Version 1.6.6 released

The Nim team is happy to announce version 1.6.6, our third patch release for Nim 1.6.


This Month with Nim: Feburary and March 2022

Automatic C bindings, a Declarative GTK, Typesafe-ish macros, and a GameCube Emulator

Version 1.6.4 released

The Nim team is happy to announce version 1.6.4, our second patch release for Nim 1.6.


Nim Devroom at FOSDEM 2022

Tomorrow (Sat, Feb 5th) there is a Nim Devroom at FOSDEM 2022

This Month with Nim: January 2022

January and December introduced cool and interesting libraries.

Nim Community Survey 2021 Results

Here are the results of Nim Community Survey 2021.

Version 1.6.2 released

The Nim team is happy to announce version 1.6.2, our first patch release for Nim 1.6.


Nim Devroom at FOSDEM 2022 - Call for Participation

This year Nim has its own developer room. Read more to learn about how to submit a talk!

This Month with Nim: November 2021

November has brought one project, a blog post, and WASM-4 support.

Advent of Nim 2021

Wednesday December 1st at 5 a.m. UTC will mark the start of the seventh incarnation of Advent of Code, popular programming contest started back in 2015. The author describes Advent of Code (AoC) as “a series of small programming puzzles for a variety of skill sets and skill levels in any programming language you like”.


Launching the 2021 Nim Community Survey

We are proud to announce the launch of the official 2021 Nim Community Survey!


Zen of Nim

Transcript of Zen of Nim presentation at NimConf2021

This Month with Nim: October 2021

Six interesting projects our users worked on in October

Nim receives $100k in Bitcoin donations

Earlier this year we have had the privilege of receiving 1.868BTC (~117k USD at time of writing) to our long-standing Bitcoin wallet address.

Version 1.6.0 released

Nim version 1.6 is now officially released!


This Month with Nim: September 2021

Four interesting projects our users worked on in September

This Month with Nim: August 2021

Three interesting projects our users worked on in August

Benchmarking the Beast

Benchmarking with the Sieve of Eratosthenes with efficient cache use

This Month with Nim: June 2021

Three interesting projects our users worked on in June

A New Home For Our Community

Take a look at some updates to our official IRC channel as well as new ways to connect to our community via Matrix.

NimConf 2021 - Nim Online Conference

NimConf 2021 will take place in about two weeks from now -- on June 26th.

This Month with Nim: May 2021

Four interesting projects our users worked on in May

Version 1.4.8 released

The Nim team is happy to announce version 1.4.8, our fourth patch release for Nim 1.4.


This Month with Nim: April 2021

Three interesting packages our users worked on in April

Versions 1.4.6 and 1.2.12 released

The Nim team is happy to announce the double patch release of versions 1.2.12 and 1.4.6.


This Month with Nim: March 2021

Four interesting packages our users worked on in March

Pattern matching in Nim

Nim fusion and pattern matching

This Month with Nim: Feburary 2021

Five interesting packages our users worked on in Feburary

Multithreading flavors: Choosing the right scheduler for the right job

Demystifying multithreading for IO and multithreading for Compute.

Versions 1.4.4 and 1.2.10 released

The Nim team is happy to announce the double patch release of versions 1.2.10 and 1.4.4.


This Month with Nim: January 2021

Seven interesting packages our users worked on in January

This Month with Nim

I will be starting a monthly blog post for community showcase entitled 'This Month with Nim'.

Nim Community Survey 2020 Results

The Nim community survey 2020 has been open for one month, and we have received 769 responses - we think this is a large enough sample to draw conclusions about our users and their habits. Before we go into details, we would like to thank all the people who took the time to respond. We really appreciate the feedback!


Nim in 2020: A short recap

A lot has happened in the Nim world in 2020: two new major releases, two new memory managements strategies (ARC and ORC), the first Nim conference, and much more.


Launching the 2020 Nim Community Survey

We are proud to announce the launch of the official 2020 Nim Community Survey!


ORC - Vorsprung durch Algorithmen

ORC - Algorithmic Advantages

Version 1.4.2 released

The Nim team is happy to announce version 1.4.2, our first patch release for Nim 1.4.


Advent of Nim 2020

Tuesday December 1st at 5 a.m. UTC will mark the start of the sixth incarnation of Advent of Code, popular programming contest started back in 2015. The author describes Advent of Code (AoC) as “a series of small programming puzzles for a variety of skill sets and skill levels in any programming language you like”.


Versions 1.2.8 and 1.0.10 released

The Nim team is happy to announce this double release of versions 1.2.8 and 1.0.10.


Version 1.4.0 released

We are very proud to announce Nim version 1.4 after six months of continuous development! Other than version 1.0, this is probably the biggest Nim release yet and we’re very excited to release it!


Introduction to ARC/ORC in Nim

Nim is advancing towards more efficient memory management models. Let's talk about ARC/ORC and see how they will change the way memory works in Nim.

Hacktoberfest with Nim

Hacktoberfest is an annual event happening in October which celebrates open source software and encourages meaningful contributions to the open source ecosystem. To win a T-shirt or plant a tree, you must sign up on the Hacktoberfest site and make four pull requests to any repo on Github by the end of October.


Write Tracking for Nim (Part 2)

7 years ago I wrote how Nim would get “write tracking” as an alternative to adding const to Nim’s type system. This year it finally made it into Nim nightly! Since then the feature was reimplemented and all the details how it works did change.


Versions 1.2.6 and 1.0.8 released

The Nim team is happy to announce this double release of versions 1.2.6 and 1.0.8.


Ray tracing in Nim

I am convinced that if you want to start a rendering project from scratch, Nim is the best language to use.

NimConf 2020

NimConf is happening on Saturday June 20th 2020, don’t miss it!


Version 1.2.2 released

The Nim team is happy to announce version 1.2.2, our first patch release for Nim 1.2.


Static Analysis

Nim is in an excellent position to “get married” with static analysis, and it doesn’t have to be based on some intermediate representation but can achieve a solution more similar to Spark.

Nim Online Conference 2020

Mark the date: Saturday, June 20th 2020.


Version 1.2.0 released

We are very proud to announce Nim version 1.2 after six months of continuous development!


Nim Community Survey 2019 Results

Nim community survey 2019 has been open for 50 days, and we have received 908 responses, which is our record-high number (771 in 2018, 603 in 2017). Before we go into details, we would like to thank all the people who took the time to respond. We really appreciate the feedback!


Version 1.0.6 released

The Nim team is happy to announce version 1.0.6, our third patch release following Nim 1.0.0.


Launching the 2019 Nim Community Survey

We are proud to announce the launch of the official 2019 Nim Community Survey! No matter whether you use Nim today, have used Nim previously, or never used Nim before; we want to know your opinions. Your feedback will help the Nim project understand its strengths and weaknesses, and to determine development priorities for the future.


Version 1.0.4 released

The Nim team is happy to announce version 1.0.4, our second patch release following Nim 1.0.0.


Version 1.0.2 released

The Nim team is happy to announce version 1.0.2, our first patch release following Nim 1.0.0.


Version 1.0 released

The Nim Team is very proud and happy to announce the much-anticipated version 1.0 of the language.

Version 0.20.2 released

The Nim team is happy to announce version 0.20.2, which is our second release candidate for version 1.0.


Version 0.20.0 released

We are very proud to announce Nim version 0.20. This is a massive release, both literally and figuratively. It contains more than 1,000 commits and it marks our release candidate for version 1.0!

Version 0.19.6 released

The Nim team is happy to announce that the latest release of Nim, version 0.19.6, is now available. Nim is a systems programming language that focuses on performance, portability and expressiveness.


Version 0.19.4 released

The Nim team is happy to announce that the latest release of Nim, version 0.19.4, is now available. Nim is a systems programming language that focuses on performance, portability and expressiveness.


Nim in 2018: A short recap

There were several big news in the Nim world in 2018 – two new major releases, partnership with Status, and much more. But let us go chronologically.


Version 0.19.2 released

The Nim team is happy to announce that the latest release of Nim, version 0.19.2, is now available. Nim is a systems programming language that focuses on performance, portability and expressiveness.


Advent of Nim

Saturday December 1st at 5 a.m. UTC will mark the start of the fourth incarnation of Advent of Code, popular programming contest started back in 2015. The author describes Advent of Code (AoC) as “a series of small programming puzzles for a variety of skill sets and skill levels in any programming language you like”.


Nim Community Survey 2018 Results

We have recently closed the 2018 Nim Community Survey. I am happy to say that we have received exactly 771 responses, huge thanks to all the people that took the time to respond. We’re incredibly thankful for this very valuable feedback.


Welcome our new team member, Arne Döring!

We are glad that Arne Döring joined us as a fulltime core Nim developer.

Hacktoberfest with Nim

Hacktoberfest is an annual event happening in October which celebrates open source software and encourages meaningful contributions to the open source ecosystem.


Version 0.19.0 released

The Nim team is happy to announce that the latest release of Nim, version 0.19.0, is now available. Nim is a systems programming language that focuses on performance, portability and expressiveness.


We're hiring!

This is your chance to get to work with one of the leading experts in compiler development, meta programming and language design.

Nim partners with Status.im

We're incredibly excited to announce the new partnership between Status and Nim.

Launching the 2018 Nim Community Survey

We are proud to announce the launch of the official 2018 Nim Community Survey! No matter whether you use Nim today, have used Nim previously, or never used Nim before; we want to know your opinions. Your feedback will help the Nim project understand its strengths and weaknesses, and to determine development priorities for the future.


Creating a simple macro

Nim is a powerful programming language that supports metaprogramming using macros. Though a lot of Nim programmers are unaware of their merits due to lack of learning resources. The first part of this series will discuss the use of macros to simplify the creation of boilerplate code in Nim.

Version 0.18.0 released

The Nim team is happy to announce that the latest release of Nim, version 0.18.0, is now available. Nim is a systems programming language that focuses on performance, portability and expressiveness.


Nim is coming to FOSDEM

In just under a week, FOSDEM 2018 will be taking place in Brussels

yes command in Nim

Recently I stumbled upon a post which takes a closer look at the `yes` command line tool. The main purpose of it is to write endless stream of a single letter `y` at a ridiculous speed.

Nim in 2017: A short recap

This year has been filled with some pretty major achievements for us, because of this I decided to write a little article summarising what we’ve accomplished in 2017 and to give a bit of a preview of what’s in store for 2018.


A guide to documenting, profiling and debugging Nim code

This guide discusses some of the useful tools for documenting, profiling and debugging Nim code.

Nim Community Survey 2017 Results

We have recently closed the 2017 Nim Community Survey. I am happy to say that we have received exactly 603 responses, huge thanks go to the people that took the time to respond. We’re incredibly thankful for this very valuable feedback.


Version 0.17.2 released

The Nim team is happy to announce that the latest release of Nim, version 0.17.2, is now available. Nim is a systems programming language that focuses on performance, portability and expressiveness.


Launching the 2017 Nim Community Survey

We are proud to announce the launch of the official 2017 Nim Community Survey! No matter whether you use Nim today, have used Nim previously, or never used Nim before; we want to know your opinions. Your feedback will help the Nim project understand its strengths and weaknesses, and to determine development priorities for the future.


Faster Command Line Tools in Nim

This is a guest post by Euan Torano cross-posted from Faster Command Line Tools in Nim. If you would like to publish articles as a guest author on nim-lang.org then get in touch with us via Twitter or otherwise.


Version 0.17.0 released

The Nim team is happy to announce that the latest release of Nim, version 0.17.0, is now available. Nim is a systems programming language that focuses on performance, portability and expressiveness.


Version 0.16.0 released

We’re happy to announce that the latest release of Nim, version 0.16.0, is now available!


Nim in Action is going into production!

I am very happy to say that just last week I have put the finishing touches on Nim in Action. The final manuscript has been submitted to Manning (the book's publisher), and the printed version is expected to start shipping in March 2017 (give or take 1 month).

Version 0.15.2 released

We’re happy to announce that the latest release of Nim, version 0.15.2, is now available!


Version 0.15.0 released

We’re happy to announce that the latest release of Nim, version 0.15.0, is now available!


Nim Community Survey Results

We have recently closed the 2016 Nim Community Survey. I am happy to say that we have received exactly 790 responses, huge thanks go to the people that took the time to respond. We’re incredibly thankful for this very valuable feedback.


BountySource Update: The Road to v1.0

This was cross-posted from update #4 on BountySource.


Launching the 2016 Nim Community Survey

We are proud to announce the official 2016 Nim Community Survey! No matter whether you use Nim today, have used Nim previously, or never used Nim before; we want to know your opinions. Your feedback will help the Nim project understand its strengths and weaknesses, and to determine development priorities for the future.


Version 0.14.2 released

Version 0.14.2 is just a bugfix release that fixes the most pressing regressions. In particular, the tar.xz now supports documentation generation, and the Windows installers bundle the latest stable nimble release.


Version 0.14.0 released

It’s been a while since the last release, but we’ve been very busy in the meantime. In addition to working on Nim we have started a BountySource campaign and announced the pre-release of a new Nim book titled Nim in Action. Our BountySource campaign has already been very successful, helping us raise enough funds to surpass 4 of our monthly goals. The companies and individuals that made this possible are listed on our brand new sponsors page.


Meet our BountySource sponsors

It has now been two months since we began our fundraiser. Time to meet our current sponsors.

Nim in Action is now available!

We are proud to announce that Nim in Action, a book about the Nim programming language, is now available!

Version 0.13.0 released

Once again we are proud to announce the latest release of the Nim compiler and related tools. This release comes just 3 months after the last release!


Andreas Rumpf's talk at OSCON Amsterdam

In case you have missed it, here is Andreas’ Nim: An Overview talk at OSCON Amsterdam.


Version 0.12.0 released

The Nim community of developers is proud to announce the new version of the Nim compiler. This has been a long time coming as the last release has been made over 5 months ago!


First Nim conference

Learn about the first Nim workshop in Kyiv.

Version 0.11.2 released

This is just a bugfix release that fixes the most pressing regressions we introduced with version 0.11.0. The way types are computed was changed significantly causing all sort of problems. Sorry for the inconvenience; we grew overconfident our large test suite would prevent these things.


Version 0.11.0 released

With this release we are one step closer to reaching version 1.0 and by extension the persistence of the Nim specification. As mentioned in the previous release notes, starting with version 1.0, we will not be introducing any more breaking changes to Nim.


Version 0.10.2 released

This release marks the completion of a very important change to the project: the official renaming from Nimrod to Nim. Version 0.10.2 contains many language changes, some of which may break your existing code. For your convenience, we added a new tool called nimfix that will help you convert your existing projects so that it works with the latest version of the compiler.


New website design!

A brand new website including an improved forum is now live. All thanks go to Philip Witte and Dominik Picheta, Philip Witte for the design of the website (together with the logo) as well as the HTML and CSS code for his template, and Dominik Picheta for integrating Philip’s design with Nim’s forum. We’re sure you will agree that Philip’s design is beautiful.


Version 0.9.6 released

Note: 0.9.6 is the last release of Nimrod. The language is being renamed to Nim. Nim slightly breaks compatibility.


Version 0.9.4 released

The Nimrod development community is proud to announce the release of version 0.9.4 of the Nimrod compiler and tools. Note: This release has to be considered beta quality! Lots of new features have been implemented but unfortunately some do not fulfill our quality standards yet.


Nimrod Featured in Dr. Dobb's Journal

Nimrod has been featured as the cover story in the February 2014 issue of Dr. Dobb’s Journal.


Andreas Rumpf's talk on Nimrod at Strange Loop 2013 is now online

Andreas Rumpf presented Nimrod: A New Approach to Metaprogramming at Strange Loop 2013. The video and slides of the talk are now available.


Version 0.9.2 released

We are pleased to announce that version 0.9.2 of the Nimrod compiler has been released. This release has attracted by far the most contributions in comparison to any other release.


Version 0.9.0 released

Summary

  • Unsigned integers have been added.
  • The integer type promotion rules changed.
  • The template and macro system evolved.
  • Closures have been implemented.
  • Term rewriting macros have been implemented.
  • First steps to unify expressions and statements have been taken.
  • Symbol lookup rules in generics have become stricter to catch more errors.

Version 0.8.14 released

Version 0.8.14 has been released!


Version 0.8.12 released

Bugfixes

  • Bugfix: httpclient correct passes the path starting with /.
  • Bugfixes for the htmlparser module.
  • Bugfix: pegs.find did not respect start parameter.
  • Bugfix: dialogs.ChooseFilesToOpen did not work if only one file is selected.
  • Bugfix: niminst: nimrod is not default dir for every project.
  • Bugfix: Multiple yield statements in iterators did not cause local vars to be copied.
  • Bugfix: The compiler does not emit very inaccurate floating point literals anymore.
  • Bugfix: Subclasses are taken into account for try except matching.
  • Bugfix: Generics and macros are more stable. There are still known bugs left though.
  • Bugfix: Generated type information for tuples was sometimes wrong, causing random crashes.
  • Lots of other bugfixes: Too many to list them all.

Version 0.8.10 released

Bugfixes

  • Bugfix: Command line parsing on Windows and os.parseCmdLine now adheres to the same parsing rules as Microsoft’s C/C++ startup code.
  • Bugfix: Passing a ref pointer to the untyped pointer type is invalid.
  • Bugfix: Updated keyval example.
  • Bugfix: system.splitChunk still contained code for debug output.
  • Bugfix: dialogs.ChooseFileToSave uses STOCK_SAVE instead of STOCK_OPEN for the GTK backend.
  • Bugfix: Various bugs concerning exception handling fixed.
  • Bugfix: low(somestring) crashed the compiler.
  • Bugfix: strutils.endsWith lacked range checking.
  • Bugfix: Better detection for AMD64 on Mac OS X.

Version 0.8.8 released

Bugfixes

  • The Posix version of os.copyFile has better error handling.
  • Fixed bug #502670 (underscores in identifiers).
  • Fixed a bug in the parsexml module concerning the parsing of <tag attr="value" />.
  • Fixed a bug in the parsexml module concerning the parsing of enities like &ltXX.
  • system.write(f: TFile, s: string) now works even if s contains binary zeros.
  • Fixed a bug in os.setFilePermissions for Windows.
  • An overloadable symbol can now have the same name as an imported module.
  • Fixed a serious bug in strutils.cmpIgnoreCase.
  • Fixed unicode.toUTF8.
  • The compiler now rejects '\n' (use "\n" instead).
  • times.getStartMilsecs() now works on Mac OS X.
  • Fixed a bug in pegs.match concerning start offsets.
  • Lots of other little bugfixes.

Version 0.8.6 released

The version jump from 0.8.2 to 0.8.6 acknowledges the fact that all development of the compiler is now done in Nimrod.


RSS feed