I could actually see myself contributing to Rust kernel code. C code has always been impossible for me to understand, but the Rust part seems to have a more understandable structure
Rust code (and the ecosystem) seems to put a higher priority on describing code contracts through the type system and documentation. I personally feel you don’t need as much context to write functional code compared to C where every corner of the codebase might be hiding something that could impact the part your working on.
This exactly. I always wanted to contribute to the kernel but after being a c++ dev for so many years I absolutely don’t want to do C, and rust would allow me to have fun doing kernel hacking
Yesterday, we had a presentation at $DAYJOB, where we showed off our software project at a high level to another department. That department does lots of low-level work, including with C.
A team lead from that department, who knows our project, had provided the initial draft for the presentation slides. And they threw a sentence at the end of the slides “By the way: $PROJECT powered by Rust”. We were also not the only project there, which explicitly mentioned Rust, even though it wasn’t strictly relevant.
And yeah, that’s just kind of insane to me. When even management understands that their techies get excited about working with Rust, that’s not anymore just a few select voices that call for it. That’s a whole department discontent with C, where an alternative is presented.
Which is why I would be extremely surprised, if not something similar happened with the Linux kernel.
Obviously, those who’ve coded C for twenty years might not understand the issue, but there’s so many people for which low-level development becomes accessible for the first time with Rust. The stream of people wanting to contribute Rust code will just not cut off any time soon.those who’ve coded C for twenty years might not understand the issue
or the opposite because they have that experience
Yeah that’s definitely true, but also the people who have been doing it for 20 years have a huge amount of knowledge and experience invested in dealing with memory unsafety. Lots of people don’t want that investment to be “wasted”, so they try to maintain the status quo, even if it is worse for them.
Rust doesn’t help with accessibility its just as easy if not easyer to write c. Its just that when u write bad c u have real serious issues.
Have you used both languages before?
Yeah. I prefer rust but I defiantly had a far easier time learning c and apply my existing programming knowledge. Getting my head around the borrow checker was one hell of a pain in the ass.
The thing is that “learning C” means “I can write C code that compiles and might be full of bugs”, whereas “learning Rust” means “I can write Rust code that compiles and has a small number of bugs”. It’s not apples-to-apples.
It’s like saying “I found it easier to learn primary school maths than I did to learn a physics degree”.
I defiantly had a far easier time learning c and apply my existing programming knowledge. Getting my head around the borrow checker was one hell of a pain in the ass.
What specifically was difficult to understand about the borrow checker? Much of what the borrow checker requires you to do are things that you still need to do in C just without compiler support.
Rust doesn’t help with accessibility
when u write bad c u have real serious issues
I hope you recognize the irony.
that’s odd most people praise rust for being incredibly easy to install and build any project with rustup and cargo
you can do remarkably sophisticated things using a few crates, simple data structures and types and at C speeds or faster
i think you’re wrong
Rust allows you to create more powerful abstractions, which can allow you to express your intent in a clearer way. C code can feel like you’re bogged down by details all the time. C is on the other hand a smaller language, so just getting to the point where you “know” the language is a lot easier.
I’m not talking about building I’m talking about programming. I defiantly agree rust has some very nice tooling but the language itself has quite a steep learning curve that isn’t kind to newcomers.
both C and Rust have learning curves that get steep after the initial trivial stuff
with C as soon as you’re in array/string/pointer land, you’re in a world of seg faults
you can get so much more done as a beginner in Rust before you get anywhere near dealing with ownership or creating advanced generics
Well, I did mean accessible in terms of feeling semi-confident to contribute to a project with users. If you end up writing code that takes longer to review than it would’ve taken the reviewer to write it themselves, that’s always kind of unfortunate…
[memory safety] is a more or less solved research problem
I don’t know if I would go that far. There are some interesting alternative approaches to Rust’s borrow checker that might turn out to be better. There’s definitely more research that can be done.
But we do have at least one solution that works very well.
The nice thing is if a much better solution exists then a rust compiler that uses it can be implemented using it. Then you don’t have to rewrite all the rust code.