Does Go work well as a systems language?

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/golang

Our great sponsors
  • CodiumAI - TestGPT | Generating meaningful tests for busy devs
  • ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
  • InfluxDB - Access the most powerful time series database as a service
  • SonarQube - Static code analysis for 29 languages.
  • PyO3

    Rust bindings for the Python interpreter

    Rust has a few places I’d reach for it first, like writing shared libraries to load into other programs. Eg, a plug-in for PAM on Linux. Kernel modules, apache or nginx modules, etc. Also since you know Python, you might be interested in writing python extensions, which Rust is good for by way of the https://pyo3.rs/ project.

  • tamago

    TamaGo - ARM/RISC-V bare metal Go

  • CodiumAI

    TestGPT | Generating meaningful tests for busy devs. Get non-trivial tests (and trivial, too!) suggested right inside your IDE, so you can code smart, create more value, and stay confident when you push.

  • cockroach

    CockroachDB - the open source, cloud-native distributed SQL database.

    You absolutely can write very high performance software in Go, that's kind of the point. You can efficiently interface with C libraries. You can create the sort of software everyone says should be done in Rust, like databases and web servers and system orchestration and games and every other goddamn thing that people will say isn't the right choice for Go.

  • TinyGo

    Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.

    The large runtime is easy to discuss, quite simply your binaries tend to be larger in Go (which is statically linked) than in C (which generally defaults to dynamically linked, and your libraries are shared with other software as well. On normal systems, even small ones like a Pi, this isn't a practical issue, because it's not really that big anyway. Where this really means something is in the embedded space, where your storage and memory are measured in kilobytes rather than megabytes. There are projects to make Go smaller, and you can save some space using gccgo with dynamic linking, so the size factor is becoming less of an issue.

  • kubernetes

    Production-Grade Container Scheduling and Management

    You absolutely can write very high performance software in Go, that's kind of the point. You can efficiently interface with C libraries. You can create the sort of software everyone says should be done in Rust, like databases and web servers and system orchestration and games and every other goddamn thing that people will say isn't the right choice for Go.

  • Caddy

    Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

    You absolutely can write very high performance software in Go, that's kind of the point. You can efficiently interface with C libraries. You can create the sort of software everyone says should be done in Rust, like databases and web servers and system orchestration and games and every other goddamn thing that people will say isn't the right choice for Go.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts