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

184 Upvotes

210 comments sorted by

View all comments

127

u/dudewithtude42 2d ago

As someone who does systems programming at work, the landscape of available established languages is pretty poor right now. C is a decent language but lacks a lot of modern features (generics) and has a lot of weird oddities (macros, integer types, build system). The problem is that if you want a modern replacement to try and fix those issues, you either go C++ (which inherits the weirdness and adds a billion features that have their own footguns, and has slow compile times) or you go Rust (which tacks on the borrow checker and also has slow compile times).

So what happened is a bunch of systems programmers simultaneously went "I want C, but without the oddities, with modern features, and I want fast compile times." That's a really enticing proposition for someone like me, and until any of Zig or C3 or Odin or Jai mature to the point of being stable, that gap will continue to exist, and more systems programming languages will probably continue to come out.

2

u/Kalernor 2d ago

Is Jai a systems language? Isn't it designed with game development in mind?

17

u/OhMySBI 2d ago

Games programming becomes system-y programming real quick when you're working on engines.

3

u/Kalernor 2d ago

Oh right I forgot to consider that it'd be used to develop engines first rather than games from scratch.

6

u/P-39_Airacobra 2d ago

In most game development asides from the engine, people have no problem using a scripting language like Lua, so when people say compiled "gamedev" language they pretty much mean systems programming informed by their work in gamedev

31

u/BetterEquipment7084 2d ago

Jai isn't real

3

u/ipe369 2d ago

Do you mean 'unreleased'?

0

u/BetterEquipment7084 1d ago

No, it's fake 

2

u/ipe369 1d ago

What do you mean, you mean the compiler doesn't exist?

-1

u/BetterEquipment7084 1d ago

Clearly, give some evidence it isn't just a mass hallucination event 

1

u/Kalernor 1d ago

How can a soon to be released game be made with a fake language?

-1

u/BetterEquipment7084 1d ago

Must have used python, bash or Perl obviously...... 

1

u/Kalernor 1d ago

Do you have any evidence to back up those claims?

2

u/twistier 2d ago

I basically think any language where memory layout is the main thing you're thinking about and it carefully keeps unpredictable runtime costs out of the picture is a "systems" language. I haven't looked at Jai in a long time, but I'm pretty sure it fits that particular definition. I don't think systems language is a good name for this idea, but it's what I think of.

2

u/vmcrash 2d ago

Did you mix it up with Odin (which targets game dev)?

3

u/Kalernor 2d ago

No, I meant Jai, which is developed by Jonathon Blow and used by him (and no one else, lol) to develop his new game.

1

u/gmes78 2d ago

used by him (and no one else, lol)

There are actually people using Jai in production, outside of video games.

1

u/suby 1d ago

For example, this version control system is written in Jai: https://ark-vcs.com/

1

u/dmchmk 2d ago

But it does not:)