Kurz: Einfach, explizit und nah an der Maschine.
Genauer: Zig wird eingesetzt für Systemprogrammierung, Spieleentwicklung, eingebettete Systeme, C-Interop und Build-Werkzeuge. Zig (Andrew Kelley, 2016) ist eine Systemprogrammiersprache als moderner Ersatz für C: ohne versteckte Kontrolle, ohne versteckte Speicherallokation, ohne Präprozessor und Makros. Das Motto: “Was du siehst, passiert.” Zig ist klein (eine Spezifikation, die man an einem Nachmittag liest), bietet aber mächtige Werkzeuge:
Steckbrief
| Eigenschaft | Wert |
|---|---|
| Erschienen | 2016 |
| Entwickelt von | Andrew Kelley |
| Paradigmen | imperativ, systemnah |
| Typisierung | statisch |
| Ausführung | kompiliert zu Maschinencode |
| Paketverwaltung | build.zig / zon |
| Dateiendung | .zig |
| Sprachfamilie | Moderne Systemsprachen |
Einsatzgebiete
Systemprogrammierung, Spieleentwicklung, eingebettete Systeme, C-Interop und Build-Werkzeuge.
So führst du Code aus
Datei hallo.zig speichern und mit zig run hallo.zig ausführen (Zig von ziglang.org).
Das erste Programm
const std = @import("std");
pub fn main() !void {
const out = std.io.getStdOut().writer();
try out.print("Hallo, {s}!\n", .{"Zig"});
try out.print("2 + 3 = {d}\n", .{2 + 3});
try out.writeAll("Zeile ohne Format\n");
}Ausgabe:
Hallo, Zig!
2 + 3 = 5
Zeile ohne FormatDer Kurs: 8 Kapitel
Jedes Kapitel enthält geprüfte Beispiele mit echter Ausgabe, Merksätze, eine Übungsaufgabe und ein Quiz. Zum Üben mit Fortschrittsanzeige, Abzeichen und Zertifikat: Zig-Kurs auf der Lernseite.
Kapitel
- Einführung und erstes Programm
- Variablen, Typen und Kontrollfluss
- Structs, Enums, Unions und Speicherverwaltung
Daten
Robuster Code
Fortgeschritten
Praxis
Nachschlagen
Ähnliche Sprachen
- C: Nah an der Hardware: schnell, klein, die Grundlage vieler Systeme
- Rust: Schnell wie C, aber speichersicher dank Ownership
- Go: Einfach, schnell und perfekt für Server und Cloud
Siehe auch
Programmiersprachen im Überblick, Sprachen im Vergleich, Zeitstrahl der Programmiersprachen, Programmierparadigmen, Kompiliert oder interpretiert?