Go: Die Waffe der plattformübergreifenden Entwicklung, die Sie nicht geschätzt haben

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Go: Vergessen Sie "Bei mir läuft's" und erobern Sie die Welt

\n\n

Haben Sie jemals ein cooles Python-Skript geschrieben, es einem Freund unter Windows geschickt, und er antwortet: "Es startet nicht, irgendein Python ist nicht installiert"? Kommt Ihnen bekannt vor? Willkommen in der Hölle der Abhängigkeiten, virtuellen Umgebungen und Interpreter-Versionen. Stellen Sie sich nun vor: Sie schreiben den Code einmal, drücken einen Knopf – und erhalten eine Binärdatei, die unter Windows, Linux und macOS ohne Installation von irgendetwas läuft. Ohne Python, ohne Node, ohne JVM.

\n\n

Das ist keine Fantasie. Das ist plattformübergreifende Entwicklung mit Go – einer Sprache, die genau dafür entwickelt wurde, diese Probleme zu lösen. Wenn Sie in Python schreiben und die ewigen Tänze um Abhängigkeiten leid sind, oder wenn Sie einfach ein Werkzeug für schnelle und portable Dienstprogramme suchen – Go wird Ihr neuer bester Freund. In diesem Artikel schweifen wir nicht ab. Wir behandeln echte Beispiele, zeigen Code und erklären, wie Sie Ihr Programm überall dort zum Laufen bringen, wo es einen Prozessor gibt.

\n\n

Warum ist Go die ideale Wahl für Plattformunabhängigkeit?

\n\n

In der Welt der Golang Plattformunabhängigkeit ist dies keine Funktion, sondern ein Fundament. Im Gegensatz zu Python, das einen Interpreter benötigt, oder Java, das eine virtuelle Maschine braucht, wird Go in nativen Maschinencode kompiliert. Das bedeutet, dass Ihre Binärdatei alles enthält, was zum Ausführen benötigt wird: Laufzeit, Garbage Collector und Ihren Code. Keine externen Bibliotheken, kein "pip install". Herunterladen und ausführen.

\n\n

Aber das Wichtigste ist die Go Cross-Kompilierung. Sie sitzen an einem MacBook, schreiben Code und erstellen dann mit einem einzigen Befehl eine ausführbare Datei für Windows, Linux, Raspberry Pi (ARM) oder sogar für ein altes FreeBSD. Sie benötigen keine virtuelle Maschine oder Docker für den Build. Eine Umgebungsvariable – und schon ist es fertig.

\n\n

Für einen Python-Entwickler klingt das wie Magie, aber es ist einfach Go. Kommen wir zur Praxis.

\n\n

Ein plattformübergreifendes Dienstprogramm in Go schreiben

\n\n

Stellen wir uns vor, wir müssen ein einfaches, aber nützliches Programm schreiben: Es sammelt Systeminformationen (Betriebssystem, Architektur, Hostname) und speichert sie in einer JSON-Datei. Dies ist eine klassische Aufgabe für DevOps oder Systemadministratoren. In Python würden Sie platform und json heranziehen, aber in Go sieht das noch eleganter aus.

\n\n

Schritt 1: Struktur und Import

\n\n

Erstellen Sie eine Datei main.go. Als Erstes definieren wir die Datenstruktur und verwenden die Pakete runtime und os, um Systeminformationen zu erhalten. Beachten Sie: runtime.GOOS und runtime.GOARCH sind eingebaute Konstanten, die Go bereits zur Kompilierzeit kennt.

\n\n
package main\n\nimport (\n    "encoding/json"\n    "fmt"\n    "os"\n    "runtime"\n)\n\ntype SystemInfo struct {\n    OS         string `json:"os"`\n    Arch       string `json:"arch"`\n    Hostname   string `json:"hostname"`\n    GoVersion  string `json:"go_version"`\n}
\n\n

Schritt 2: Informationen sammeln

\n\n

Jetzt schreiben wir eine Funktion, die die Daten sammelt. Wir verwenden os.Hostname() – sie ist plattformübergreifend und funktioniert auf allen Systemen.

\n\n
func getSystemInfo() (SystemInfo, error) {\n    hostname, err := os.Hostname()\n    if err != nil {\n        return SystemInfo{}, fmt.Errorf("Fehler beim Abrufen des Hostnamens: %w", err)\n    }\n\n    return SystemInfo{\n        OS:        runtime.GOOS,\n        Arch:      runtime.GOARCH,\n        Hostname:  hostname,\n        GoVersion: runtime.Version(),\n    }, nil\n}
\n\n

Schritt 3: In JSON schreiben

\n\n

Schließen wir unser Programm ab: Informationen abrufen, in JSON kodieren und in eine Datei schreiben. Wir fügen auch eine Fehlerbehandlung hinzu – das ist ein guter Stil in der plattformübergreifenden Entwicklung mit Go, da sich Dateipfade in verschiedenen Betriebssystemen unterscheiden.

\n\n
func main() {\n    info, err := getSystemInfo()\n    if err != nil {\n        fmt.Printf("Fehler: %v\\n", err)\n        os.Exit(1)\n    }\n\n                

Blogs

Buchempfehlungen