The term “Systems” language is a bit useless.

Written by: Robert R. Russell on Monday, February 5, 2024.

This post was prompted by a discussion about including Rust in the FreeBSD base system.

I don’t think the term systems language is as usefull now as it was several years ago.


What is a system?

That question has several answers. Possible answers include:

System’s have different requirements.

Not all of these programs interact with each other or the operating system in the same way or necessarily have the same requirements. For example changing a users password on UNIX systems can generally be done without direct system calls, but forcing the kernel to reload its active partition tables generally does. So the requirements for the programming languages we might use to implement those two tasks can vary.

In those two examples Perl is an adequate tool for user management and has been used so historically. I don’t know of any disk partitioning software written in Perl.

Kernels and System Libraries

In my and probably a lot of other people’s minds this is what the term systems programming language has meant. It is a programming language you use to write the most basic parts of an operating system in.

Kernels require:

System libraries require:

Management utilities and such.


I suggest using the requirements needed from the programming language instead of more general terms like “scripting” language or “systems” language.

©2024 Robert R. Russell — All rights reserved