Hacker News new | ask | show | jobs
by antonvs 18 days ago
Part of the issue is probably that Haskell build performance is perfectly fine for local development, even on rather large systems.

But in commercial production environments, CI pipelines tend to want to build everything from scratch every time, and that slows everything down. Rust has the same issue. Both languages, by default, compile all their dependencies from source, rather than obtaining precompiled artifacts from a repo the way some languages (like Java) do. And their compilers are slower than e.g. Go's. As the article mentions, various kinds of caching can help with that, but that's extra stuff you have to manage and deal with.

I'm not sure this is a bad thing, though. Haskell co-creator Simon Peyton-Jones coined the unofficial Haskell motto, "avoid success at all costs". I tend to agree with that. It would be difficult for Haskell to maintain its conceptual edge if it were a mainstream commercial language.

1 comments

The thing I hate about rust is that compiling a small app immediately creates 100gb of junk, and that junk doesn't live in the responsible project's folder, and that junk doesn't get cleaned up by anything.
You're exaggerating quite a lot. Biggest I've seen the cargo directory after 3 months of active Rust development was ~17GB.

You can also limit it with an env var. I have capped mine at 10GB.

I’m at 227GB as I write this.
Super curious then, and I stand corrected.

You can put the `cargo clean gc` command on a daily/weekly schedule then, or configure the `gc` option in your Cargo config. Or set `CARGO_UNSTABLE_GC=true` in your shell init. Or all of the above.

PLEASE_UNBREAK_ME options should default to on; people who actually work on rust code are quite capable of turning it off when they configure the rest of their environment.
I don't disagree. I can only assume it's defaulted to off due to many people working on big codebases and there constantly evicting cache would objectively slow them down. But, far from ideal for everyone else.
Had no nuke the `target` folder a couple of weeks ago, +400 GB ...
Many rust nightly versions + no clean / sweep / clean-all?
Just the one version, but lots of test builds in quick succession.
“Linux System Requirements: 3.2MB [+ 17GB the first day]”