Files
chemenu/kb/entities/technologies/Go.md
T
torben b137359b90 feat: Link-Taxonomie u1 - kb/entities/systems, tools, technologies gelabelt
Files changed:
- kb/concepts/Denylist over Allowlist.md
- kb/concepts/LLM Wiki Pattern.md
- kb/concepts/SSD TRIM.md
- kb/entities/people/E3DC GmbH.md
- kb/entities/people/Vannevar Bush.md
- kb/entities/projects/ha-core.md
- kb/entities/projects/hacs-integration-blueprint.md
- kb/entities/systems/AGENTS.md.md
- kb/entities/systems/CLAUDE.md.md
- kb/entities/systems/E3DC.md
- kb/entities/systems/ENVIRONMENT.md.md
- kb/entities/systems/Memex.md
- kb/entities/systems/Tolkien Gateway.md
- kb/entities/technologies/Arch Linux.md
- kb/entities/technologies/Disk Encryption.md
- kb/entities/technologies/Docker.md
- kb/entities/technologies/Gitea Actions.md
- kb/entities/technologies/Gitea.md
- kb/entities/technologies/Go.md
- kb/entities/technologies/Home Assistant.md
- kb/entities/technologies/Kernel PM Governors.md
- kb/entities/technologies/LVM.md
- kb/entities/technologies/Linux Kernel.md
- kb/entities/technologies/MQTT.md
- kb/entities/technologies/OPC UA.md
- kb/entities/technologies/Python.md
- kb/entities/technologies/Rust.md
- kb/entities/technologies/Wine GE.md
- kb/entities/technologies/Wine-Staging.md
- kb/entities/technologies/acpi-cpufreq.md
- kb/entities/technologies/amd-pstate.md
- kb/entities/technologies/iii Engine.md
- kb/entities/tools/AUR.md
- kb/entities/tools/Act Runner.md
- kb/entities/tools/Agent Memory.md
- kb/entities/tools/Aura.md
- kb/entities/tools/Bottles.md
- kb/entities/tools/ChatGPT.md
- kb/entities/tools/Claude Code.md
- kb/entities/tools/Codex CLI.md
- kb/entities/tools/Dataview.md
- kb/entities/tools/GPG.md
- kb/entities/tools/GitHub Copilot.md
- kb/entities/tools/Gitea MCP Server.md
- kb/entities/tools/Lutris.md
- kb/entities/tools/Marp.md
- kb/entities/tools/Mistral Vibe.md
- kb/entities/tools/NotebookLM.md
- kb/entities/tools/Obsidian Web Clipper.md
- kb/entities/tools/Obsidian.md
- kb/entities/tools/OpenAI Codex.md
- kb/entities/tools/OpenCode.md
- kb/entities/tools/Pi.md
- kb/entities/tools/Proton.md
- kb/entities/tools/Wine.md
- kb/entities/tools/awesome-llm-wiki.md
- kb/entities/tools/farzaa gist.md
- kb/entities/tools/gdeploy.md
- kb/entities/tools/makepkg.md
- kb/entities/tools/pascalandy schema.md
- kb/entities/tools/qmd.md
- kb/entities/tools/wikitool.md
- kb/log.md
- work/link-taxonomy-migration/glossary.md
2026-09-02 19:36:04 +02:00

153 lines
4.6 KiB
Markdown

---
type: types/entity.md
entity_type: technology
tags: [programming-language, compiled, backend, systems]
created: 2026-07-25
modified: 2026-08-29
related:
- required-by: ha-core
- required-by: gdeploy
- required-by: plugnburn-edl
- required-by: BCDModule
- required-by: goresponsiveness
- required-by: hacs-e3dc
sources: []
confidence: 0.95
confidence_base: 0.95
provenance: general
summary: 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
- **Verwendet von:** [[ha-core]], [[gdeploy]], [[plugnburn-edl]], [[BCDModule]], [[goresponsiveness]], [[hacs-e3dc]]
- **Konkurriert mit:** Rust, Java, C++, Python (für Backend)
- **Beeinflusst von:** C, Pascal, Oberon
- **Beeinflusst:** Viele moderne Sprachen
## 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]]
6. **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
- **Offiziell:** https://golang.org/doc
- **Tour:** https://go.dev/tour/
- **Effective Go:** https://go.dev/doc/effective_go
- **Blog:** https://go.dev/blog/
## 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
- Alternative Systemsprache
- Alternative Skriptsprache
- Systems Programming concept
<!-- wikitool:links -->
## Beziehungen
- **required-by:** [[ha-core]]
- **required-by:** [[gdeploy]]
- **required-by:** [[plugnburn-edl]]
- **required-by:** [[BCDModule]]
- **required-by:** [[goresponsiveness]]
- **required-by:** [[hacs-e3dc]]
<!-- /wikitool:links -->