Functional programming embraces a kind of conceptual purity which often finds itself at odds with the demands of real world systems. Functional programming works best in a kind of ideal computing environment: heaps are endless, file descriptors don’t exist, partial failure cannot happen, and demands can never exceed a system’s capacity. Inevitably, the real world won’t accommodate: as a system scales, so does this apparent rift. Read More