85

The topic of the Rust experiment was just discussed at the annual Maintainers Summit. The consensus among the assembled developers is that Rust in the kernel is no longer experimental — it is now a core part of the kernel and is here to stay. So the "experimental" tag will be coming off. Congratulations are in order for all of the Rust for Linux team.

you are viewing a single comment's thread
view the rest of the comments
[-] Buffalox@lemmy.world 3 points 2 hours ago

I would have guessed that mixing different programming languages would cause problems. But apparently it's working well.
It's been 20 years since I did any serious programming, so I'm a bit rusty, is that what Rust is for?

[-] victorz@lemmy.world 1 points 6 minutes ago

What have you been doing since you stopped programming?

Alternatively, why did you stop (seriously) programming?

[-] TriangleSpecialist@lemmy.world 16 points 1 hour ago* (last edited 1 hour ago)

No, Rust is to make you feel like you haven't programmed seriously in 20 years when you first pick it up, even though you are actively doing it.

Before the angry rust "mob" comes to get me: this is a joke. I tried Rust out of genuine curiosity, cobbled together a silly little thing, and quite liked it. The borrow checker made me feel like a total beginner again, in some aspects, and it was great to get that feeling again.

Ultimately it does not fit my needs, but there are a few features I am pretty envious of. I can totally see why it's getting such a following, and I hope it keeps growing.

[-] Buffalox@lemmy.world 5 points 1 hour ago

Thanks, I might take a look at it just for fun. 😀

[-] TriangleSpecialist@lemmy.world 7 points 1 hour ago* (last edited 1 hour ago)

Enjoy! I don't know what you used to seriously program on but I am willing to bet that the ownership paradigm that it enforces is going to feel at least moderately new to you, unless you forced yourself to code that way anyways.

Plus, as long as you're doing silly little home projects, the compiler errors are the absolute best I've ever seen. Literally just learn basic syntax, try it out, and when it does not compile, the compiler not only tells you why but also what it thinks you're trying to do and how to fix.

Absolute gem of a learning tool.

[-] HaraldvonBlauzahn@feddit.org 5 points 47 minutes ago* (last edited 34 minutes ago)

Enjoy! I don't know what you used to seriously program on but I am willing to bet that the ownership paradigm that it enforces is going to feel at least moderately new to you, unless you forced yourself to code that way anyways.

Thinking about ownership is the right way e.g. for C++ as well, so if one has coded professionally in larger systems, it should not be too alien.

One still needs to learn life time annotations. So, assuming that you know, for example, C++, it is an a bit larger hurdle than picking up Java or Go, but it is worth the time.

In many aspects, Rust is far more productive and also more beginner-friendly than C++:

  • far better compiler error messages
  • a superb and easy-to-use packaging system
  • Unicode support
  • support for unit testing right in the language
  • strong support for a side-effect-free or "functional programming" style which is great for testing and tasks like data analysis or parsing
  • better modularization
  • avoids implementation inheritance, and the trait system is a bit different but superb
  • no undefined behavior (in safe Rust) which means nothing less than that the code does what it says - and this is extremely useful in larger projects
  • great support for safe concurrency
  • the language and library frees one to think about interfaces and algorithms which is where the big wins for performance are hidden (and IMO one of the key factors for the astounding success of Python).

I could go on... but I need to do other stuff

[-] TriangleSpecialist@lemmy.world 2 points 34 minutes ago* (last edited 21 minutes ago)

Thanks for the detailed answer. Preaching to the choir.

The existence of the concept of ownership in languages like C++ is why I threw "moderately" in there. I agree depending on what you take that to mean, it may or may not do some heavy lifting.

For the rest, I'd divide it into hard facts (compiler messages are absolutely undeniable, in any circumstance) and things that can definitely be true depending on your personal use cases. I'm with you on this: for the vast vast majority of tasks commonly understood as software engineering, memory safety is a concern, and a lot, if not all, of your points, are valid.

I must humbly insist that it does not fit my needs, in the sense that memory safety is of no concern to me, and that the restrictions that a compiler-enforced approach imposes make me less productive, and, subjectively, also less enjoyable because causing more friction.

That being said, you may also not consider what I'm currently doing to be software engineering, and that's totally fine. Then we'd agree entirely.

EDIT: also, there are very few languages less productive and beginner-friendly than C++ in my opinion. The proverbial bar is in hell. But you are talking to an unreasonable C++ hater.

[-] Buffalox@lemmy.world 3 points 1 hour ago* (last edited 1 hour ago)

I am willing to bet that the ownership paradigm that it enforces is going to feel at least moderately new to you

Absolutely, I am more used to program closer to the iron mostly C. My favorite was 68000 Assembly, python is nice, but I prefer compiled languages for efficiency. Although that efficiency isn't relevant for basic tasks anymore.

The compiler error messages sound extremely cool. 👍

[-] TriangleSpecialist@lemmy.world 3 points 1 hour ago

Ah, a fellow C coder. Never did do assembly with chips older than x86_64 basically. The only old school stuff I touched was writing an interpreter for the CHIP-8. I tried writing some CHIP-8 too, but coming from more recent paradigms, it seemed quite unwieldy to me.

I like python for quick and dirty stuff, I don't like python for being interpreted and it being not obvious what happens under the hood, memory wise, at a glance.

Seeing as you do C I'll say this. The one thing I really did not enjoy, subjectively, with Rust, is that writing "C-style loops" comes with a performance penalty because there are bound checks happening, so the idiomatic version of a loop in Rust usually involves iterators and function composition.

I am stupid. C-loops are easy for me to understand. More sophisticated stuff is hard for my little brain. I'd rather be trusted with my memory access, and be reminded of my stupidity when comes the inevitable segfault. Keeps you humble.

[-] Buffalox@lemmy.world 2 points 1 hour ago

it being not obvious what happens under the hood

To me it feels like it does things I didn't ask it to. So I'm not 100% in control 😋

the idiomatic version of a loop in Rust usually involves iterators and function composition.

What? You need to make a function to make a loop? That can't be right???

C-loops are easy for me to understand.

Absolutely, the way C loops work is perfect. I'm not so fond of the syntax, but at least it's logical in how it works.

[-] TriangleSpecialist@lemmy.world 2 points 50 minutes ago* (last edited 46 minutes ago)

What? You need to make a function to make a loop? That can't be right???

Ah no, there is a misunderstanding. You can write C-loops, of course, they just could involve more work under the hood because in order to enforce memory safety, there needs to be some form of bounds checking that does not happen in C. Caveat: I don't know whether that's always true, and what the subtleties are. Maybe I'm wrong about that even, but what is true is that what I am about to say, you will encounter in Rust codebases.

By function composition I meant in the mathematical sense. So, this example explains the gist of it. You may need to throw in a lambda function in there to actually do the job, yeah. I don't know what the compiler actually reduces that to though.

It's just the more functional approach that you can also see with Haskell for example. I find it harder to parse, but that may be lack of training rather than intrinsic difficult.

EDIT: pasted the wrong link to something totally irrelevant, fixed now

[-] Buffalox@lemmy.world 2 points 47 minutes ago

OK thanks for clarifying. 👍

this post was submitted on 10 Dec 2025
85 points (94.7% liked)

Linux

57274 readers
771 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS