The memory safety of Rust is over consumed. 1. several small languages also introduce the type system to try to solve the memory safety problem. But all of them are less famous. Because there are many reasons that makes a language being accepted massively from other tons. 2. in many cases, it is not hard to do manual memory management. There are many great software done with manual memory management. Although I admit…
> fn foo(x: &'a str, y: &'b str) -> &'a str
Anybody who cares about the validity of pointers would like to read that. It very explicitly tells you what must be true of the arguments for them to be valid and for how long the result will be valid.
In general, you seem to be over-valuing conciseness. If you think conciseness is more important than memory safety, feel free to not use Rust. But frankly, it is trivial to make a language more concise. That's not a hard problem whatsoever.