Who is your unpaid hero?

In a globalized world with large differences in compensation, but more specifically also in the light of the XZ supply chain attack, I think the HF is really interesting, for example because the HF is now supporting the Botan binding development. The HF exists in a weird hybrid world of unpaid and paid work.

I think the open source discourse would be served by acknowledging what kind of unpaid work is getting contributed. Just by enumerating the work, I am hoping we could evolve in this discussion and get to a point where the Haskell culture is at least documented, even if it is still possibly ‘unjust’. Whatever that means to you, it being unequal exchange or something less politically flammable.

It’s a bit ironic to me that stackage lives in an org named ‘commercialhaskell’, but I would bet that almost nobody in the community knows how Stack came to be, and whether that is actually more
‘commercial’ than for Cabal’s case. As far as I know, Mikolaj is paid by Well-Typed to work on Cabal development, but nobody is paying Mike, even though Stack is supposed to be the ‘commercial’ one. Is that even correct?

I was at one point myself offered to be a Stackage curator. I declined because of questions like these. I visit the Stackage repo all the time, in a kind of obsessive way. I feel a little dopamine boost when I get the reverse dependencies of a library updated such that Stackage can upgrade, or a disabled package can be put back in. I am not sure how curation is managed, but let’s say the curators take turns and there is only one on call in a given week. I declined because I didn’t want my Stackage contributions to feel like a job. I already have a job. But let’s say curators were paid 10 USD/week. Would that be a ‘courtesy’? Would that mean worse curation? Better curation? Is 10 USD an insult? Is it better than 0 USD? Does the HF have that kind of money?

Imagine you’re an extraterrestrial sent to earth, and you have to guess which Haskell projects are funded, and which are not. Can we agree that this ET would have a hard time guessing correctly?

Because these questions are so hard, I can imagine some might prefer to not tackle them. But can we at least appreciate each other’s unpaid work then? Let’s say you had to name one person that isn’t in this thread. Who would it be? And do you think there is a way to have the HF sponsor their work? Or is that somehow just not possible?

24 Likes

Yes, I am a fan of @mpilgrem too. Long running projects tend to require people with a very structured, analytical approach, who can drill down into issues and debug and find solutions independently.

These days I value good maintainership more than new hot code. Mike does an excellent job there.

But I’m afraid I can’t just stop there and have to list a couple of other folks.


@Bodigrim as CLC chair, bytestring, text, etc maintainer, helping out with unix, filepath and random other things I keep pinging him about. I have no idea how he achieves that time management. I don’t know many people with such an eye for detail.


@angerman with whom I share a lot of engineering values and who has been relentlessly driving various community initiatives (e.g. GHC stability), manages GHC Gitlab and github runners for free and fixes issues even when I ping him on a sunday evening.


@Kleidukos for a great many things I won’t be able to list all. The closest we got to some sort of “community manager” I sometimes feel.


@fendor for being an incredible coder, who just jumps across Haskell tooling projects and fixes stuff everywhere.


Surely, there are many more inspiring Haskellers that do unpaid work all the time. But I’ll stop here, otherwise it will degrade into a long “thanks all” list.

The above are just some of the people that I run across frequently and whose spirit lifts me up as well (among others) and helps me to keep going with the sometimes unforgiving work that opensource can be.

28 Likes

I like to think of the Haskell community as a gift economy, rather than a transactional economy.

In a transactional economy, you pay for what you get, and you do what you are paid for.

In a gift economy – in software terms, an open-source project – you share freely in the good things that other people do, and you offer the good things that you do, freely to others.

There can be transactions within a gift economy. For example, a company may pay someone to get something done, but then offer the fruits of that work freely to the community. That’s still a gift!

Gift economies are vulnerable to the tragedy of the commons. One version of the tragedy is simple exploitation: people use the fruits of the commons, but do not give back. But even if everyone has good intentions and wants to help, the tragedy can happen: it may be that no single person/organisation has the capacity to do boring-but-useful job X, and yet the lack of X hurts everyone, and the sum total of that hurt is much greater than the cost of doing X.

In addition, the Haskell ecosystem has reached a scale where it is difficult for individual volunteers to sustain it. We need to be a bit more organised.

That’s where the HF comes in. It can identify priorities, and execute on them; perhaps just by coordinating volunteers, but perhaps also by seeking contributions from willing donors, and paying someone to do X.

My personal benchmark is this: if a company is paying 20 full time equivalent Haskell programmers, it would be good to budget the $$ for one FTE (5%) to contribute back to the commons. After all, the team is presumably relying in a mission-critical way on the Haskell ecosystem – and it comes for free! If you had to pay for it, it’d cost a lot more than one FTE’s worth. The HF is a great conduit for this. Instead of spending time thinking which project or task is most worthy, the company can just give $$ to the HF, and trust the HF to deploy it wisely.

If all Haskell users did this, we’d have a well resourced ecosystem.

Imagine you’re an extraterrestrial sent to earth, and you have to guess which Haskell projects are funded, and which are not. Can we agree that this ET would have a hard time guessing correctly?

That may be so. But I don’t regard as a weakness. In a gift economy, who has paid for something isn’t so important. What is important is the collective will to get stuff done, and to contribute freely towards those shared goals.

Simon

43 Likes

I’d like to add someone to this list: @hasufell, specifically for initiating the GHCup project, continuing to maintain it, but also in general for being a constant advocate and driving force for good engineering and open source development practices in the Haskell community.

25 Likes

I agree with this. Encountering Haskell revived my love of programming, after I had felt I was burnt out on it. It opened the way to new vistas of knowledge, new career options, and new friends. The open-source work I do for Haskell is my way of giving back and helping along something that improved and changed my life in so many ways.

I don’t think we can sustain ourselves on that energy alone, or that everyone who uses or benefits from Haskell necessarily has the time to give back all they would like or we would need, but I also think that the substrate of Haskell development seems to be built on a lot of people with a lot of experiences like mine, and it is amazing how far that has taken us already.

16 Likes

In addition to the other individuals listed here: all the moderators, here on Discourse and elsewhere in Haskell-space. As I noted here, it takes someone with particular characteristics to be a moderator for the longer term…

7 Likes

Seconded. And those who patiently answer newbies’ (and not-so-newbies) questions on Stackoverflow and Discourse.

Yes, mine too. In particular helped me connect real-life program code to abstract concepts of ‘pure’ computation.

I feel sad to report that feeling has gotten jaded over the past 7~8 years. Increasingly, GHC Haskell is adopting all the characteristics of the programming languages I hate [**]. So whoever’s responsible for the current direction of GHC (paid or not) is not going to get any votes from me.

[**] As a commercial programmer, you accept whatever language your employer imposes on you. And they’ve chosen it for a long list of reasons nothing to do with the attitude of the programmers in the engine room. Loving it or not is a luxury programmers shouldn’t indulge in. So I’m speaking as a commercial programmer but amateur Haskeller.

I second that and I often think that the scarce resource in open source isn’t so much time or ideas, but energy.

I guess there are things we can do to not sap each others energy needlessly. But it can be tricky, when e.g. fundamental ideas are discussed.

That has lead to some principles I apply to my own open source projects:

  • discuss ideas early and very frank, so that contributors don’t accidentally “waste” time on something that gets rejected later
  • don’t manage contributors: if they already know what they want to work on, let them execute, even if you think cost benefit ratio isn’t very good
  • have discussions proportionate to the risk: decisions that are easily reversible and don’t have large impact shouldn’t need a lot of bikeshedding.
  • focus on architecture and logic during reviews, don’t comment on style and formatting
  • react quickly to pull requests and issues, even if it’s just “I won’t have time to look at this for a couple of weeks”. It can be frustrating to not get any response for weeks and often leads to motivation dropping out.

I’m curious to hear what others have experienced while managing their own energy and trying to create a good contribution experience.

14 Likes

Thanks @hasufell, a good question and thought-provoking guiding principles. Could I suggest that discussion goes on in a new thread, rather than sidetracking from crediting "unpaid hero"es.

1 Like

When someone gives you a gift in the physical world, you usually thank them. But we very rarely thank the people who contributed to the software that we use! So I think this thread is great. But I wish we did it even more. If 50 people depend on your Hackage package, that is just a number, and certainly doesn’t feel like it would if you had spent that time making a delicious meal for 50 visibly happy and grateful people. And a core project like Stack is used by hundreds or even thousands of people!

So perhaps I would add to @hasufell 's principles: when you communicate for the first time with the maintainer of a project (on chat, or opening an issue), consider thanking them for their work. (I don’t do this enough, but I am resolved to try more.)

18 Likes

As the person working on those botan bindings, it would be lax of me to not comment :slight_smile: I don’t always say much, my mind is usually engrossed in the code, but I appreciate the call-out.

Every little bit helps, be it funding or feedback or a simple thanks - even just letting me know that you cared to check out the work that I’ve been doing. It all really keeps the project going - community feedback as much as funding.

It may surprise some, but I have absolutely no clue how many people are using the resulting library, and so I am always pleasantly surprised when someone out there has been paying attention enough to let me know it.

Don’t hold back on letting people know that their work is being seen, and used. Give if you can, heart and comment if you can’t - but do something to let them know, because it helps keep the passion.

6 Likes

@LeventErkok 's SBV package is a gem of software. I’m not aware of anything like this library for other languages.

10 Likes

@daylily 's cleff is by far my favorite effects library. The care, taste, expertise, and elbow grease applied to it shine through.

4 Likes

I’ve used ad, lens, linear, recursion-schemes and free quite a lot (often in conjunction), and learnt a huge amount just by understanding how they work. All by Edward Kmett, I think.

9 Likes

I’m very happy this thread was made!

I’ve only been ED for three months and one thing that has become crystal clear is that the Haskell Community is built on a foundation of time and energy that is freely given.

Every aspect of the modern Haskell experience is touched by this: from first getting a Haskell environment via GHCUp and using Hackage (volunteers do that!), to developing with Cabal/Stack/HLS, to the moderators of the Haskell Discourse/Subreddit.

Some are fully volunteer, some are supported for some aspects of what they do, but volunteer and provide resources beyond that. Both modes of operation are gifts to the community.

There are too many to name, but I do want to echo that in my short time at the HF that @hasufell and @Kleidukos have put in a tremendous amount of energy into the Haskell ecosystem (I agree with @hasufell that energy is the prime resource in open source communities).

There’s also a lot of behind-the-scenes work that matters a lot and often goes unacknowledged: @sclv helps in many areas and has helped me get my bearings.

The entire TWG helps us better direct our resources.

The Security Response Team does a lot of background work that helps us mitigate known security issues.

The Haskell Foundation and Haskell.org boards put in a lot of time, all for the reward of having to attend more meetings.

Again, too many to name. Everywhere you look, there are people making it happen simply because they want to make it happen. We’re very lucky to have these people in our community.

I’ve been toying around with having a “Get to know a volunteer” section of the HF monthly updates, I’ve even asked a few folks for blurbs. This thread has assured me that this is a good idea. The monthly report I’ll release today will have the first one.

21 Likes

Great thread! Here’s a few more:

@geekosaur for consistent calm knowledgeable support in multiple chats, and keeping IRC and Matrix communities connected.

John MacFarlane for extraordinary service to documentation (not just Haskell’s) and to Haskell’s “real world” reputation (pandoc, commonmark, gitit and more…)

Mark Karpov for the well-maintained, well-documented, production-ready megaparsec.

@snoyberg and his helpers for prolific high quality writing, tools, services and maintenance aimed at helping Haskell thrive (yesod, conduit, stack, stackage, more…). I’m sure some of this was unpaid.

The writers and curators of the Haskell wiki[/book], core haddocks, and other documentation.

[+1 for Neil Mitchell! cmdargs, ghcid, hoogle, Shake, & more]

15 Likes

I would definitely add to the list Neil Mitchell and Stephen Diehl. When considering also past contributions, Don Stewart was a superhero in my eyes.

12 Likes