From my point of view you seem to be doing fine! Sorry if that is not how you experience it. I shall endeavour to do my best to understand what you’re saying, but I can’t guarantee I will succeed.
Not at all. I have no intention of avoiding anything. It hasn’t been completely clear to me what your argument is, but it’s becoming clearer, I believe. Let’s see.
Yes, I think that’s true. To show my cards up front: I’m pretty skeptical that “a governing body with a vision” is a plausible concept. I think individuals (or maybe small groups) can have a vision, and governing bodies are the conduits through which a vision can be turned into reality.
I agree.
I disagree. I don’t think there’s anything standing in the way of someone submitting a good proposal for a radical change to GHC and getting it through the steering committee, except that fact that radical changes disrupt the lives of many Haskell users, including those (perhaps especially those) working in industry.
The steering committee is the body ultimately responsible for placing a high bar on such proposals and if the committee didn’t exist the high bar may not be there. But if the committee didn’t exist the problem would just shift elsewhere, for example to many industrial users simply leaving Haskell.
Now, if someone or some group comes to the steering committee with a radical proposal that would cause breakage to existing code but nonetheless the proposers can convince the committee that the change is broadly beneficial overall to a wide range of stakeholders then the committee will accept it. Why not?
I just don’t believe there’s a fundamental impediment on radical change as a result of the operations of the steering committee. I think the impediment comes from many GHC users not wanting radical change! That’s a quite different issue.
[OK, well it shouldn’t be, because it’s not the same thing at all. I don’t think a “committee language” or “design by committee” typically means a language which is governed by a steering committee like GHC’s but rather one in which each committee member is trying to push their own special interest to the detriment of the quality of the design. I think that’s a minor terminological point, so I’ll try not to labour it further. If you or anyone else wants to call it a “committee language”, go ahead. I don’t care about the nomenclature. I think it has no bearing on the analysis of the situation.]
Aha! Now we’re getting somewhere. You want a certain type of body to exist. How should it come into existence?
Do you agree with me that it takes some work to bring such a thing into existence? Who will do that work? You, or others? Or maybe you disagree with me, and think it takes no work to bring such a thing into existence. I think it would drive the conversation forward if you could explain your point of view on this issue.
To be clear, no, I don’t think that.
Seems a fine thing for a body to do. But how do you propose they “create permission structure”? I guess to do that the body would have to be composed of people that are broadly trusted and recognised as authorities in the Haskell world. Are you saying they should be willing to volunteer their time, energy and political capital on the project? Maybe they should! But could you justify that further?
Now, if you want to say “the current setup we have with the GHC steering committee is leading to sub-optimal outcomes for GHC, Haskell, and the ecosystem” that’s a valid thing to say, but it needs careful analysis. You might want to refer to important proposals that would have been very beneficial but were held up in the review process. You might also want to claim “chilling effects” whereby the very prospect of steering committee review stops someone from even thinking about, let alone working on, a proposal.
But the onus is on you to provide such an analysis, taking into account the history of the body, why it was set up, the work that went into promoting the concept of language stability and the reasons behind that. If you can do that, great, but linking a podcast by a “real engineer” who “delivers” won’t cut it, because the people who typically have trust and authority in the Haskell world are also examples of such, with limited time, and have to choose carefully what they spend their time on.
In good faith: if you do want to do that, great! I’m sure it would be helpful. I’m willing to help you, particularly to help you understand more of the history around the push for more stability in the Haskell world (“real engineers” who “deliver” generally prefer stability). I think it would be useful for the community.
Alternatively, you might have an idea for a breaking change to the language whose benefits would outweigh the costs its imposes in breakage. Great! I’m also willing to help introduce you to the GHC proposal process so you can try to turn you idea into a real proposal. I can’t guarantee your proposal will succeed, but I can guarantee that if it doesn’t you’ll have gained some invaluable knowledge for participating in debates like this in the future!
If you don’t want to do that, that’s fine. But don’t be surprised if things don’t magically change in your favour for free.
Thanks for your work on this! It’s an important part of modernising the language. This is a good case in point because the change itself is tiny but it is a lot of work to do the necessary stability analysis and submit all the required patches. It takes a long time to get that kind of thing done (which I think is essentially the kind of thing that @mastarija is objecting to).