Programmiersprachen: Zig soll die moderne Alternative zu C werden
C, C++, Rust und Go: Programmiersprachen zur systemnahen Entwicklung gibt es viele. Zig ist eine weitere und verfolgt einen minimalistischen Ansatz.

Geht es in der Softwareentwicklung um systemnahes Programmieren, herrscht bei der Auswahl der Programmiersprache eigentlich kein Mangel. C oder C++, Rust und vielleicht auch Go sind die möglichen Alternativen. Und dann gibt es auch noch Zig – ein bisschen zumindest, denn die 2015 von Andrew Kelly initiierte Programmiersprache hat es bislang nicht zur Version 1.0 geschafft, Das wird auch noch eine Weile so bleiben, wie Kelly vor ein paar Monaten in einem Roadmap-Update verkündete: "2025? Das könnte klappen." Aber versprochen ist das nicht. "Kunst kann man nicht hetzen", sagte er.
Vom Konzept her ist Zig eine imperative, prozedurale, funktionale, objektorientierte, modulare Multi-Paradigmensprache. Zig-Sourcen sehen rein äußerlich wie eine Mischung aus Typescript und C aus, dazu kompatibel sind sie jedoch nicht. Zig kann aber Bibliotheken von C und C++ direkt importieren und der Compiler kann Header-Dateien für diese Sprache generieren, um umgekehrt in Zig geschriebene Programmteile in C oder C++ nutzen zu können. Verwendet wird Zig zum Beispiel schon in Bun.js.
Das Interessante steckt im Detail
Die interessanten Konzepte aber versteckt Zig in den Details. Eine Besonderheit ist, dass ein möglichst kleines Featureset enthalten sein soll. Die Entwickler finden es vorteilhaft, wenn es nur einen einzigen offensichtlichen Weg gibt, etwas zu erreichen. Eine Zeit lang hat man deshalb sogar auf For-Schleifen verzichtet, weil es While-Schleifen ja schon gab.
Interessant ist aber auch das Error-Handling-Konzept. Exceptions werden nicht geworfen, sondern einfach zurückgegeben. Weil geworfene Exceptions oft als versteckter Control-Flow missbraucht werden, gibt es das nicht, stattdessen können die Rückgabewerte von Funktionen sowohl der deklarierte Typ als auch ein Fehler sein – der Rückgabewert ist also ein Union-Typ aus Fehler-Typ und dem Typ der eigentlichen Rückgabe.
Speicher-Allocator-Objekt in der Standard Library
Wie eigentlich jede systemnahe Programmiersprache braucht auch Zig eine direkte Möglichkeit, Speicher zu allokieren. Ein direktes Malloc gibt es aber nicht, stattdessen bekommt man den Speicher über eine Anfrage an ein Allocator-Objekt in der Standard Library. Damit sollen versteckte Allokationen verhindert werden.
Könnte also wirklich interessant werden.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
"Zig soll die moderne Alternative zu C werden" Nur über meine Leiche! Ich hab's satt...
Da ist dein Eindruck schon mal nicht schlecht. Diese beiden haben eine solide...
Auch wahr.
Ich finde Rusts und Zigs return basierte Varianten im Zusammenspiel mit anderen Features...
Kommentieren