It’s been continuously surprising to me how much hatred some C and C++ devs have for Rust. While Rust isn’t perfect, and plenty of criticisms aimed at the language are well-reasoned, the borrow checker is IMO the logical next step forward in “zero-cost abstraction” which is one of the strongest core philosophies behind C and C++.
The R4L effort seems to be structured sensibly, starting out with only allowing Rust code in (new) drivers. From what I can tell there’s comparatively little that has to be maintained upstream, but even that is encountering aggressive pushback.
I can’t help but feel like some devs have spent so much of their professional careers learning how to avoid the many footguns of C(++) that they fundamentally resent Rust for being a language which avoids most these problems, allowing fast code to be written with fewer bugs in less time and with less effort. This feeling is based on having written lots of C++ code for over 20 years, and having personally encountered devs who deeply resent Rust just because it’s not C.
The classic “I had it hard so you should too” mentality. I think it fundamentally comes from an animal desire for fairness - it isn’t fair that these old geezers had to put up with C shooting them in the feet at the drop of a bracket, while the new kids on the block get friendly (usually) compiler errors instead.
But I think if you don’t recognise that instinct in yourself and overcome it then you have failed as a human.
I’ll always remember the pushback to making xfree86 easier to configure (yes I’m old). Back in the day you had to edit a stupid text file to tell X that your screen could display 1024x768 and your mouse had three buttons. Then some upstarts came along and make it automatically detect that. The absolute cheek! Our ancestors have been practicing xfree86config since before you were a wee bebe! Etc. etc.
It’s been continuously surprising to me how much hatred some C and C++ devs have for Rust. While Rust isn’t perfect, and plenty of criticisms aimed at the language are well-reasoned, the borrow checker is IMO the logical next step forward in “zero-cost abstraction” which is one of the strongest core philosophies behind C and C++.
The R4L effort seems to be structured sensibly, starting out with only allowing Rust code in (new) drivers. From what I can tell there’s comparatively little that has to be maintained upstream, but even that is encountering aggressive pushback.
I can’t help but feel like some devs have spent so much of their professional careers learning how to avoid the many footguns of C(++) that they fundamentally resent Rust for being a language which avoids most these problems, allowing fast code to be written with fewer bugs in less time and with less effort. This feeling is based on having written lots of C++ code for over 20 years, and having personally encountered devs who deeply resent Rust just because it’s not C.
The classic “I had it hard so you should too” mentality. I think it fundamentally comes from an animal desire for fairness - it isn’t fair that these old geezers had to put up with C shooting them in the feet at the drop of a bracket, while the new kids on the block get friendly (usually) compiler errors instead.
But I think if you don’t recognise that instinct in yourself and overcome it then you have failed as a human.
I’ll always remember the pushback to making xfree86 easier to configure (yes I’m old). Back in the day you had to edit a stupid text file to tell X that your screen could display 1024x768 and your mouse had three buttons. Then some upstarts came along and make it automatically detect that. The absolute cheek! Our ancestors have been practicing xfree86config since before you were a wee bebe! Etc. etc.
It’s a human condition.
And you had to figure out the bandwidth of your monitor (or more typically just make it up and hope nothing would break). What fun that was.
I don’t see how anyone could miss that.
Yeah… I suspect in 20 years this defence of C will seem just as incomprehensible.