Go ist eine gute Skriptsprache
Last Update: 2025-05-11
TLDR: Go ist eine gute Skriptsprache, wenn du mehr als eine Shell-Sprache benötigst.
Ich musste kürzlich einen Dockerfile-Generator schreiben für das Zwischenspeichern automatischer Test-Läufe und die inkrementelle Zwischenspeicherung des Builds ohne einen tatsächlichen inkrementellen Build in CICD.
Zuvor war dieser Generator in Bash und PowerShell geschrieben.
Benötigte Features für die gewählte Sprache waren:
- einfaches XML/allgemeines Datei-Parsing ohne externe Pakete
- nicht langsam
- schneller Start
- kann einfach mit minimalem Aufwand ausgeführt werden
Die folgenden Sprachen/Laufzeiten standen für diese Aufgabe zur Auswahl:
- Deno (TypeScript/JavaScript-Runtime)
- Go
- Lua
- Nushell
- Python
Deno, Lua und Python benötigen externe Pakete für das Parsen von XML-Dateien. Deno wäre einfacher, weil externe Abhängigkeiten einfach mit nur einer URL importiert werden können. Nushell hat Probleme beim Parsen bestimmter XML-Dateien. Go hingegen hat XML-Parsing eingebaut.
Go ist auch einfach mit go run main.go
ausführbar, benötigt keine Hilfsdateien (wie packages.json
bei npm), kann aber auch kompiliert und zwischengespeichert werden. Außerdem ist Go trivial multi-threaded, was ein großes Problem in vielen interpretierten Sprachen ist.