> I've mostly favored procedural programming and only use objects when I have to because the abstraction can make the program harder to reason about, especially when there's a lot of inheritance.
In functional programming, you generally abstract in different directions than you do in object-oriented programming. IMO, functional abstractions make things easier to reason about, since they generally constrain what any given block of code might do.
> So, for someone who doesn't love objects, why should I love types?
Because powerful type systems mean that a lot of mistakes will be compiler errors instead of bugs.
In functional programming, you generally abstract in different directions than you do in object-oriented programming. IMO, functional abstractions make things easier to reason about, since they generally constrain what any given block of code might do.
> So, for someone who doesn't love objects, why should I love types?
Because powerful type systems mean that a lot of mistakes will be compiler errors instead of bugs.