Book Reviews - Programming Languages

Haskell Programming from First Principles by Chris Allen & Julie Moronuki

This massive tome of a book (almost 1300 pages!) is usually just called the Haskell Book. The teaching style of this book is very exercise heavy, which is understandable considering how alien Haskell can be to developers who've never touched a purely functional language before.

While I found the first 60% of the book to be very good (if a bit too verbose), I personally feel like it goes off the rails completely beginning with the chapter on Traversable and it doesn't quite recover, even though there are some neat chapters afterwards such as the one on State, and the one on monad transformers.

Even though the book is good, the only people I'd recommend it to at this point would be developers who are either very junior or have never been exposed to FP concepts before and are coming from dynamically typed languages such as JavaScript or Python. For everyone else I'd recommend a combination of "Programming in Haskell" by Graham Hutton, "Haskell in Depth" by Vitaly Bragilevsky and "Functional Design and Architecture" by Alexander Granin -- these three books together are about the same length as the Haskell Book!

My rating: Not recommended

Buy it here: haskellbook.com

Get Programming With F#: A Guide for .NET Developers by Isaac Abraham

After my adventures in Haskell land I decided to give F# a go -- seemed like an obvious choice given my experience with C#. The landscape of F# books is unfortunately not nearly as abundant as it was with Haskell. This book seemed like the only one that was decently up-to-date and aimed at experienced C#/.NET developers.

The structure of the book is fairly straightforward: it's split into 10 units, each containing 3-6 easily digestible lessons about F# features that take roughly ~10-20 minutes each to get through, which I really liked. I also really liked that every unit was followed by a small capstone project that you could use to practice the concepts you just learned.

For experienced C# developers this book in combination with the MSDN docs should be enough to get up to speed with F# itself, but a more advanced FP book might be necessary before one can leverage some of the features F# provides.

My rating: Recommended

Buy it here: manning.com

Programming Rust by Jim Blandy

Disclaimer: I have not yet finished this book

After writing many, many lines of C and C++ during my formative years as a university student, I spent the vast majority of my professional career writing code in managed languages and I never really missed C/C++. Then some years ago I started hearing more and more about Rust and saw it pop up as the most beloved language in multiple polls.

So I decided to give Rust a try and picked this book up on a recommendation by a friend. Even though my experience with Rust is still very limited, I really like the language and I also really like this book.

Programming Rust is clearly aimed at decently experienced developers who are looking for a reference-style book on Rust that goes in-depth on the language and its design decisions. The writing style is clear, concise and consistent with just enough examples to make concepts stick. The book also covers a lot of ground. I really struggle to find anything to criticise about this book and to me it's exactly what language reference books should be.

My rating: Highly recommended

Buy it here: oreilly.com

Previous articleBook Reviews - Software design edition
Next articleModern Command Line tooling