Advancing Memory Safety
Rust Evangelism & Backlash
- Many see Rust advocacy as unusually intense, reminiscent of past functional‑programming evangelism (Haskell/Scala), and react against perceived “only the Rust way is valid” attitudes.
- Some argue Rust advocates became loud because entrenched C/C++ users resist change; others say dogmatism and lack of nuance justify pushback.
- Cultural clash is emphasized: young, online, meme‑driven Rust culture vs long‑time C/C++ developers; for some, opposition is more about “not liking Rust people” than the language.
Memory Safety, GC, and Runtimes
- Debate over whether Java/C#/Go already provide “fast, safe” internet services; critics of Rust evangelism cite them as proven options.
- Counterpoint: garbage collection is not the same as memory safety; GC languages’ safety also depends on runtimes (often in C/C++) and JIT correctness.
- Others reply that runtime implementation details don’t directly make safe languages unsafe in the simple “use‑after‑free” sense, and runtimes are heavily tested.
- Thread agrees memory safety is important but not the only security concern (e.g., injections, leaks, logic bugs).
Rust Ergonomics, Performance, and Web Dev
- Some claim Rust is ergonomic without GC; lifetimes are mostly inferred, and typical code uses few explicit annotations.
- Others find borrow checking and lifetime syntax intrusive, especially in high‑performance or complex sharing scenarios.
- Use of
Rc/Arcis discussed: non‑atomicRccan be very cheap;Arcis costly on some architectures and must be used sparingly. - Opinions split on Rust for web dev:
- Pro: good fit if team wants it; strong latency/throughput; viable even on very constrained hardware.
- Con: ecosystem is young; async needs its own runtime; decision fatigue; GC’d languages like C#/Kotlin are often simpler and “good enough”.
Historical Parallels
- Participants recall similar backlash to Java (slow, memory‑hungry, no generics early), Swift (missing Objective‑C features, disliked optionals), Kotlin (Java “is fine”), TypeScript (“unneeded complexity”), and Python (“not real programming”).
- Widely noted pattern: the most‑used languages attract the most complaints.
C/C++ Attitudes and Tradeoffs
- Several comments argue many C/C++ developers overestimate their memory‑management skill and feel threatened by Rust’s potential as a replacement.
- Others stress that language choice must weigh ecosystem, training, development cost, and safety needs; there is no universally “objectively better” tool.
Carbon Language & Google
- A Google reference to using Carbon for “more seamless interoperability with C++” to accelerate moves to memory‑safe languages prompted confusion.
- Critics say Carbon currently prioritizes fast parsing and has only vague plans for memory safety.
- A Carbon team member states the experiment must eventually demonstrate both strong C++ interop and memory safety; expectation is that C++ → Carbon will be a lower‑friction path to safety than C++ → Rust.
- Carbon’s stance on excluding data races from its core memory‑safety model is questioned and described as still in flux.