I don&#x27;t see a difference in functionality — both code snippets I gave do exactly the same thing.<p>As for brevity, I think clarity is more important. We should optimise for the time it takes to read and understand the code (clarity), not just read (brevity).<p>The best abstractions and programming language features are both brief and clear, like Python&#x27;s list comprehensions. I find<p>[name.uppercase() for name in names if name.startswith(&quot;a&quot;)]<p>to be clearer than Java&#x27;s<p>List&lt;String&gt; uppercaseNames = new ArrayList&lt;&gt;();<p>for (String name: names) {<p>if (name.startsWith(&quot;a&quot;)) uppercaseNames.add(name.toUpperCase());<p>}<p>So, the best programming language features enhance both brevity and clarity. When that&#x27;s not possible, I&#x27;ll take slightly longer but clearer code over short but confusing one.