Files
chemenu/kb/entities/technologies/Go.md
T
torben 18ae28f918
CI / verify (push) Failing after 32s
Release / release (push) Successful in 38s
Chemenu 2.1.0 - deterministischer Wissenskompiler
Chemenu kompiliert Rohnotizen zu einem verlinkten, quellengebundenen Wiki:
raw/ -> types/ + tools/ -> kb/ -> reports/. Was mechanisch ist, macht
tools/wikitool; was Urteil braucht, macht ein Agent unter Contracts, deren
Grenzen in Code durchgesetzt sind statt im Prompt.

Dieser Commit ist der Startpunkt der oeffentlichen Historie. Die vorherige
Entwicklung fand in einer privaten Instanz statt und ist nicht Teil dieses
Repositorys; ihre Erzaehlung steht vollstaendig in CHANGES.md, das mit 44
Eintraegen von 0.1.0 bis 2.1.0 erhalten geblieben ist.

Der mitgelieferte Korpus ist ein Testbett und eine Demo: 170 Seiten ueber den
Stack selbst - Gates, Lint, Versionierung, Suche, das Wiki-Muster. Er
dokumentiert das Werkzeug mit den eigenen Mitteln des Werkzeugs.

Lizenz: AGPL-3.0 fuer den Stack (tools/, types/), CC-BY-4.0 fuer die Inhalte.
Die Grenze zwischen beiden ist der Dateiplan, den dist export berechnet -
siehe NOTICE.
2026-09-01 16:26:14 +02:00

4.3 KiB

type, entity_type, tags, created, modified, related, sources, confidence, confidence_base, provenance, summary
type entity_type tags created modified related sources confidence confidence_base provenance summary
types/entity.md technology
programming-language
compiled
backend
systems
2026-07-25 2026-08-29
ha-core
gdeploy
plugnburn-edl
BCDModule
goresponsiveness
hacs-e3dc
0.95 0.95 general Quelloffene Programmiersprache von Google für Systemprogrammierung und Backend-Dienste, mit eingebauter Nebenläufigkeit über Goroutines und Channels.

Go

Typ: Technology (Programming Language)

Beschreibung

Go (häufig als Golang bezeichnet) ist eine Open-Source-, statisch typisierte, kompilierte Programmiersprache, die von Google entwickelt wurde. Sie ist für die Erstellung einfacher, schneller und zuverlässiger Software konzipiert.

Go ist besonders gut geeignet für Systemprogrammierung, Backend-Services und nebenläufige Anwendungen aufgrund seiner integrierten Unterstützung für Nebenläufigkeit (Goroutines und Channels), schnelle Kompilierung und effiziente Laufzeit.

Kerndaten

  • Typ: Programmiersprache
  • Paradigma: Prozedural, nebenläufig
  • Erste Erscheinung: 2009
  • Entworfen von: Robert Griesemer, Rob Pike, Ken Thompson bei Google
  • Lizenz: BSD-ähnlich
  • Website: https://golang.org
  • Aktuelle stabile Version: 1.22+ (Stand 2026)

Beziehungen

Schlüsselfunktionen

Sprachfunktionen

  • Statische Typisierung - Typsicherheit mit Typinferenz
  • Nebenläufigkeit - Goroutines (leichte Threads) und Channels
  • Garbage Collection - Automatische Speicherverwaltung
  • Interfaces - Implizite Implementierung (Duck Typing)
  • Pakete - Modulare Organisation
  • Tooling - Built-in Build-, Test-, Format- und Dokumentations-Tools

Leistung

  • Schnelle Kompilierung
  • Effiziente Ausführung (native Binärdateien)
  • Niedrige Latenz
  • Gut für CPU-intensive und I/O-intensive Aufgaben

Ökosystem

  • Pakerverwaltung: Go Modules (seit Go 1.11)
  • Standardbibliothek: Umfangreich und gut konzipiert
  • Pakete von Drittanbietern: Wachsendes Ökosystem auf pkg.go.dev

Anwendungsfälle

Basierend auf der Repository-Struktur wird Go verwendet für:

  1. Hausautomation - ha-core
  2. Deployment-Tools - gdeploy
  3. EDL-bezogene Tools - plugnburn-edl, andybalholm-edl
  4. Modulsysteme - BCDModule
  5. Performance-Testing - goresponsiveness

Vor- und Nachteile

Vorteile

  • Schnelle Kompilierung und Ausführung
  • Exzellente Standardbibliothek
  • Integrierte Unterstützung für Nebenläufigkeit
  • Einfache Syntax
  • Starkes Tooling-Ökosystem
  • Plattformübergreifende Kompilierung
  • Gut für Microservices und CLI-Tools

Nachteile

  • Weniger flexibel als dynamisch typisierte Sprachen
  • Keine Generics (bis Go 1.18)
  • Error Handling kann verbose sein
  • Begrenzte Meta-Programmierungsfunktionen

Lernressourcen

Toolchain

  • go build - Pakete und Abhängigkeiten kompilieren
  • go test - Tests ausführen
  • go fmt - Code formatieren
  • go mod - Modul-Verwaltung
  • go doc - Dokumentation
  • go run - Kompilieren und ausführen
  • godep - Abhängigkeits-Tool (älter)

Best Practices

  1. Formatierung: Immer go fmt verwenden
  2. Testen: Tests mit dem Testing-Paket schreiben
  3. Error Handling: Explizite Fehlerprüfung
  4. Nebenläufigkeit: Channels für Kommunikation verwenden
  5. Interfaces: Kleine, fokussierte Interfaces entwerfen

Historie

  • [2009] - Erste öffentliche Veröffentlichung
  • [2012] - Go 1.0 veröffentlicht
  • [2015] - Go 1.5 mit Self-Hosting-Compiler
  • [2018] - Go 1.11 mit Modulen
  • [2020] - Go 1.15 mit verbessertem Linker
  • [2022] - Go 1.18 mit Generics
  • [2026-07-25] - Entity-Seite erstellt

Siehe auch

  • ha-core - Verwendet Go für E3DC-Integration
  • gdeploy - Go-basiertes Deployment-Tool
  • Rust - Alternative Systemsprache
  • Python - Alternative Skriptsprache
  • Systems Programming concept