4 ms·
The thing is... functional programming has its own version of a lot of these problems, as well as its own problems. The easiest example is the base class fragi
by nick_ 6y ago
The thing is... functional programming has its own version of a lot of these problems, as well as its own problems.
The easiest example is the base class fragility problem. This is just a special case of the compounding fragility of any reusable component, where fragility increases with the width and depth of its dependents. If, instead of a class, a function is reused by many other functions it will suffer the same problem. Any changes to that "base" function will affect all functions which invoke it down the dependency chain.
I believe the actual issue is that isolating and defining abstractions from the landscape of necessary implementations is actually very difficult. AKA "programming is hard".
I think in a lot of cases it is impossible to correctly model abstractions, since different use cases will push and pull on different parts of the "boundaries" of the given abstraction. In other words, reality is messy and our computer models are usually extremely naive.
- CSSer 6y agoPerhaps the valuable takeaway to this is what we have is good but not enough? I don’t have any profound insight here, but I think it’s at least encouraging to know that there could still be some innovation in language design out there to be discovered yet, and we’re not just doing it wrong all the time because we’re absolutely daft. Rather, it’s a refreshing admonishment to hear there is no magic bullet and yes, sometimes code will have to be a little sticky.
- mratsim 6y agoThat's called the Expression Problem, there is no free lunch.