Field Guide · language

Also known as: Go, Golang

Go (often called Golang after its website) is a statically typed, compiled programming language created at Google for building simple, reliable, and efficient systems software.1 GopherTrunk itself is written in Go.

.go files build staticbinary goroutine goroutine goroutine channel
Go compiles ahead of time into one self-contained binary that runs many lightweight goroutines communicating over channels.

Overview

Go pairs the performance of a compiled language with the simplicity of a deliberately small syntax.2 Programs build ahead of time into a single static binary with no runtime dependency, which you can drop onto any matching machine and run. That same toolchain makes cross-compilation — building a Windows or macOS binary from a Linux host — a one-line affair.

Key characteristics

Go’s headline feature is first-class concurrency: cheap goroutines and channels make concurrent stream processing natural.3 It is garbage-collected, so there is no manual memory management, and it has a static type system with inference that keeps code terse. The trade-offs are real — the garbage collector introduces brief pauses, raw numeric throughput trails C and Rust, and the minimalist design (generics arrived only in 2022) can feel limiting.

Why GopherTrunk uses it

A self-contained static binary ships effortlessly to Linux, macOS, and Windows with no installer or shared libraries, and goroutines map cleanly onto the many concurrent decode pipelines an SDR scanner runs at once — making Go a strong fit for infrastructure, network services, CLIs, and stream engines like this one.

Sources

  1. Go (programming language) — Wikipedia, for history and design background. 

  2. The Go Programming Language Specification — the authoritative definition of the language and its type system. 

  3. The Go programming language — official site, documentation, and the goroutine/channel concurrency model. 

See also