- 
                Notifications
    You must be signed in to change notification settings 
- Fork 8
Add post about Stability Working Group #13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,73 @@ | ||||||
| +++ | ||||||
| title = "Haskell Foundation Stability Working Group" | ||||||
| date = 2025-01-07 | ||||||
| [taxonomies] | ||||||
| authors = ["Trevis Elser"] | ||||||
| categories = ["Haskell Foundation"] | ||||||
| tags = ["Community", "Stability"] | ||||||
| +++ | ||||||
|  | ||||||
| What is stability? What has the Haskell Foundation Stability Working Group been working on? | ||||||
|  | ||||||
| <!-- more --> | ||||||
|  | ||||||
| ## Who am I? | ||||||
|  | ||||||
| The health of the Haskell ecosystem is very important to me. Most of my professional career to this point has involved using Haskell. As such it is in my own best interest to help the community to be healthy and grow. That way I can continue to work in the language and ecosystem! Even prior to my professional career, I used Haskell as an undergraduate. Despite it not being a part of the curriculum and being met with skepticism from several advisors that I could ever find work in Haskell. | ||||||
|          | ||||||
|  | ||||||
| Working as first a member and now chair of the Haskell Foundation Stability Working Group has been enlightening. Over the last few years two things have become very apparent. First, that there is a real appetite for movement from practitioners on some notion of stability. Second, getting things done in this area takes much more time and effort than it would seem. | ||||||
|          | ||||||
|  | ||||||
| With the appetite from practitioners and effort in mind, let me describe my views on stability, the operating goals of the Stability Working Group, who the group is, what we have been working on, and how you can help. | ||||||
|  | ||||||
| ## What is stability? What is it not? | ||||||
|  | ||||||
| Stability is often used with different definitions. As a result discussions can be confusing, unintentionally misrepresentative, or worse. The concern here is about _ecosystem stability_. So let us discuss _ecosystem_ and _stability_ independently. Then we can move on to putting the words back together. | ||||||
|  | ||||||
| By ecosystem we mean the broadest most inclusive set possible. This includes compiler and tooling implementors, industrial users across the spectrums of experience and enthusiasm, language designers, library authors and maintainers, researchers, students, anyone else working with the language, and anyone who works with the aforementioned. The needs of those groups are quite diverse and can often be in tension. So one of the first things to keep in mind for stability is how to balance those needs. It is simply required to be empathetic to all of those groups. | ||||||
|  | ||||||
| Recognizing this diversity means realizing where there are gaps in representation in the ecosystem today. Further we must remain cognizant that many of those groups simply will not increase their engagement with the rest of the ecosystem. How then can we possibly be aware of issues or concerns if those impacted are not engaged? There must be a bridge to them. Anyone involved in being that bridge then must navigate conversations to represent needs that might be, irrelevant to them or even in tension with their own. | ||||||
|  | ||||||
| Now with the ecosystem in mind, what exactly is stability? | ||||||
|  | ||||||
| For many they will read that word and think immutability. We are talking about the Haskell ecosystem after all. However, stability here does not mean a complete lack of change. To forego change entirely would mean to not be able to incorporate new ideas or react to the rest of the world changing. If this was the case Haskell would never have grown to include a huge number of things, including the IO monad! Interaction with he rest of the world will continue to require changes, for example the first version of The Unicode Standard was published after Haskell 1.0! | ||||||
|         
                  Kleidukos marked this conversation as resolved.
              Outdated
          
            Show resolved
            Hide resolved | ||||||
|  | ||||||
| So we accept that not only will change happen, it must. This leads to how I would describe stability: the ability to react to change in an informed and graceful way. With change as a given, we must be able to react to it. But the other parts are also extremely important. Change can be extremely disruptive. In the ecosystem, change might mean: | ||||||
| - industrial users need to spend time away from their employer's goals | ||||||
| - library and tooling maintainers have to adapt and support multiple paths, taking away from feature development | ||||||
| - academic materials might need to be rewritten | ||||||
| - any other number of issues that are difficult to predict | ||||||
|  | ||||||
| But we just said that change is going to happen! As such, _ecosystem stability_ is managing the *impact* of change as felt by all members described above . In order to reduce the negative impacts of change to the ecosystem there must be a graceful handling path, not a lack of change entirely. For example, deprecating something before removal. Another important factor here is the timing. Being predictable in change management means that the various groups can schedule work rather than being interrupted. This is why it is critical to be able to handle change as gracefully as possible. | ||||||
|          | ||||||
| But we just said that change is going to happen! As such, _ecosystem stability_ is managing the *impact* of change as felt by all members described above . In order to reduce the negative impacts of change to the ecosystem there must be a graceful handling path, not a lack of change entirely. For example, deprecating something before removal. Another important factor here is the timing. Being predictable in change management means that the various groups can schedule work rather than being interrupted. This is why it is critical to be able to handle change as gracefully as possible. | |
| But we just said that change is going to happen! As such, _ecosystem stability_ is managing the *impact* of change as felt by all members described above. In order to reduce the negative impacts of change to the ecosystem there must be a graceful handling path, not a lack of change entirely. For example, deprecating something before removal. Another important factor here is the timing. Being predictable in change management means that the various groups can schedule work rather than being interrupted. This is why it is critical to be able to handle change as gracefully as possible. | 
        
          
              
                Outdated
          
        
      There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a suitable place to provide links to the artifacts of this process. Is there a GHC proposal maybe or anything else?
        
          
              
                Outdated
          
        
      There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you possibly link relevant proposals / GHC manual sections? It would be great to demonstrate as many tangible results as possible.
        
          
              
                Outdated
          
        
      There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"contribute to Haskell Foundation" - do you mean to donate?
"several projects" - it would gather more attention if you list a few specific examples (potentially repeating yourself). Re-reading the previous section it's not immediately clear for me what is ongoing and what is finished.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would suggest this section to give direct answers to the following questions:
- Which mediums SWG uses for discussions? Presumably face-to-face meetings only.
- How can I follow SWG discussions without being a member? Presumably by subscribing to the GitHub repo updates to read the minutes and/or by reaching you by email (?) for a visitor pass to a meeting. Are there public archives of any related mail lists?
- How can I contact SWG? Presumably via its email (is it a public mail list? who is going to be recipients?) or via your personal email. Is raising an issue at GitHub repo an appropriate way to contact?
- How can I become an SWG member? Where can I find the list of existing members?
Apologies if this feels too forceful, but as much as I can gather from the tone of the post you'd like to increase community participation. It's better to provide a detailed and actionable step-by-step algorithm for anyone who wants to get involved.
Uh oh!
There was an error while loading. Please reload this page.