4 ms·
> I was familiar with Ada, but I wasn't aware that it had an ownership system like Rust that could guarantee memory safety. The point for bringing up Ada was m
by epcoa 2y ago
> I was familiar with Ada, but I wasn't aware that it had an ownership system like Rust that could guarantee memory safety.
The point for bringing up Ada was more that a non-academic "memory-safe" language without GC existed for decades (predating Linux). Old school Ada doesn't use the ownership system, and true doesn't give all the compile-time safety guarantees of Rust but it does give some (and rust in practice cant't either, run the output of grep unsafe | wc on the linux/rust source tree), it also provides some affordances lacking in safe rust. Memory-safety is not some binary or univariate concept that you seem somewhat close to implying.
You could have written Linux in Ada from day one and been "safer" than C (imagine that universe).
Related:
https://pling.jondgoodwin.com/post/cyclone/ https://pling.jondgoodwin.com/post/cyclone/ (which is also referred to in the aforementioned paper).
> I think that's enough to demonstrate that Rust's ownership system is substantially novel
Well, where did anyone say it wasn't, but it certainly wasn't novel in pushing safety as a first class concept for a low level systems language. The fact that it is as (deservedly) successful as it is must be due to other factors.
I'm not saying Ada did it first as some kind of gotcha, but Ada did it first and it does not rule the world.
Also, interesting comments from the creator of Rust.
https://www.reddit.com/r/rust/comments/t9972l/comment/hztbsni https://www.reddit.com/r/rust/comments/t9972l/comment/hztbsn...
https://www.reddit.com/r/rust/comments/le7m54/comment/gmb4zgc https://www.reddit.com/r/rust/comments/le7m54/comment/gmb4zg...
I'll reiterate, I'm very pro-Rust. I'm just old and look at the current governance and state of corporate involvement and it gives me flashbacks to commercial Unix in the late 80s/early 90s. IIn any case, I think fetishizing the borrow checker or a specific PL feature as having much to with its success (or failure) is sort of irrelevant.
- bccdee 2y ago> Ada did it first and it does not rule the world. Well I mean, Ada didn't do "it" first—"it" being whatever Rust did that led to it making such a big splash. If Ada had done that first, it would have made the kind of splash that Rust has. Rust isn't the first systems language to ever consider being safer than C, but it is the first one to have such a large impact, and I think that's a product, primarily, of its technical decisions. > I think fetishizing the borrow checker or a specific PL feature as having much to with its success (or failure) is sort of irrelevant. I think that's an odd stance. Why would the technical specs of a language be irrelevant to its success? I think that's probably the most relevant factor, besides an institutional backer. C# was pushed hard by Microsoft and Go got a lot of support from Google. Rust wasn't part of an major tech player's pre-existing ecosystem, though, so it had to succeed on technical merit alone. None of its ideas are really that new except the borrow checker, and most of the time, when I've seen an institution talk about adopting Rust, there's been a lot of focus on the safety afforded by the borrow checker. I don't think that can be a coincidence. That's not "fetishization." When a programming language with one new idea and little institutional backing gains traction in the mainstream, it's probably because that new idea in particular has a lot of merit.
- epcoa 2y ago> Ada didn't do "it" first It did the safety thing first, or at least much earlier. > Rust wasn't part of an major tech player's pre-existing ecosystem, Completely overlooking Mozilla’s backing early on is too extreme. Mozilla pumped a ton of money that got Rust off the ground. And of course even now the Rust Foundation isn’t poor or something. Despite Google employing the Go people, not really part of their “ecosystem” for years either. They really hedged on that one. Go popularity mostly grew outside of Google for years But yes both projects have/had plenty of money. This isn’t Nim or Lua or something. > when I've seen an institution talk about adopting Rust, there's been a lot of focus on the safety afforded by the borrow checker. So why did they just start caring about safety this recently? > it's probably because that new idea in particular has a lot of merit. The point is “safety” for a low level system language wasn’t a new idea at all, it was just that the world outside did not value/demand it. > That's not "fetishization." The fetishization I am referring to is focusing on the memory safety so far above the type system, tooling, open community building, and even the syntax. Conversely Rust can’t manage to have an ABI past extern “C”. Never said technical specs are irrelevant, that’s a straw man. And finally, again this all to say, I think its memory safety story is not what is going to determine its fate and destiny in the next decade. It needs to evolve, this is more about governance than about a particular feature. That rust in Linux depends on unstable isn’t end of the world, it’s not something to be proud of either. I think it’s naive to think things like Carbon don’t have some competitive effects either. To touch back on “it's still a relatively young language.” Java, C#, Swift and Go were all well established in their niches younger than Rust. But, it really doesn’t matter one whit if Rust is 5 or 35. I’m more interested in the present trajectory and where and why Rust struggles or has struggled to make inroads, not everything is fair to chalk up to just age IMHO.