Status update
At the start of May, I embarked upon learning Haskell - my first functional programming language. You can read more about what led me to this decision in my previous article. Now, almost 20 days in and about 800 hundred pages in the Haskell book, I feel re_ju_ve_na_ted. I’ve managed to stick with about reading one chapter per day and I’m still super excited! It’s been years since I solved math exercises on paper which was also a rewarding feeling. Kudos to the book for asking you to do so.
I have to comment that there were points where the book introduced some concepts and symbols without much explanation. I try to do every exercise so finding out things that are there that I cannot practically solve with the so-far knowledge was a bit frustrating. Having the solutions open and not wasting the whole day on each exercise was a good choice overall.
So far I’ve covered some basic theory around types and the Semigroup, Monoid, Functor, Applicative and Monad (wow) chapters. I feel I’ve grasped the ideas but I cannot say that I feel familiar enough to create something with them. I can solve the exercises but the mental leap is still too big. That was to be expected though, I’m here for the grind.
What also seems very interesting to me is the ecosystem around Erlang. While dipping my toes into the functional world, it seems like the world of Erlang, BEAM and the Actor model have truly remarkable things to showcase about software architecture and design. Sometimes I struggle to keep my excitement intact so that I can learn about all of these technologies in a meaningful manner so that I do not get overwhelmed.
I want to mention also the incredible podcast of Kris Jenkins called Developer Voices. Kris and his guests have been amazing companions when I don’t work or study about Haskell these days. Incredibly insightful talks, very exciting and pretty much foreign subjects to me. I cannot recommend this podcast enough. So episodes I highly recommend are:
- Designing Actor Based Software
- Simon Peyton Jones, no description is needed here
- Roc - A functional programming language by Richard Feldman
- Is Gleam your next programming language
Roadmap
My current roadmap regarding FP is to:
- Finish the Haskell book
- Rewrite my chat application, Boochat - this app used a hybrid approach of event sourcing. I aim to rewrite it with some functional language, probably Haskell, and adjust it into a fully event-sourced model.
- Recreate the web UI of Boochat. I aim to use Rescript with my port for it, using The Elm Architecture
After I’m done with the above I’m considering to maybe diving into BEAM, probably through Gleam, which also seems like a very interesting project.
It’s been years since I’ve been so excited about learning new things related to software. I’m close to my 10-year mark in the industry and things have started to become a bit stale. I feel very grateful for having the opportunity to study all of those things at such a low cost. It’s nice to appreciate how amazing the internet is, from time to time.
Cheers,
George Spanos,
Moby IT