How is the NixOS community different from the Haskell community?

A lot of people here are active both in the Haskell community and the NixOS community. In fact, there are some striking similarities between the projects:

  • Research language gathering a larger user base, going in the direction of main stream
  • NixOS is 2 decades old, Haskell 3 decades
  • Big open source community, a foundation, some different companies working with it and contributing
  • Functional programming as central tenet
  • Not really mainstream, but with reputation. “Just about” to be hopefully widely adopted.
  • Many highly skilled & gifted enthusiasts in the community adding fantastic new things
  • Core language well designed & researched, additional tooling, docs, ecosystem etc. added later, carrying historical baggage
  • Tension between breaking changes (think flakes, GHC versions) and stabilization

(These are all my impressions, I may be wrong about some points, and am eager to be corrected.)

Yet with all these similarities, I usually feel a different vibe in the NixOS community than in the Haskell community. To be completely honest, I have the feeling that in the Haskell world, the overall mood is better, and the community is not as divided as it is in NixOS. I want to know how you see the differences between the communities, what the causes may be, and how it affects your contributions. Let me get the conversation started by listing a few differences I notice.

  • While in Haskell land there are also many different organizations (the foundation, GHC team, core libraries committee, haskell.org, etc.) I have the impression that they pull more or less in the same direction, more so than in NixOS land. In particular there seem to be a lot of new features and resources being contributed in an unconcerted way by individuals and companies. Does the Haskell foundation a better job of coordinating and connecting different factions than the NixOS foundation does?
  • In nixpkgs, nearly everyone contributing in the community works on the same huge monorepo. This creates quite some tension as to coding styles, review workflows, code organization & ownership and so on. In Haskell, GHC is a big project, but only a fraction of the community contributes, while the majority works on their own libraries.
  • Quite a few announcements on NixOS discourse in the past months seem to have caught even deeply involved community members completely by surprise, or at least disappointed them a lot. (E.g. Introducing FlakeHub - #3 by Infinisil) This creates the impression of different factions in the community just moving around without knowing the needs of others. I don’t remember similar events in the Haskell land, but that may also be my selective filter.
  • Haskell is not much older, but it is 10 years older. Maybe it is in the process of getting past its “community puberty phase” (think stack vs. cabal, foldable/traversable, text utf-8 coordination) and the NixOS community is just right in the phase?

What similarities and differences do you see, and what do you think is the cause? And what should one community learn from the other?

1 Like

Interesting question!

The nature of the technologies is different. Haskell is a purely functional declarative programming language, the ecosystem is a set of libraries, frameworks, and helper tools – Nix is a tool to use file system data like values in a dataflow language, and Nixpkgs and NixOS are to some extent essentially a formalised knowledge base about open source software.

The Haskell Foundation has a lot more resources they can freely allocate (AFAIK on the order of ~500k EUR/year vs. ~50-100k EUR/year) because they have a professional, full time executive director who spends a lot of time on fundraising.

I suspect that because Haskell is older and there has been an FP community since the 1960s, Haskell had more time to attract companies who to invested in the ecosystem and make money using it, and which therefore have an interest in it thriving. The executive director certainly helps with fostering such relationships. Nix also has a similar type of commercial investment, but not at that scale – yet: Nix being a potentially very general, generally useful tool and ecosystem should in theory get it a lot more adoption in the long run, and the foundation in theory could have an executive role to coordinate resource acquisition and allocation to focus development in particular areas.

The Haskell Foundation also has a much larger board, which makes some things harder. The Haskell user base and contributor community seems to be much larger, and, as you write, more decentralised.

2 Likes

Nixpkgs is beholden to both upstreams and to platforms in a much deeper way than Haskell. This can create weird trade-offs that are even more divisive than whatever arises in a more self-sufficient ecosystem…

1 Like