Live data from Hacker News

2021 State of Haskell Survey

haskellweekly.news

21–23 of 23 posts

Re: 2021 State of Haskell Survey

#21
post #18

Earlier quoted context omitted.

> You've never compiled GHC from source? How long does that take on your machine? I have, but the point is that I don't have to, because there are transparent distributed builds in Nix that I utilise when I want to compile something big, as you say "real-world", fast. I split software into many small self-contained packages and delegate the work of compiling it all to remote machines configured for faster compilation…

Haskell is the only language where you seem to need Nix. That alone make a big difference for people trying to get into Haskell. I'd say it's also the only language where you seem to need dev-infra tooling. I can see how using Nix helps, but saying that "it's already solved on other level of dev-infra tooling" is basically a way to confirm "This language has some of the worst tooling I've ever encountered in my life.…

> Haskell is the only language where you seem to need Nix

that's not true, at least not in a larger context of available languages. There are C, C++, and a few other emerging language environments such as Mercury and ATS that can benefit from the same Nix toolchain right now, and their maintainers don't have to re-invent the wheel of packaging and distribution, as Nix solves that for them in a generic way.

> is basically a way to confirm "This language has some of the worst tooling I've ever encountered in my life."

For that you need to define criteria that allow you to identify the "worst" example. It is going to be the worst if you expect a monolith all-included distribution that has its own implementation of the same generic dev tooling approach (reproducibility, tracking of dependency sources, versioning etc), such as Rust Cargo or Go Modules. But these criteria won't match with the world where I see every software component to be a generic build instruction that Nix manages to provide regardless of the underlying language compiler.

Re: 2021 State of Haskell Survey

#22
post #18

Earlier quoted context omitted.

Haskell is the only language where you seem to need Nix. That alone make a big difference for people trying to get into Haskell. I'd say it's also the only language where you seem to need dev-infra tooling. I can see how using Nix helps, but saying that "it's already solved on other level of dev-infra tooling" is basically a way to confirm "This language has some of the worst tooling I've ever encountered in my life.…

> Haskell is the only language where you seem to need Nix that's not true, at least not in a larger context of available languages. There are C, C++, and a few other emerging language environments such as Mercury and ATS that can benefit from the same Nix toolchain right now, and their maintainers don't have to re-invent the wheel of packaging and distribution, as Nix solves that for them in a generic way. > is basic…

> that's not true, at least not in a larger context of available languages. There are C, C++, and a few other emerging language environments such as Mercury and ATS that can benefit from the same Nix toolchain right now, and their maintainers don't have to re-invent the wheel of packaging and distribution, as Nix solves that for them in a generic way.

Fair point, though Haskell seem to be the only language where Nix is the accepted solution to packaging and distribution.

> For that you need to define criteria that allow you to identify the "worst" example. It is going to be the worst if you expect a monolith all-included distribution that has its own implementation of the same generic dev tooling approach (reproducibility, tracking of dependency sources, versioning etc), such as Rust Cargo or Go Modules. But these criteria won't match with the world where I see every software component to be a generic build instruction that Nix manages to provide regardless of the underlying language compiler.

That's a reasonable point of view to have if you already know Nix. Most people don't, so they see Nix as Haskell-specific, except it's not and you now have to learn a general tool which usually takes way more time than learning Cargo or Go modules.

The point is that embracing Nix makes the learning curve of Haskell way steeper currently, especially when you also have GHC, Stack and Cabal. Maybe it will pay off in a few years when everyone uses Nix, but that's not the case today.

Re: 2021 State of Haskell Survey

#23
post #8

Earlier quoted context omitted.

> I could go on and write you novels about it, and if someone really wants to know I can provide a massively detailed, exhaustive list with logs, screenshots, Github issues, etc. Hello, yes, I really want to know! I am on the board of the Haskell Foundation and improving developer tooling is likely to be one of our focus points in the near future. User experience reports will help us make progress. My email address i…

Wow, very surprising answer. Will genuinely take you up on this, and try to condense things into an easy-to-read list =)

Thanks, looking forward to it!
Post reply on HN