Types
So what might make dynamic languages easier to write in? I enjoy dynamic languages more because:<p>* &quot;double kilometerToMiles(double km) { return km &#x2F; 1.6 }&quot; here the types are of really low value, yet I have to type them in.<p>* a mutable list of generic and variable arity event handlers. Really hard to specify as a type (most languages cannot do it). Really easy to use.<p>* co- and contravariance and lists, the math works exactly opposite of intuition.<p>* when you change your mind on the types&#x2F;arity beyond what your IDE can follow, it is a lot of low value work<p>* if your test suite has 100% coverage of arguments&#x2F;return-value and field usage, you have type checked your program.<p>If I am going to write down types, they better be of value to me. Like types that are null or non-null, or tainted (from the user) or non-tainted. Or two numbers that are kilometers vs miles. Or only accessible under a certain lock or other preconditions. And be flow sensitive (kotlin style null checks), not make me write even more code.<p>But if you are a dynamic language, do be strong typed (no &quot;1&quot; == 1). Also be dynamic in arity, that is (part-of) a type. Don&#x27;t be handwavy scoped, lexical scoping is probably the only predictable way to do scoping. Fail fast, like prevent spelling mistakes for non existing field names for example. And allow this to work: &quot;2 * Vector(10,10)&quot;.<p>And from that perspective there is still quite some room for improvement in all classes of languages, I suppose, and good that there is lot of movement and experiments today.