Is Go a Systems Programming Language?

With automatic garbage collection, is Go really suitable as a systems programming language?

Erik Engheim
4 min readFeb 22, 2021

A topic that arises from time to time is whether Go is a systems programming language. The creators of Go have characterized it as such but many object to that label.

With automatic garbage collection, it does not seem to fit the bill. You would not, for example, want to write an operating system kernel with a language using a garbage collector.

However, it helps to clarify by looking at Wikipedia’s definition of systems programming:

Systems programming, or system programming, is the activity of programming computer system software.

The primary distinguishing characteristic of systems programming when compared to application programming is that application programming aims to produce software which provides services to the user directly (e.g. word processor),

whereas systems programming aims to produce software and software platforms which provide services to other software, are performance constrained, or both (e.g. operating systems, computational science applications, game engines, industrial automation, and software as a service applications).



Erik Engheim

Geek dad, living in Oslo, Norway with passion for UX, Julia programming, science, teaching, reading and writing.