First real Haskell project

Over the last weekend I started writing my first real Haskell project. It was high time to start attempting to tie all the pieces together. I did struggle for a while to come up with ideas for a Haskell project. Initially I was thinking of doing a web app but eventually I just decided to build a raytracer as it's a domain I understand very well having spent several years in visual effects.

So far I've written some of the math code and a couple of other random things which turned out to be a very illuminating exercise.

I am absolutely in love with Haskell! It is the most expressive language I have used by far! The strong typing is a dream to to use in comparison to the Javascript/Typescript I write during my day job. I could go on and on about how great the language and the tooling around it are, but that's all planned as a series of posts.

As I develop this project I will write about the interesting things I learn as I attempt to solve problems along the way.

I have a vague idea of how I see this project in the long term. It's going to be a raytracer with a fair number of features. Probably just implicit shapes to keep things simple. Keeping the maths fairly simple as well by focusing on just the bare minimum but still written in such a way that presents interesting problems that needed to be solved (I will write about these in due course).

For the time being I'll write the main code in Haskell as a standalone app. Once I've added a fair number of features and decided that I've reached the point where the project is no longer giving me useful problems to solve from a functional perspective I will then refactor to turn it into a server app. I will then write a Purescript frontend to send rendering data to this server which will send rendered tiles back for display in the browser. That's more or less the long term plan I have in mind, and it should present a pretty good opportunity to build a client-server application using pure functional languages!