I’ve been an object bigot for most of my career. Nothing saddens me like having a giant pile of stinking procedural goop code dumped on me in a maintenance cycle. However, since I got exposed to Ruby several years ago with its mixed support for Functional Programming techniques and passing blocks, I’ve found plenty to like about programming with very basic FP techniques. About a month ago I was having lunch with a developer friend in Austin and we were debating whether or not the new Lambda stuff in C# 3.0 is really that important to everyday development. I argued yes, and to hopefully show the affirmative case, I wrote a new article in the October issue of MSDN Magazine entitled “Functional Programming for Everyday .NET Development.”
My goal with this article was to show how we can incorporate bits of functional programming into our everyday work. To keep with the theme of “everyday” I stayed with C# and JavaScript rather than F# and no examples about solving the Fibonacci sequence because that’s just not a real world scenario;-) By absolutely no means should you think this article is meant to be an inclusive explanation of all things FP. All I was aiming for is to give developers a reason and starting point to learn much more about Functional Programming. If nothing else, *I* learned quite a bit in the course of writing this article.
I would certainly encourage anybody reading this article to go farther and think about where FP techniques might work better than OOP.
I received quite a bit of help on this article from Chance Coble and Chris Patterson. I wasn’t able to incorporate some of their feedback just because of time constraints, but I still appreciate the help guys.
And now, I’m dreadfully behind on the next (and possibly last) MSDN article. Look for “Internal Domain Specific Language Patterns” the next time out in December.
I was lamenting on Twitter yesterday that I haven’t blogged in over two weeks, what I think is a new personal record for futility. I definitely don’t consider these types of self promotion posts as real content, so I’ll get back to blogging something or other real soon.