Software is complex stuff. This is something that has been appreciated and contemplated since the 70s. This thought and the subsequent principles, practices and patterns come in and out of favour in the main stream but the core philosophies remain: to ensure maintainable and verifiable code that is as easy as possible to change in the future. We want to start a usergroup for the West Midlands area that provides a forum to explore these principles.
Due to the nature of our background the group will be .Net focussed but tool/framework agnostic. The tools and frameworks are convenient when implementing solutions with these principles in mind but we feel it is the principles themselves we must appreciate to be truly effective developers.
Drinks on Arrival
Welcome and Introduction
Functional Programming in C# Part 1 - Simon Painter
Pizza and Refreshments
Functional Programming in C# Part 2 - Simon Painter
Functional Programming is becoming increasingly popular and relevant with each year that goes by. With so much discussion around languages such as F#, Haskell and Erlang, it can seem as though getting started with Functional programming would mean first learning a whole new syntax...but what if it didn't?
Most .NET developers are familiar with the use of Linq, and basic constructs such as IEnumerable, Func delegates, arrow functions and ternary expressions, but did you know that you can use all of this to implement some of the most powerful patterns and techniques from the world of functional programming?
This talk will demonstrate how, using only familiar features available in out-of-the-box C#, to write Functional code that is:
* More robust
* Easier to read
* Easier to maintain
As well as these benefits, Functional code is a great enabler for the use of concurrency with Async functions and Serverless applications with technologies such as Azure Functions.
This talk might be of interest to anyone looking into moving to a new platform, or in improving the scalability of an existing application, or even just interested in seeing what Functional Programming is all about, but all within the comfort of a familiar language.
We might even attempt the impossible, and explain what a Monad is!