Does Go work well as a systems language?

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

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • 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

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • 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