Oct 7, 2013

One of my favorite talks at last month’s Strange Loop conference was Martin Odersky‘s keynote entitled “The Trouble With Types.” There were many interesting points made in his talk, some that I agree with and some not. However, I’d like to focus in on a very small, seemingly throwaway statement made by Dr. Odersky that bothers me. That is, the statement is one that I see gaining popularity amongst many advocates of static typing that takes the form:

I’m not a great programmer, so static typing helps me to be a better programmer.1

My position is that this statement is incredibly weak, ringing hollow at best and disingenuous at worst. I don’t know exactly why this phrase is gaining mind-share, but I suspect it’s an attempt to counter the idea that strong static type systems like Scala’s are complicated. One reason that it rings hollow is that anyone can explore the code written by those who say this phrase and more often than not their skill is easily apparent.2

It’s my opinion that this watered-down phrase needs to die, and quick. I personally would be more impressed if advocates instead took a more positive position and stated some to the effect of:

I am a great programmer and I choose static type systems because I demand sharp tools.

Of course by taking this position you run the risk of pushing a fallacious, authority-based angle. However, in the weak or strong case you’re already pushing anecdotes around, so you may at least choose the one that is open for objective measurement. I’d much rather learn from and participate in a debate centered around whether Scala is a sharp tool 3 than if Scala makes weak programmers stronger.

Besides if we can come to the agreement that Scala is a sharp tool then the latter point is moot. Sharp tools always make everyone better at their craft, regardless of skill level.

:F