Our great sponsors
-
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.
-
TinyGo
Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
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.
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.
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.
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.
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.