Last week, Status shared a blog post about a research initiative called Nimbus–a Nim implementation of a sharding client for Ethereum.
Today, Status officially announced a partnership with the team behind the Nim programming language; led by Andreas Rumpf.
This partnership will not only support the ongoing sharding research but promote the continued development of the underlying open source language serving as the basis of Status’ work.
The more developed, documented, and robust Nim is, the more in-depth Status R&D can be. Andreas and the team have a strong vision for the future of the programming language and Status wants to support them in their efforts.
Why Nim
Status chose to work in Nim because it is a lightweight programming language that suits itself well to light client implementation. It also allows Status to better learn the Ethereum protocol, as well as attract highly specialized developers with a deep understanding and appreciation for the advanced language features.
Finally, the language is backed by a very strong team of talented developers. Andreas started Nim’s development in 2006, only two years later the compiler reached the important milestone of being able to compile itself, a process that is known as “bootstrapping.” For years now many users are deploying Nim applications in production.
Nim can be summarized as combining the very best aspects of the well-known programming languages C, Python, and Lisp: Nim is as fast as C, as readable as Python and as extensible as Lisp. This aspect makes Nim unique in the large landscape of existing programming languages.
Nim was envisioned from the start as a simple language with a focus on metaprogramming and with Status’ support, Nim’s metaprogramming will not only cover its syntactic elements but also its semantics and its type system.
The Partnership
This partnership will see Status support Andreas and the Nim team with funding and resources needed to stay focused on the development of the programming language. The Nim team will add at least two paid full-time developers. They will fix bugs, respond to issues, and of course develop the compiler, the standard library as well as its tooling.
So far, the language has been supported by the open source community and generous volunteers and donors who believe in the work. This has created a unique commitment to the project by all those involved but has meant a lack of dedicated and focused computer scientists solely focused on its development.
The Status Nimbus team is very familiar with Nim as core Status contributors Jacek Sieka, Zahary Karadjov, Eugene Kabanov, Ryan Lipscombe, Dustin Brody, and Yuriy Glukhov are active contributors to the Nim repo. There is already deep integration and collaboration between the Nimbus and Nim teams and this partnership will see even further collaboration and support of each other’s work.
A Look Ahead at the Roadmap
With Status’ sponsorship, the Nim team has come up with this ambitious roadmap which makes Nim one of the most exciting languages to watch in the following years. Nim version 1.0.0 is the long-overdue commitment to a stable language core that will preserve backward compatibility for years to come.
There is plenty of work to be done before the release of version 1.0.0 which will be outlined in detail in the near future. There are no hard deadlines on a release date, but a detailed milestone tracking all the issues that need to be resolved for v1.0.0 is now available.
Beyond the Partnership
In addition to the sponsorship of Nim’s ongoing core development, there will be a grants program for Nim inspired by Google’s Summer of Code. Developers will be hired to work on specific Nim-related projects.
Examples for grants:
- Improve the Nimsuggest tool to support the common “language server protocol” that every text editor and IDE is starting to speak.
- Improve Nim’s package manager, “Nimble”, to support reproducible builds.
- Improve Nim’s tooling so that the result of macro expansions becomes easier to look at.