5 ms·
Something's fishy here... This is the first I've heard of the whole thing, so forgive me if I'm just bloviating. As a political move to advance the cause of m
by carapace 6y ago
Something's fishy here...
This is the first I've heard of the whole thing, so forgive me if I'm just bloviating.
As a political move to advance the cause of memory-safe languages, as Alex Gaynor clearly intends†, this is obviously kind of a fiasco.
The arguments about who's going to pay for safer software are uninteresting. It's like arguing over who is going to run into the burning building to save the baby. Put some liability laws in place and see what you get?
As for Rust not supporting "weird architectures", are y'all serious about being the new contender or not? C isn't going to give up the title without an epic fight. Love it or hate it, to a first approximation C is programming.
†I do not mean that in a negative way. FWIW I'm referring to https://www.usenix.org/conference/enigma2021/presentation/gaynor https://www.usenix.org/conference/enigma2021/presentation/ga... which I just read. Personally, I'm at "Bargaining" stage, I think we can still "turd polish" C into something and Rust seems to me to be waaaaaaaay too complex (to replace C. It sure is fun though, eh?)
- acdha 6y ago> As a political move to advance the cause of memory-safe languages, as Alex Gaynor clearly intends†, this is obviously kind of a fiasco. I’m not sure about that: there’s been a few people vocally complaining but it doesn’t seem like they’re getting much traction. I’d see this working as well for other maintainers saying “people using hardware which has been dying since the 90s aren’t a major constituency and I’d like the huge safety and productivity benefits of Rust”. I find it interesting that you describe Rust as too complex to replace C, when I generally see it as the reverse: I’ve written C off and on since the early 90s and it’s almost always felt like a chore because you have to do so much yourself that newer languages do for you. Rust hit a better comfort level after a couple hours because it was so much more productive that I could start making progress on design refactoring which had been postponed due to how tedious it would have been to do it before.
- carapace 6y ago> I’m not sure about that: there’s been a few people vocally complaining but it doesn’t seem like they’re getting much traction. You don't see the problem with that? People (who already use a memory-safe language!) shouldn't be complaining when their crypto gets rewritten in a memory-safe language. If they are, someone shat the bed. And if your users are complaining but getting no traction, that is a (second!) shitting of the bed. > other maintainers saying “people using hardware which has been dying since the 90s aren’t a major constituency and I’d like the huge safety and productivity benefits of Rust”. We all want safe software. People aren't upset by choices being added, they are upset about something they (thought) they had that has now been taken away. If you break a bunch of people's stuff and then tell them "fuck you, pay us" or "your platform isn't hip enough" it's kind of a dick move, eh? The "optics" are bad. - - - - In re: complexity of Rust vs. C: The measure of complexity of a system isn't the ergonomics of the tooling, it's the time/effort for a newbie to achieve competence, eh?
- acdha 6y ago> People (who already use a memory-safe language!) shouldn't be complaining when their crypto gets rewritten in a memory-safe language. If they are, someone shat the bed. Or they’re resistant to change and are going to complain about anything which means they have to learn something new. I mean, if you listened to the current crop you’d think that C builds worked perfectly everywhere whereas it hasn’t even been a week since I’ve to debug a C-based extension install on an Alpine container. In reality, a large fraction of Python cryptography users switched without issues. They just didn’t take to the forums to say that it was working fine or that they were not unhappy because they didn’t derive some portion of their self image from mastery of a half century-old systems programming language. > In re: complexity of Rust vs. C: The measure of complexity of a system isn't the ergonomics of the tooling, it's the time/effort for a newbie to achieve competence, eh? I’d really seriously question whether it’s correct to assume that it’s easier to learn C plus 50 years of add-on libraries to get close to Rust-level functionality and internalizing all of the patterns people use to work around the unsafe and/or unfixable bits. That Rust newcomer will almost certainly have multithreaded code working safely while their C counterpart is acquiring some deep debugging experience. The higher level structures are a huge win and the frictional cost of not having core language support for basic tasks like text processing mean a lot of frictional costs go from being easily missed runtime mistakes or hard to debug crashes to IDE warnings or compile time errors.
- carapace 6y ago> That Rust newcomer will almost certainly have multithreaded code working safely while their C counterpart is acquiring some deep debugging experience. Yep. Which one will be better at debugging when things inevitably go wrong? The happy path is not the measure of complexity. Let me put it another way: Which would be simpler to implement from scratch, C or Rust?
- acdha 6y ago> Yep. Which one will be better at debugging when things inevitably go wrong? I think you're dramatically under-estimating the amount of extra work a C developer has to do, ranging from not having many data structures to not having a package manager and thus needing to write a lot more code themselves. If C forced developers to be good at debugging we'd know by now — and I'd see less printf() debugging — and being forced to cobble together more of what you get out of the box with Rust means that those skills are less portable because different programs have different combinations of conventions, macros, and libraries in use. A C developer with a lot of Windows experience is going to have a rougher time debugging a Linux program (repeat for MacOS, iOS, *BSD, etc.) than a Rust developer simply because the limited language set means even basic tasks like text processing follow project-specific conventions.
- lmm 6y ago> As a political move to advance the cause of memory-safe languages, as Alex Gaynor clearly intends†, this is obviously kind of a fiasco. On the contrary, I think this is a brilliant move; it's pulled C fans into a blatantly unreasonable position, making it clear how untenable their position is. > As for Rust not supporting "weird architectures", are y'all serious about being the new contender or not? C isn't going to give up the title without an epic fight. Love it or hate it, to a first approximation C is programming. Nonsense. Serious programmers (e.g. those doing it professionally) have already mostly moved on from C. Open-source is bound up with Linux and C for historical reasons, and also because the top mainstream languages were not open-source until recently, and so is disproportionately behind the times.
- WoodenChair 6y ago> Open-source is bound up with Linux and C for historical reasons, and also because the top mainstream languages were not open-source until recently, and so is disproportionately behind the times. The top mainstream languages (C, C++, Java, JavaScript, Python, C#, etc.) have all had at least one open source implementation for at least a decade. A decade is not a long time in the life of programming languages but it’s also not “recently.”
- lmm 6y agoI'll admit that GPLed Java is much older than I thought, but open-source C# was certainly not first-class until 2016, and IMO not really until late last year.
- WoodenChair 6y agoMono (open source implementation of C#) is much older than that.
- lmm 6y agoIndeed, but it was never first-class. A lot of libraries weren't available or didn't behave correctly.