Search code examples
programming-languagesgo

What does it mean by a 'systems language'?


The Go talk 2009 pdf has a comment to explain why they came up with the go language :

No new major systems language in a decade.

What's the meaning of systems language?

  • Is it a language that is supposed to run on target system by generating native binary?
  • Is it a language that can build operating system on its own?

I can see C#/Java is `not' a systems language, and C/C++ is.


Solution

  • It's a rough, informal distinction, but the idea is that there are "application programming languages," targeted at programmers who develop shrinkwrapped business applications, and "systems programming languages," targeted at programmers who program tools for other programmers (compilers, etc.) and low-level software such as OS kernels, device drivers, etc.

    In short, most (recently-invented, anyway) languages are designed to make it easier to develop user-facing software for dealing with some non-computing domain---finance, engineering, etc. Systems programming languages are those, such as C, FORTH, Go, etc. which are intended or at least suitable for programming in the domain of computing.

    These often, but do not always, feature compilation to native code, loose type systems which permit extensive "punning," and unmanaged memory access through pointers or an equivalent construct.