Targets · Go · Capabilities

Capabilities

Which high-level features a Program can use when it renders to Go — aimed at back-end services and command-line tools rather than rich graphical apps.

Contents

How a Program becomes Go, in parts. Start with the introduction, then follow each part into the rendered output and the runtime it links against.

What Go is good for

Go targets the server and the command line. It has no native graphical toolkit, so the interface is a terminal; everything that suits a back-end — networking, concurrency, files — is built in and strong. The reactive core and the drivers are the same as any target; only the driver set differs.

FeatureStatusHow
User interfaceTerminalThe interface driver renders Ui to a terminal. There is no built-in windowed GUI; a browser front end is better served by JavaScript.
ConsoleBuilt inConsole maps straight to fmt / os.Stdout.
NetworkingBuilt inNetwork uses net/http and gorilla/websocket or the standard library.
AsynchronyBuilt inA LOCKED state models an in-flight value; a driver on a goroutine completes it and re-enters the cycle.
ConcurrencyBuilt inGoroutines and channels are first-class; a driver runs its work on its own goroutine and feeds results back through the update callback.
Storage & filesBuilt inStorage maps to the os package — full filesystem access.
Animation / graphicsNot nativeNo rendering surface on the server; time-based effects are limited to what a terminal can show.

Where a capability needs host code it arrives as a NATIVE Go function (needing a go body) or a driver — see native modules and drivers.