double[] arr;
bam! Simple and clear.
What about functions? It has input, name and output and D nicely presents you with
double[] createArray(int size) {...}
This is as little typing as you can get while keeping readability.
And here is a basic Rust function
fn add_one(x: i32) -> i32 {...}
What kind of type is i32 btw? oh, there is u32 as well. integer 32bit and unsigned 32bit? What on earth are these? Ah, this is just D's size_t, the same size_t as in C/C++. So that C/C++ ppl have zero overhead reading D code and for Rust they will google. To top that, you have also -> because of the type after the definition scheme. Needless verbosity, same thing in Scala.
What about Rust unable to drop parenthesis after a function?
self.host_addr.clone()
Should I mention Rust's UFCS?
But I am nitpicking, right. This doesn't make a language bad in any way. However, as I said, Rust readability is pretty subpar in addition to already steep language learning curve.