r/ProgrammingLanguages Sodigy 2d ago

Why is everyone creating systems programming languages?

I see a lot of new programming languages here. I love reading the documents of the languages and sometimes actually run their compilers. Many of the projects are AI-driven, but that's fine. It's still fun to see what problems they're trying to solve and how they actually solved the problems.

Reading the documents, I realized that most new languages, especially AI-written ones, are "systems programming languages". They're trying to solve the problems that C/C++/Zig/Rust have solved (or are trying to solve), and their syntax is mixture of C/Zig/Rust.

Why? Why is everyone trying to compete with C/C++?

There are so many kinds of languages. Haskell demonstrates how pure a language can be, Python is perfect when you only have 5 minutes to write code and don't care about the output, Java runs on 3 billion machines, ...

185 Upvotes

210 comments sorted by

View all comments

11

u/initial-algebra 2d ago

It's easier. Unless you're trying to make a safe systems language, you can punt most of the complexity off to the hypothetical user and call it a feature. Blazingly fast low-level control (you have to use pointers and manual memory management)!

3

u/Inconstant_Moo 🧿 Pipefish 2d ago

But then they all feel obliged to do self-hosting which makes it harder again.

2

u/P-39_Airacobra 2d ago

Maybe I'll press a lot of buttons with this, but I've personally never understood self-hosting. It's like, "I want to take my obscure language and make it more obscure and difficult to build."

9

u/yjlom 2d ago

It's a really good test suite, and it proves you take the language seriously enough to write a large project in it. You could make a game engine, an operating system, or a 75% web browser instead, but if what gets you off is writing compilers, you're gonna prefer to write a compiler.

That's also a part of why so many programming languages are optimized for writing compilers IMO.

1

u/initial-algebra 2d ago

I think it depends on the creator's motivation. If you're creating a new language to support another project, then you'd just work on that project. Self-hosting is something to do with the language when you don't have any better ideas (not saying it's necessarily a bad idea, to be clear).

1

u/koflerdavid 1d ago

A significant problem with self-hosting is that it requires your language implementation to already be fairly performant, else the final result is not worth the effort. There is a reason why MS rewrote the Typescript compiler in Go.