Lately, there has been a lot of momentum around functional programming. While I was away on vacation for the past couple of weeks, I came across quite a few items that caught my eye. This isn't meant to be a link blog by any means, but to show that there is a bit of new information coming out around functional programming and what it means to you.
There has been a bit of excitement around F# since the release of the September 2008 CTP. If you haven't already downloaded it, I'd highly encourage you to do so. With that, there are a few more items coming out on the horizon worth checking out:
- F# for Scientists - Jon Harrop
Dr. Jon Harrop, the owner of Flying Frog Consultancy, has released his F# book, F# for Scientists. This book comes at the angle of a computationally oriented researcher, scientist or developer that wants to learn functional programming. This book not only covers the functional programming aspects of F#, but the object oriented and imperative as well. I've ordered this book and can't wait to get my hands on it. I plan to do a review once I have.
- Ted Neward and Amanda Laucher on .NET Rocks
Both Ted and Amanda will be on .NET Rocks on 9/16 to promote their book, F# in a Nutshell. There are quite a few more books on F# and don't be surprised to see some more announcements soon on the subject.
Haskell is a language that I've been learning lately on the side. I haven't posted much on this here on this blog, but maybe at some future point I will compile some links to help you get started. Some of the re-interest on my part has actually come from Michael Feathers and his tweets on Twitter. Lately, Haskell has been gaining traction, even to the surprise of Simon Peyton Jones. Much of the interest arises from the concurrency angle in regards to language enforced purity.
Anyhow, a few items caught my eye in regards to the Haskell community:
- Software Engineering Radio Episode 108 - Functional Programming and Haskell
Simon Peyton Jones, one of the main contributors behind the Glasgow Haskell Compiler, and esteemed researcher at Microsoft Research recently appeared on Software Engineering Radio to explain functional programming and Haskell. Software Engineering Radio tends to be one of my favorite podcasts as they are quite technical and in-depth in the interviews. This is a great episode and great listening! He also appeared recently on .NET Rocks Episode 310 as well.
- Real World Haskell
I've been following the progress of Real World Haskell for a little bit now. The goal of this book will be to explain not only Haskell, but the functional programming concepts which make Haskell powerful. The authors have been updating the site with not only the progress, but also taking input from the community as well. Recently, they announced that the writing was complete and the source was handed off to production. Can't wait to get my hands on it, but I've been reading the chapters and following along as well.
As a language, Erlang has intrigued me, not only in terms of being a functional language, but how it handles concurrency through the the use of actors and following the Actor model. Unfortunately, there hasn't been many books on the subject, especially in regards to the concurrency message. Joe Armstrong, the language creator, released the book Programming Erlang, Software for a Concurrent World last year. Unfortunately, many of the aspects of the concurrency parts were glossed over and didn't get into enough detail. Luckily, there are a few more books coming on the subject:
- Concurrent Programming with Erlang/OTP
Concurrent Programming with Erlang/OTP teaches you to apply Erlang's shared-state model for concurrent programming--a completely different way of tackling the problem of parallel programming from the more common multi-threaded approach. This book walks you through the practical considerations and steps of building systems in Erlang and integrating them with real-world C/C++, Java, and .NET applications. Unlike other books on the market, Concurrent Programming with Erlang/OTP offers a comprehensive view of how concurrency relates to SOA and web technologies.
- Programming Erlang
An introduction book by Francesco Cesarini, the founder of Erlang Training and Consulting.
Wrapping it Up
As you can see, there are a few items coming up worth checking out. Next time, I'm going to add some videos and other resources that have been brought to my attention in the hopes that it's as useful to you as it is to me.