Category Theory for Programmers (2014) [pdf]
Started reading this and was disappointed to find the same disingenuous claims about strong static type systems.<p>I say disingenuous because the people that espouse these beliefs seem to have a minimum modicum of intelligence and do or would certainly (after a moment of reflection) certainly realize their fallacy:<p>&gt; The only serious argument I hear against strong static type check- ing is that it might eliminate some programs that are semantically cor- rect. In practice, this happens extremely rarely and, in any case, every language provides some kind of a backdoor to bypass the type sys- tem when that’s really necessary.<p>This is patently false. Port a correct dynamically typed program to Haskell and it will certainly fail until you satisfy the type checker through no small <i>extraneous</i> effort. And this is not a theoretical matter; it is an enormous cost to the programmer that is not there in weaker or non- typed systems.<p>It is a certainty that type systems ask for far more than is needed to produce correctness. Anyone who tries to dodge this obvious and fundamental truth is operating off of a religious not rational commitment to defending their type system. Note that I am not saying the type system doesn&#x27;t <i>give you something back</i> but it certainly comes with a <i>inherent</i> cost over alternatives.<p>&gt; Another argument I hear a lot is that dealing with types imposes too much burden on the programmer. I could sympathize with this sen- timent after having to write a few declarations of iterators in C++ my- self, except that there is a technology called type inference that lets the compiler deduce most of the types<p>This is the most heinous and sad lie. Type inference changes nothing. The types are there even if you don&#x27;t have to type them in and they are significantly constraining your set of accepted programs.<p>I&#x27;ve heard this response before from seemingly smart static typers. I just can&#x27;t believe a smart person would not see the obvious emptiness of this claim. There is no way anyone would think that <i>having to type characters</i> is the exclusive cost of static typing that inference suddenly whisks away.<p>I want to buy into the strong static typist&#x27;s promise of utopia but I have yet to meet a static typist enthusiast that doesn&#x27;t parlay in these lies, wittingly or unwittingly.<p>Because of this I have a serious suspicion that there is nothing else to stand on and that strong static typing is simply a case of the Emperor&#x27;s New Clothes. Prove me wrong.