Programmiersprache: Nim 1.6 ist das bislang größte stabile Release

Mit 1700 Commits, fast 900 geschlossenen Issues und zahlreichen neuen Modulen ist die neue Hauptversion ein Meilenstein für die statisch typisierte Sprache.

Lesezeit: 4 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 33 Beiträge
Von
  • Silke Hahn

Die statisch typisierte, kompilierte Systemprogrammiersprache Nim ist in Version 1.6 erschienen. Das bisher größte stabile Release ist das Ergebnis von rund einem Jahr Entwicklungsarbeit durch das Core-Team und weitere Helfer. An Highlights hebt das Team in der flankierenden Release-Meldung im Nim-Blog hervor, dass es die Sprache um zahlreiche Funktionen und Compiler-Features erweitert hat. So hat Nims Standard-Library 15 neue Module erhalten, und über 40 Module der Library dürfen sich neuer Features erfreuen.

An neuen Sprachfeatures bietet Nim 1.6 unter anderem nutzerdefinierte Literale, private Importe, strenge Effekte, Dot-ähnliche Operatoren und Block-Argumente mit optionalen Parametern. Der Compiler beherrscht neuerdings nutzerdefinierte NimScript-Erweiterungen und bietet die Möglichkeit für selbst konfigurierbare Compiler-Nachrichten. Zudem soll das NimScript-Backend konsistenter mit dem C-Backend sein, und Nim 1.6 unterstützt unter anderem Prozessoren des Typs Apple Silicon/M1. Insbesondere die meistverwendeten Module hat das Team laut Blogeintrag hinsichtlich der Performance überarbeitet: system, math, random, json, jsonutils, os, typetraits, wrapnils, lists und hashes.

Zu 170 Modulen gibt es eine neue Dokumentation, die neuerdings mit über 300 ausführbaren Codebeispielen angereichert ist. Die Release-Meldung hebt neben der Herausgabe von 280 neuen Nimble Packages hervor, dass rund 1700 Pull Requests ins Hauptprojekt eingeflossen sind (genauer gesagt 1667, die auf 1760 Commits basieren), und offenbar konnte das Projekt im Laufe des vergangenen Jahres 893 Issues erfolgreich schließen.

Die Systemprogrammiersprache eignet sich für die meisten Programmierbereiche von Shell-Scripting über Web-Frontend und -Backend, wissenschaftlichen Einsatz, Deep Learning, Blockchain und Spieleentwicklung bis hin zu Embedded im IoT-Sektor. In den meisten Backends und Frontends lässt sich Nim einsetzen, da der Code sich in Richtung der Sprachen C, C++ und JavaScript kompilieren lässt. Nim kombiniert Konzepte ausgereifter Sprachen wie Python, Ada und Modula, es läuft ohne virtuelle Maschine auf unterschiedlichen Plattformen.

Wie in vorherigen Versionen angekündigt, wollen die Nim-Entwickler weiterhin darauf setzen, die Syntax der Sprache so einfach und leicht verständlich wie möglich zu halten, damit sich der resultierende Code auf möglichst vielen Plattformen effizient bearbeiten lässt. Nim erzeugt dafür kleine ausführbare Dateien, die eine einfache Umverteilung ermöglichen. Dafür nimmt Nim Anleihen bei anderen Programmiersprachen: Mehrere Konstrukte aus Python, die Sichtbarkeitsmarkierungen aus Oberon oder auch die aus Pascal bekannten Typabschnitte, durch die schlankere Definitionen möglich werden, sind typisch für Nim. Das Grundprinzip der Sprache ist die Unabhängigkeit: Mit Nim erzeugte ausführbare Dateien sollen langfristig ohne Virtuelle Maschine auf allen gängigen Plattformen laufen.

Ausgehend von einem kompakten Sprachkern eröffnet Nim Entwickler über Metaprogrammierfunktionen auch Programmierparadigmen, die auf Generics, Templates und Makros aufbauen. Darüber hinaus stellt die Standard-Library async und await bereit. Über ein integriertes Backend können Entwicklerinnen und Entwickler ihren Code nach JavaScript kompilieren – client- wie auch serverseitig. Ebenso sind Bindings zu C-, C++- und Objective-C-Librarys möglich, sodass Nim-Code von dem umfassenden Ökosystem dieser Sprachfamilie profitieren kann.

Nim 1.6 steht samt Anleitung auf der Projektseite zum Download für Windows und Unix-Systeme bereit. Alle Details zur aktuellen Version stehen in der Ankündigung im Nim-Blog. Mehr Informationen zu der Programmiersprache Nim lassen sich der Projektwebsite entnehmen. Interessierte erwartet dort eine umfangreiche Dokumentation samt Lernhilfen.

(sih)