Cabal's been fundamentally redesigned to have "Nix-style" builds. This has solved most of the problems I remember encountering with the tool. These days, I only have issues when packages have incorrect or incompatible version bounds on dependencies.
Tooling has improved massively in general. ghcup can install and manage versions of Cabal/Stack/GHC/etc automatically. The Haskell language server provides reasonable editor-agnostic IDE functionality; I've been using it for a while now and have found it to be useful and solid.
The language itself has had a bunch of small quality-of-life improvements. The foundation still feels the same—not a major change like jumping to dependent types or something—but lots of rough edges have been sanded off.
I've been using Haskell for over a decade now and I'm very happy with the progress of the language and the ecosystem over the last several years.
Comments
Cabal's been fundamentally redesigned to have "Nix-style" builds. This has solved most of the problems I remember encountering with the tool. These days, I only have issues when packages have incorrect or incompatible version bounds on dependencies.
Tooling has improved massively in general. ghcup can install and manage versions of Cabal/Stack/GHC/etc automatically. The Haskell language server provides reasonable editor-agnostic IDE functionality; I've been using it for a while now and have found it to be useful and solid.
The language itself has had a bunch of small quality-of-life improvements. The foundation still feels the same—not a major change like jumping to dependent types or something—but lots of rough edges have been sanded off.
I've been using Haskell for over a decade now and I'm very happy with the progress of the language and the ecosystem over the last several years.