1. 10
  1.  

  2. 5

    This is larger than monads, I’d also argue. Immutable state has the same issues. If we sell functional programming in-the-negative (“doesn’t have mutable state”) then this only appeals to people who’ve been burned by stateful effects in the past. And, of course, it’s not that “mutable state” is bad or even that FP disallows it; it’s just that badly designed or poorly documented mutable state end up doing a lot of damage, and creating unmaintainable systems. Functional programming forces you to think about whether you actually need to use mutable state.

    One of the things that I despise about the software industry is that it worships inexperience and anti-intellectualism. It values productivity theater (get those story points done!) more than long-term achievement, and it forces people into language/platform wars (arguments that start from a solution and assert that there is a problem, rather than attempting to establish it as true) that don’t need to exist. The result of this mess is that you have a large number of unskilled, badly-trained people doing work by rote that they don’t really understand, and while many of these people think they understand computers and programing but have no second-order knowledge: not only do they not know many things, but they don’t know that they don’t know.