Haskell for another areas

Do you people have used Haskell for another tech areas? I’m building something with Haskell that uses Docker REST API and some cybersecurity ideas. If you have worked on something like that or not just Haskell-like projects (type libraries, effects and monad usages, y’know) feel free to share!

6 Likes

I have a cabal of packages supporting declarative binary format design, that grew from a reverse engineering project into standalone tooling, mostly coming together in binrep. Other than the type-level features (see Symparsec), it’s not particularly revolutionary, and can be compared to Kaitai Struct. But I don’t know of many similar projects written in Haskell. Being able to mix high-performance code with stringent typing and automation via generics is extremely powerful, and pretty much only possible in (GHC) Haskell.

8 Likes

My long-term plan is to use Haskell for game engine(s). Just cause. I know there will be significant limitations especially around the garbage collector but for me, it’s more the process of learning how to build fast, responsive and ergonomic tooling to make something as difficult and multidisciplinary as games and getting it “fast-enough”. 3 years ago, I knew nothing about any of this, so I’m very much figuring out my own way slowly.

Why Haskell? The language suits my brain and the way I like to reason about the world for the most part :slight_smile:

Otherwise, at $DAYJOB I tend to use it to make simple tools like document generators with tui/gui (using great libraries like lucid, gloss, HaTeX, brick). That make repetitive boring tasks, still repetitive but with a lot of the boring and tedious repetition stripped away.

7 Likes

Trying to learn a bit of Haskell on my own I have made a couple of things for myself:

  • A weblog engine with nntp interface (Lantern)
  • A time travelling usenet archive nntp server (olduse.net)
  • A small git-backed wiki (Sixpence - demo)
  • An ActivityPub server with nntp interface (Illuminant - my instance)
  • A webcalendar (Sundial - demo)
  • A command line tool returning a random signature from a long list (diva)
  • A command line tool doing a markov chain to generate tweets based on police-tweets (politisnak)

(If you’re detecting an nntp-theme, you’re not wrong :-))

At work I’ve snuck in Haskell in a couple of places:

  • LDAP (Microsoft Active Directory) command line lookup tool
  • Web link-shortener - using takeWhile notAlreadyUsed on an infinite list of random short URLs, yay! (vincent)
  • A small GitLab webhook to XMPP bridge (dweezil)

My Haskell code is basic and rudimentary and lacks finesse and understanding, but I’m having fun, which for me is the important part.

I tried reading a bunch of books; it didn’t stick, I seem to have to write some software I use to get anywhere.

I’ll learn about monads and stuff some day :slight_smile:

I have been thinking of going to eg ZuriHack, but it seems a little daunting to me.

6 Likes

I wish Haskell had a better distribution story. Go and Rust make it easy to create proper releases. Haskell imo is an equally good fit for the kinds of little tools people make with those languages, but it isn’t as easy to get a binary you can give everyone.

Haskellers do love to make libraries and abstractions and stuff, but tbh it’s a great language for making little fun things that work!

(Or maybe it is now and my opinon is outdated!!)

3 Likes

Kinda, I realize that some tools like cabal already give you easy ways to distribute a binary, then you just need to build a simple pipeline for production