Sometime in 2010, after years of C# development, I discovered F#, and found programming in a functional style both tricky and fun. Inspired by an article on Artificial Bee Colony algorithms, an optimization algorithm that mimics the intelligent foraging behaviour of honey bee swarms, I decided as a learning project to convert it from C# into an F# library, Bumblebee, which is available open-source at http://bumblebee.codeplex.com. In this talk, I want to do 4 things:
1) cover the basics of Artificial Bee Colony algorithms, and illustrate what problems it can help solve,
2) solve a problem together with Bumblebee, and use it as a F# primer,
3) open the hood and discuss some of the design aspects (making the API both F# and C# friendly, using the Task Parallel Library for parallelism, using OO and functional styles together, unit testing...)
4) share my learning experience transitioning from a C#-mindset to thinking F#.
This talk should be particularly relevant for C# developers who are F#-curious. Knowing F# beforehand is not required, but a certain comfort with functional concepts, like LINQ in C#, will definitely help.
I have been writing software in C# for 8+ years, and loving every minute of it, except maybe for a few release days. I enjoy arguing about code and how to make it better, and get very excited when discussing TDD or F#. My other professional interests are applied math and probability. If you want to know more about me, you can check out my blog at http://www.clear-lines.com/blog/ or follow me on Twitter as @brandewinder.