Evolution of Haskell

Hello everyone,

I followed Haskell for several years with the arrival of Yesod, Servant, Scotty, Shelly, Lens… then I moved away for maybe three years. Today I’m looking at the evolution and I have the impression that not much has changed or that projects are only progressing with “minor” corrections. I don’t see anything about AI when I think the language would have its place. Am I getting the wrong idea about the evolution? What happened in the last three years? :slight_smile:

4 Likes

Here’s what comes off the top of my head:

  • The toolchain problem is solved thanks to @hasufell and GHCup
  • GHC performance improvements, thanks to @mpickering and others
  • A new powerful debugging tool, ghc-debug
  • Much better experience when contributing to GHC, though there’s plenty work left to do
  • WASM and JavaScript “backends” to GHC (meaning GHC itself can compile Haskell to WASM or JavaScript — though they’re still in development)
  • Cabal multi-repl support coming soon, solving a major pain that has afflicted me for a decade (you will be able to load the lib, exe, and test components of a package in ghci/HLS at the same time!!)
  • GitHub - haskell/security-advisories
  • This forum has gotten busier
  • The Haskell rooms on the Matrix network have gotten busier
  • Concrete progress made towards protecting base from backward-incompatible changes to GHC’s internals, which will eventually make it easier to support older Haskell programs
  • haskell-language-server just works, thanks in part to the toolchain problem being solved.

I work in/adjacent to the GHC team, which is why this list is skewed the way it is. :slight_smile: Maybe people working on end-user products and services would know more about libraries on the edge of the ecosystem.

22 Likes

Amazonka had its 2.0 release, if you’re into that sort of thing.

6 Likes

We’re on the plateau of productivity now!

5 Likes

Time to have fun again! :smiling_imp:

Thank you for taking the time to reply. I’ll look into it carefully.

Active Group in Germany has put Conal Elliot’s Compiling To Categories plugin and automatic differentiation into practice and built a deep learning tool for Siemens. (source)

3 Likes

In the Clojure community, this counts as an advantage. I also prefer it when the libraries I use are mostly stable. The new stuff can then happen in new projects. The downside is that to build something bigger, you need many small libraries. I know some people prefer to work with one larger framework instead, like Rails, Phoenix, Angular, React, etc. In these cases, not seeing regular progress is not a good sign.

About AI: I’m currently learning PyTorch. PyTorch has a Python interface, but the tool itself is written in C++. Maybe that’s also a route Haskell could go, i.e., providing interfaces to AI libraries that are optimized for graphics cards like CUDA, Metal, etc. instead of implementing the library itself in Haskell.

I’m also curious about AI use cases where Haskell would shine.

5 Likes

There’s HaskTorch :woman_shrugging:

1 Like
  • Haskell-related job postings have increased.
  • Haskell is more widespread in real world applications these days, and less of a cause for amazement.
  • A well-regarded global blockchain built in Haskell has raised Haskell’s profile outside the programmer/CS communities.
  • VS Code+Haskell extension+HLS is good enough now that programmers used to IDEs can do Haskell.
  • Performance-related tools and how-tos, as well as practical books for software engineers, have increased.
  • The Haskell Foundation, and corporate funding for Haskell, have grown (quite a lot ?)
  • There’s an excellent regular podcast, the Haskell Interlude
  • Stackage is now managed by the Haskell Foundation, and stack is one of the core haskell dev tools installable by ghcup, like cabal and ghc. Both stack/stackage and cabal/hackage have active chat rooms now and both tools are reasonably well accepted/tolerated by most people. The “wars” are over!?
10 Likes

I can’t emphasize this enough.

There has been a lot of work on that front:

These have been realized in collaboration with the GHC steering committee, the core libraries committee and other contributors.

I’m not sure we have had that big steps before when it comes to stability.

10 Likes

This is a big deal - when I started using Haskell, trying to get someone to try it out consisted of hoping that they could get ghc and the appropriate versions of libraries installed - a hell so infamous that we coined the term ‘cabal hell’ for it - but now I can just tell them to install ‘ghcup’ and they’re mostly good to go.

The ease of installation and increased stability over the past few years has been a huge boon for adoption that cannot be understated - there is even now an online playground for the curious; https://play.haskell.org/

I remember what it was like before we had such concerted efforts, and the work that the steering committee and implementers have been performing has been essential to this change. They have my most sincere thanks.

8 Likes

vty supports windows these days! in case you’re interested in building cross-platform tui.

9 Likes