F# deep dives preliminary thoughts

I have been getting more into F# and the language does seem very elegant. It is not a small language with lots of ideas and concepts from both FP and OO worlds blended together, but somehow the blend chosen makes a lot of sense to me.  I don’t yet have experience of writing large programs in F#, mostly short snippets.  I feel that I have grasped most of the basic concepts though some advanced concepts are still a bit out of scope for me.  And I am not experienced enough to be able to see which language features make the most sense in various scenarios.

As it happens, an interesting F# book, called F# deep dives came out recently. This is a collection of case-studies of using F# in various domains. Each chapter is written by a different person, and they describe a particular problem in their domain and how they solved it using F#. This is not a hand-wavey software architecture book though. Each chapter comes with code and some discussion of the design decisions.  I was interested in the book from the perspective of learning about how various features of F# can be utilized in real-world scenarios.

I like the book overall.  I liked some chapters such as the chapters on MVC pattern for GUI development in F#,  the one on type providers and also the chapter about game development in F#.   However, the quality and style of of writing is very uneven as can be expected from a book where each chapter was contributed by a different author.  I feel that everyone will have their own favorite chapters and also chapters that bored them, depending on what they want to use F# for.  One annoying thing about the book is that there is no syntax highlighting at all.  It makes the code harder to read.  The book also seems to be very text heavy, with very few visual aids or diagrams presented.

Overall, I had high expectations for the book and it did not meet them. It is an interesting book for programmers who know at least some F# and has some good content but it is not a must-have.


Leave a Reply

Your email address will not be published. Required fields are marked *