I want to talk a bit about what I think about this topic.
So, what do I think about this topic?
I think this topic should be considered in social, historical and even teleological context. It is not merely that some people want one thing (say, nice core libraries) and others want another (say, timeless learning materials). There is a reason why people want this or that — this reason is what matters. And people can be wrong about what is best for them.
So, what do people want?
The problem is that it is impossible to have both.
The standard solution to this problem is to clarify the purpose. This is mentioned in this comment. But what if there are several purposes? There is a proposal to split the ecosystem.
How should we evaluate these possibilities?
-
There is a local way. «This is good for me, therefore I am going to support it.» We ask everyone to evaluate a local optimum and then vote to either pick one or take a weighted average. This is what I think was happening so far. Everyone pulling the blanket their way.
-
There is a global way. «Amplify Haskell’s impact on humanity.» This is the mission statement of the Haskell Foundation. But the Haskell Foundation does not have the authority to decide upon socially divisive problems. So, we are still stuck at the average between local optima.
Can we pursue the global way as a community?
It seems that we should account for several aspects of the problem. My picture is like this:
- There is a space-time continuum. Space is the landscape of society, time is cultural change. (To be concrete, take the relative adoption of Haskell in various markets as dimensions and vary it over time.)
- Haskell is drawing a curve in this continuum. The aim of this curve is either a clearly stated purpose, or an unwritten average determined by historical accident.
- There is no option for the curve to have no aim. Since it is mostly smooth, it has a tangent vector along most of its length.
This can also be said in terms of enterprise management. There are customer segments and Haskell can strive to offer value to some but not all of the possible segments. The outcome is that either Haskell has a big market share overall (many opportunities for paid employment, many well-supported libraries) or a small market share overall (few opportunities for paid employment, few well-supported libraries).
So, goals we pursue → vector of cultural change → overall market share → good things.
The current situation is that Haskell has about 3% market share and no growth to speak of.
How can these numbers be improved?
- This is not a question of technical expertise, but of business administration.
- This is not a question of keeping the work of maintainers easy. Maybe we can instead make it harder but better paid. Then more people will be able to afford to do it.
- Haskell Foundation is not going to make hard decisions for us. There is no management for Haskell.
The only way forward I can see is for the community to organize itself. And not around technical expertise, but around social, enterprise and strategic expertise. Splitting hairs like whether /=
should be a method is a waste of everyone’s time. There is bigger fish to fry.
This of course involves redistribution of power. Currently those most able to split hairs hold all the power. I do not see this working. We need someone to look outside the Haskell bubble, someone to crunch the numbers (like say these dream metrics), someone to talk about big changes (like say splitting the ecosystem — see above).
The first step is to re-frame the discourse to account for social, historical and even teleological context. That is what I think, anyway.
Thanks!