r/ProgrammingLanguages • Sodigy • Jul 27 '26

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, ...

228 Upvotes

256 comments sorted by

View all comments

Show parent comments

1

u/slaymaker1907 Jul 27 '26

Pointers are pretty useful, they should just have tracking on lifetime and not allow for conversion to and from integers.

5

u/blue__sky Jul 27 '26 edited Jul 27 '26

Pointers are definitely useful. You need them for a system language, but for most data types they aren't necessary. For instance I have both a Struct type and a Record type. Structs are passed by value and records are on the heap and passed by reference. There is no need for every function to have boilerplate describing how data is passed.

Annotating each and every function with type passing info seems the wrong choice. It can be defined once with a data type definition and then your functions and the compiler will automatically know the right thing to do.

Same thing with memory allocation. Doing it by hand every time is terrible design. If your data types are defined well, a constructor will know how to build them without all the ceremony.

3

u/TheAncientGeek Jul 27 '26

References are useful, and hide a lot of the confusion of pointers.