Go uses a runtime and garbage-collection system to reduce the day-to-day burden of memory management compared with C, where memory is intentionally managed without a garbage collector. section 1.3.1
This model suits systems, server, and cloud applications, but Go’s runtime and garbage collector are a poor fit for embedded systems with limited resources. section 1.3
Comparable memory-management approaches include:
- Rust uses a borrow checker for more granular control over variable and data lifetimes. section 1.3.2
- Zig provides no garbage collection by default and uses smart pointers for memory safety. section 1.3.2
- C exposes risks including memory leaks and buffer overflows when memory is managed manually. section 1.3.1


