Rust: A Critical Retrospective
It looks like I&#x27;m on the minority here, but I generally like Rust&#x27;s syntax and think it&#x27;s pretty readable.<p>Of course, when you use generics, lifetimes, closures, etc, all on the same line it can become hard to read. But on my experience on &quot;high level&quot; application code, it isn&#x27;t usually like that. The hardest thing to grep at first for me, coming from python, was the :: for navigating namespaces&#x2F;modules.<p>I also find functional style a lot easier to read than Python, because of chaining (dot notation) and the closure syntax.<p>Python:<p><pre><code>    array = [1, 0, 2, 3]
    new_array = map(
        lambda x: x * 2,
        filter(
            lambda x: x != 0,
            array
        )
    )
</code></pre>
Rust:<p><pre><code>    let array = [1, 0, 2, 3];
    let new_vec: Vec&lt;_&gt; = array.into_iter()
        .filter(|&amp;x| x != 0)
        .map(|x| x * 2)
        .collect();
</code></pre>
I mean, I kind of agree to the criticism, specially when it comes to macros and lifetimes, but I also feel like that&#x27;s more applicable for low level code or code that uses lots of features that just aren&#x27;t available in e.g. C, Python or Go.<p>Edit: Collected iterator into Vec