I agree with you, up to a point. I find Ruby code pretty awful to make sense of with very little type information. Type inference with explicit return types for methods strikes a nice balance between verbosity and readability. I think Scala, Kotlin and to some extent C# do a better job of this than Java.<p>There are also many less favourable cases where you see things like:<p><pre><code>   Customer customer = new Customer();
   String str = &quot;I&#x27;m a String&quot;
   SomethingOrOtherFactory factory = new SomethingOrOtherFactory();
</code></pre>
which isn&#x27;t any clearer than:<p><pre><code>   val customer = new Customer();
   val str = &quot;I&#x27;m a String&quot;
   val factory = new SomethingOrOtherFactory()

</code></pre>
Having a dozen getter&#x2F;setters is generally a code smell, but having a dozen getters isn&#x27;t.