header banner
Default

Warum Zig die Dominanz von C beenden könnte


Zig versucht, die Sicherheit von Rust mit der Leichtigkeit von C zu verbinden. Die Programmiersprache kann mit Besonderheiten wie comptime punkten – einem Schlüsselwort, mit dessen Hilfe Code explizit zur Compile-Zeit ausgewertet werden kann.

Die Programmiersprache wurde bereits 2016 von Andrew Kelley ins Leben gerufen und scheint nun immer beliebter zu werden. Laut dem Entwickler ist Zig „eine modernere Sprache, die versucht, das Beste aus diesen Sprachen zu absorbieren und eine vergleichbare Leistung mit einer besseren, zuverlässigeren Entwickler:innenerfahrung zu bieten.“

Wann kommt die 1.0-Version von Zig?

Zwar hat es Zig noch nicht zur Version 1.0 geschafft, doch das könnte sich 2025 ändern, wie Kelley in einem Roadmap-Update vor ein paar Monaten bestätigte. Kunst könne man eben nicht hetzen, erklärte er.

Empfohlene redaktionelle Inhalte

Hier findest du externe Inhalte von YouTube Video, die unser redaktionelles Angebot auf t3n.de ergänzen. Mit dem Klick auf "Inhalte anzeigen" erklärst du dich einverstanden, dass wir dir jetzt und in Zukunft Inhalte von YouTube Video auf unseren Seiten anzeigen dürfen. Dabei können personenbezogene Daten an Plattformen von Drittanbietern übermittelt werden.

Hinweis zum Datenschutz

Und mit Kunst lässt sich Zig tatsächlich auch vergleichen, denn wie Jarred Sumner, der Schöpfer von Bun verriet, ähnelt Zig „dem Schreiben von C, aber mit besseren Speichersicherheitsfunktionen im Debug-Modus und modernen Funktionen wie Defer (ähnlich wie bei Go)“. Die Sprache habe nur sehr wenige Schlüsselwörter, daher sei sie viel einfacher zu lernen als C++ oder Rust.

Zig soll die moderne Alternative zu C werden

Damit ist Zig auf dem besten Wege C abzulösen – sowohl als tragbare Low-Level-Sprache als auch als Standard, mit dem andere Sprachen verglichen werden. Derzeit wird Zig verwendet, um die Bun.js-JavaScript-Laufzeit als Alternative zu Node.js zu implementieren.

In vielen anderen Sprachen, wie beispielsweise Python, müssen Daten speziell für die Interoperabilität von C und C++ umgewandelt werden. Zig ist da viel moderner, denn sie kann dank des eingebauten Clang-Compilers Bibliotheken von C und C++ direkt importieren.

Der Compiler kann Header-Dateien für diese Sprache generieren, um umgekehrt in Zig geschriebene Programmteile in C oder C++ verwenden zu können. Die Ausgabe von Zig-Bibliotheken ist eine .o-Datei, die direkt in GCC eingespeist werden kann.

Diese Kernfunktionen hat Zig zu bieten:

  • Kein versteckter Kontrollfluss
  • Keine versteckten Speicherallokationen
  • Kein Präprozessor, keine Makros
  • Erstklassiger Support einer optionalen Standardbibliothek
  • Einstellbare Laufzeitsicherheit
  • Codeausführung zur Compile-Zeit

Zig ist eine imperative, prozedurale, funktionale, objektorientierte, modulare Multi-Paradigmensprache und hilft Programmierer:innen dabei, schnelle und klare Codes zu schreiben, die mit allen Fehlerbedingungen umgehen können. Es ist ein moderner Ansatz zur Metaprogrammierung, basierend auf Compile-Zeit-Ausführung und Lazy-Evaluation.

Zig: Mindestens so effizient und portierbar wie C

Loris Cro, ein Mitglied des Zig-Teams verriet gegenüber Fastly: „Zig hat einen ganz einfachen Zweck: Es soll (mindestens) so effizient und portierbar wie C sein und dabei alle seine Probleme bei der Nutzerfreundlichkeit und seine Einschränkungen umgehen, die den eigenen (und auch den angrenzenden) Ökosystemen von C seit jeher zu schaffen machen.“ Im Gegensatz zu C komme Zig aber ohne Runtime-Umgebung aus.

Empfehlungen der Redaktion

Artikel wechseln

Von den meisten anderen Sprachen unterscheidet sich Zig auch durch ihren geringen Funktionsumfang. Kevin Lynagh, der normalerweise mit Rust arbeitet, schrieb: „Die Sprache ist so klein und konsistent, dass ich nach ein paar Stunden Lernen genug davon in meinen Kopf laden konnte, um meine Arbeit zu erledigen.“

Er konvertierte erst kürzlich seine Tastatur-Firmware von Rust auf Zig und stellte dabei fest, dass es sich um eine Sprache handelt, die er beherrschen könnte.

Entwickler:innen mögen das kleine Featureset

Nathan Craddock, ein C-Entwickler, konnte sich dieser Meinung nur anschließen. Programmierer:innen scheinen vor allem das möglichst kleine Featureset zu mögen, weil sie es vorteilhaft finden, wenn es nur eine offensichtliche Möglichkeit gibt, etwas zu tun.

Die Entwickler:innen von Zig haben sich dieses Ziel so sehr zu Herzen genommen, dass Zig eine Zeit lang auf For-Schleifen verzichtet hat, weil sie als unnötige syntaktische Ausarbeitung der ohnehin schon ausreichenden While-Schleifen betrachtet wurden.

Exceptions werden nicht geworfen, sondern zurückgegeben

Auch das Error-Handling-Konzept ist beeindruckend. Denn Exceptions werden einfach zurückgegeben und nicht geworfen – aus einem einfachen Grund: Geworfene Exceptions werden nämlich oft als versteckter Control-Flow missbraucht.

Auch Zig benötigt eine direkte Möglichkeit, um Speicher zu allokieren. Es gibt aber kein direktes Malloc. Die Speicherzuweisung wird der Standard Library überlassen und erfolgt über eine Anfrage an ein Allocator-Objekt. Versteckte Allokationen sollen damit verhindert werden.

Wer Zig unter die Lupe nehmen möchte: Auf der Homepage von Zig gibt es einen Lernbereich, mit dem jeder, der Lust hat, tiefer in die Materie eintauchen kann.

Sources


Article information

Author: Sheila Salazar

Last Updated: 1704667441

Views: 552

Rating: 4.3 / 5 (62 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Sheila Salazar

Birthday: 1971-02-19

Address: 0186 Morse Falls Apt. 611, Matthewchester, MS 76346

Phone: +3798724345145161

Job: Investment Banker

Hobby: Yoga, Video Editing, Board Games, Playing Chess, Chocolate Making, Motorcycling, Stargazing

Introduction: My name is Sheila Salazar, I am a radiant, Adventurous, apt, intrepid, valuable, dear, capable person who loves writing and wants to share my knowledge and understanding with you.