Cooperatives to promote the use and development of Haskell?

Background
I am a software engineer with several years of experience with FP languages and have always been enthusiastic about Haskell. As I am interested in PLT and compilers I’ve had a couple of attempts to contribute to GHC solely on voluntary and free-time basis but as much as I’d like to, it’s been very hard to allocate any significant amounts of time being pre-occupied with work and extra-curricular activities. It’s also very recently that I found about cooperative enterprises (or coops) which are completely worker-owned and I’ve grown to think they might be one way of organizing worker enterprises around a common goal that benefits broader society without necessarily having to do it on a voluntary basis.

Why I think this might be a good idea
In very loose terms, how I understand it, I think coops resemble non-profit organizations in certain ways except that they are for-profit and people usually form them or join them to work and get paid.

Perhaps there’s people more familiar or even part of coops here so I won’t try to get into details but I think a coop (or multiple coops) that is organized around contributing to Haskell (whether the compiler, tooling, documentation) and promoting its use might be a way to get more people to contribute to Haskell full-time. I think certain communities are organized around this idea and work quite well. A very good example that comes to mind is Igalia, which are involved with JavaScript compiler technologies and open source tooling among many other things.

I am not saying something like Haskell Foundation should be a coop or replaced by a coop, only that if there’s like-minded people in the Haskell community who would very much want to contribute with their working efforts (writing code, documentation, etc) to Haskell but don’t otherwise have the time or the resources, they could consider coming together in a coop.

As to how this could be a profitable model - I think this could be done in partnership with companies and businesses that use Haskell already and would like to support development of core Haskell technologies but don’t otherwise have the know-how or time to do that by themselves.

So they would, outsource development efforts for say a project that implements a proposal or fixes a bug in GHC, or cabal, or something else.
Another thing that comes to mind is that perhaps such a cooperative could be involved in consulting work or be creating educational videos and courses to teach Haskell, and so on.

So what?
Well, I am only interested to hear if there’s other people who find this idea appealing or who would either join or support such a coop either with resources or knowledge. I am here out of love for the language and if I can make a normal living wage doing something of this sort and help others who might have similar aspirations, then why not?

7 Likes

Anything that gives something back to open source champions, volunteers and contributors is a good idea.

When I started, all I was thinking of is how awesome Haskell is and how I want to make a difference.

Today, my energy is much more limited (for various reasons). Getting paid does make a difference.

However, I’m aware that a number of key contributors are e.g. employed with strict contracts, so this type of arrangement only works for a subset of volunteers.


The other angle is that the Haskell Foundation could keep pestering companies to not just donate, but encourage their employees to contribute to open source, allow e.g. biweekly open source contribution days or other things.

This probably won’t work for the large banks that employ Haskellers and crypto companies like IOG/Cardano already excel in open source contributions.

Nevertheless, I’ve worked in startups where management had no understanding of the value of open source. A call from the Haskell Foundation CEO may have easily changed their mind.


The closest we have to this, I guess, is Well-Typed.

I’m not too familiar with the structure and workings of cooperatives. How would they differ from other consulting companies? How they hire?

I think the problem here is that lots of work can’t be easily monetized (e.g. work on cabal, stack or ghcup). So for-profit companies often look for funding, either through industry or the Haskell Foundation, at which point they may become a middle-man.

The downsides of for-profit I see are:

  • judgement is clouded by “for-profit”
  • they take a cut of the funding (compare Haskell Foundation paying someone directly for a Cabal proposal compared to paying the cooperative)

The upside is they have more resources for planning and execution, can account for contributors dropping out etc.

Funding a single person is always higher risk.

I’m curious to learn what the Haskell Foundation thinks of this and how such a symbiosis could look like.

7 Likes

A model that does not need coops but has the same outcome is this: Company X identifies the need for tooling or library Y, which does not exist yet. X contracts Haskell shop Z with the development and has Z release Y and any auxiliary libraries that were created on the way under a FOSS license and ensure a minimum amount of maintenance (review and merge pull requests). X and Z become co-maintainers of the project Y. If Y is to be company secret, the contract between X and Z includes a term that allows Z to release Y as open source 5 years after the contract between X and Z ends, if X doesn’t do so.

  • Company X gets what they want, namely Y
  • Company X profits from any contributions the community makes to Y once it is released
  • The developers in Z are in regularly paid jobs
  • The community gets Y as FOSS, sooner or later

My company has used this scheme several times and it has worked out quite well, since any Haskell shop or freelance developer can participate in this scheme. Does X makes a loss by publicly releasing Y? In our case the answer was no, since Haskell is sufficiently niche so that the danger of competitors using Y is low. Instead, we use Y to sell services that we could not sell without Y.

Haskell foundation could aid and promote this scheme by developing a contract template that X and Z can base their contract on, and which freelance developers can offer to companies X that don’t have an idea how to go about development of Y. In particular, HF could advise in which kind of FOSS license is most suited for this scheme.

2 Likes

@hasufell

Today, my energy is much more limited (for various reasons). Getting paid does make a difference.

Indeed, I concur. And oh how much I share the sentiment about startups not caring for open-source even though they make such extensive use of it. It’s a problem with the software industry at large to some extent though.

However, I’m aware that a number of key contributors are e.g. employed with strict contracts, so this type of arrangement only works for a subset of volunteers.

Yes, that’s my concern here as well. And the barrier of entry is too high imo. How does someone who has not much experience with compilers or tooling or the relevant project get into it unless they have lots of free time and energy to spend to learn and then keep doing voluntary contributions until an opportunity to work full-time on that comes up? I think how ordinary for-profit businesses solve that problem is with employing people with potential and investing in training. That’s not something most open-source projects (even a big project such as Haskell) can afford to do on non-profit basis.

I concur with pretty much all of your other points as well.

I’m not too familiar with the structure and workings of cooperatives. How would they differ from other consulting companies? How they hire?

I think a coop although well-suited for that, doesn’t necessarily have to be a consulting company or involved in consulting work at all. Ideally, if there was a coop dedicated solely to developing core Haskell technologies and it is fully profitable because it receives investment from people or businesses who have stakes in Haskell, that should work well, as well.

judgement is clouded by “for-profit”

I think a coop wouldn’t have that weakness to a great extent, being a one-worker, one-share, one-vote organization model. Every worker is paid for their work, salary is decided collaboratively, and any profits beyond that can be either used to agree on salary bumps or invested in things of interest to the coop. If I was in such a coop I would propose to invest in training willing contributors.

Hiring is done collaboratively as well, if anyone in the coop thinks more talent is needed they can pitch their proposal to everyone and decide from there.

For the theory:
Yanis Varoufakis, former minister of finance in Greece, talks about these concepts often, here’s an ongoing debate that I found interesting:
Envisioning a postcapitalism worth striving for: an ongoing debate between Michael Albert & Yanis Varoufakis - mέta (metacpc.org)
I think some of his ideas come from his experience working at Valve.
Although Yanis’ perspective is that of a socialist economist and is trying to imagine an entire post-capitalist economy here, I think the ideas he puts forward are practically solid and many coops in existence today function along those lines.

4 Likes

@olf

I don’t know all the details of course, but I like the model that you mentioned and I think promoting this scheme has merit.

I think my only objection to that is that this is still done on a best-effort basis and is weak on cohesion. The coop model does all that you mentioned + has the interest of being contributors to Haskell as the leading vision (or business plan) and can make investments/organized efforts around that.

Full support for more cooperatives using and promoting Haskell! That’s the spirit of open-source!

8 Likes

True. The advantage over coops, though, is that my scheme works without founding new organizations.

Don’t get me wrong, I’d love to work in a coop, but you’d have to present a realistic, reliable stream of income for any senior developer to work there. Funding from charities, government projects or large corporations can dry up from one day to the next. I’d not want to base the income of my family on that.
Responsible for-profit companies beyond a certain size would just shift their business model while keeping the staff, if shaping the Haskell ecosystem turns out not to produce the desired turnover. Staff then can choose whether to leave for greener pastures.

Why not start by examining who currently is funding Haskell organized efforts, then see whether any of that can be diverted or converted into the coop model. While I don’t have a complete overview myself, anecdotal data points suggest that some sufficiently large corporations acquire outstanding developers by letting them work part-time on community projects such as Haskell. Some of the most well-known names in our community, e.g. SPJ, Richard Eisenberg, Conal Elliott, all have been employed like that.
In a way, such employment cat be fit in my scheme where X becomes the sole employer/owner of Z.

1 Like

Ehm, haha.

Those are not regular senior developers. I’m pretty sure they can just tell their employer the terms and that they’re going to spend time on Haskell either way.

I doubt many people have such an arrangement and I doubt many companies will consider that.

I’m not sure I follow.

5 Likes

Spot on. Following that line of thought means only people with that kind of credentials can be contributing to Haskell and get paid for it. It doesn’t sound sustainable in the long term and a project like Haskell remains closed-off to people who love the language and the ecosystem but don’t have the means to get there. Arguably, that’s a problem with our wider economy but it’s not all hopeless as there’s similar efforts that seem to be working well.

I think Haskell’s strength here is that there is so many people who are truly enthusiastic about the language, and for a good reason. They all found a technology and a human community behind it that they share a vision and values with it; I think people who see a programming language as just another tool forget that it is not necessarily the tool as a reified object but the philosophy and the intentionality behind it that is so appealing. Now, we all know that Haskell could be more user-friendly and beginner-friendly and we are aware that the ecosystem has many weaknesses (some are actively addressed, however) that many other more popular languages don’t have. If more people in the community were not only encouraged but given the means to contribute we might be seeing a much more mature ecosystem.

I am not saying getting together in a coop is without its challenges. It is partly my disillusionment with corporate IT businesses that led me to seek answers in coops yes, but I am far from becoming anti-IT yet. I think there’s much value in open-source even if today’s state of open-source is frankly, fragile. We need to think of ways how to address some of the issues that go beyond the current models.

4 Likes

Maybe just not enough developers have tried to negotiate such terms? There is a world-wide shortage of good programmers, so companies will have to go to some lengths to acquire the talents they need.
Further, there is a difference between being enthusiastic for the language and understanding it well enough to improve its compiler or tooling. Coops won’t change that and it does not need a coop (but perhaps an effort by the Haskell foundation) to lower the barriers for entry or train developers to be able to contribute. Don’t you think? All in all the GHC devs have done a great job at documenting their work, but I would not dare messing with it despite having a PhD in theoretical computer science.

1 Like

I am not sure. Making contribution easier is currently a full-time job at GHC (HF devops).

Other projects are in a similar state, where volunteers effectively have to weigh time and energy vs return. Spending days on CI or meticulous contribution documents may draw the short straw against implementing a feature, making a bugfix release, etc.

Doing heavy CI work, creating good documentation, making a codebase more modern, etc. are all things that are pretty expensive, that a coop could potentially do.

Why do you feel you wouldn’t dare messing with it?

2 Likes

I would challenge that. If startups just about anything someone had an idea for can pop up out of nowhere and convince people to buy their products that no one before thought were needed or necessary, why can’t people come together in a coop and organize around making GHC or any other project better? Isn’t that the beauty of open-source, and of free markets? I don’t see anything that would prevent this from working bar the challenge of creating a profitable model (which I don’t think is completely impossible to find a solution for, either).

I agree. Which is why I would rather be working a job where my main responsibility is working on GHC :grin: rather than on any commercial closed-source software project.

1 Like