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?