upvote
I know that. Bumping GHC can still be relatively painful. Some language stacks are meaningfully easier on dependencies (not you Python), but can give you some other headaches (yes, you Python, damn you). Every PL in one way or another has some warts and ugly parts.

It seems the job of a senior software engineer these days is to make fun of programming languages on HN pointing out their flaws, while simultaneously keeping an eye, waiting on agents doing "thinking".

reply
whoa buddy, i'm a senior eng but i don't wait on agents. ew!

i could probably do my job and get passing (or better) perf reviews using nothing but fundamental-mode and the compiler.

reply
> i don't wait on agents. ew!

You're conflating "what I do" with "what my job is." A bunch of my friends and colleagues are literally getting paid and forced today to use agents. There's no break from it unless they quit their jobs. I'm not saying I'm eagerly content and happy with this bullshit, alas, it is what it is.

reply
I only use Haskell in hobby projects outside of work but somewhat regularly run into problems with package bounds causing conflicts or forcing some project on to an older GHC than I'd like. It's not cabal hell since its confined to one project and not system wide, but it's definitely a pain point.
reply
so Go has the same issues in my experience. but instead of "solver failed" you get compilation errors. I definitely had to fork a nontrivial amount of Go libraries to maintain my startup's backend.

"solver failed" is in theory a better error. it fails faster and is unambiguous. maybe because it's weird it is scarier? idk

the main issue is managing PVP bounds is a little hard to keep correct. but cabal also lets you "allow-newer" for duct tape.

reply