This Is Not a Monad Tutorial by John Azariah

Поділитися
Вставка
  • Опубліковано 25 чер 2024
  • As a new functional programmer, I struggled with a lot of new terminology, intimidating mathematics, strange concepts - and virtually every discussion I had made me feel like my 2 decades of experience as a professional software engineer hadn’t prepared me for FP.
    Now, after many years of working with FP in the industry, and having brought many people along the journey, I have some learnings about how to communicate some foundations of functional programming to professional software engineers - starting with why functional programming matters, how to get started, how to be effective, and how to improve over time.
    So, we’ll talk about that today. We’ll explore how functional programming comes naturally with a few different perspectives and a few fundamental concepts, and hopefully look at programming in a new light. There will be a little mathematical notation, but nothing that should leave a professional software engineer stymied!
    John Azariah Principal SDE, Microsoft
    John is a frequent speaker at conferences on various topics of expertise including Quantum Computing, Functional Programming, Cloud Computing, and Software Engineering. He has over three decades of experience in writing software, designing software systems, and leading teams to deliver software products, services and platforms all over the world. He currently works for Microsoft in Australia for the AKS team, and was previously on the Microsoft Quantum team, where he was one of the designers of the Q# programming language.
    / johnaz
    / johnazariah
    Video sponsor - Ada Beat
    adabeat.com/
    If you want to spread functional programming and support the channel, buy something from the shop: funcprogsweden.myspreadshop.net/
    The chapters:
    00:00 Welcome John
    01:01 Introduction of John and start of presentation “This is not a monad tutorial”
    03:50 What “good” looks like, example of error handling in Go
    07:39 Wrapper types to the rescue
    08:59 Use wrapped values
    09:29 Scorecard (Clutter is removed, Caller cannot cheat error checking)
    09:50 Allow controlled access
    11:25 Scorecard (Error checking done, Clutter is removed, Caller cannot cheat error checking)
    11:33 Chaining calls, example with C#
    15:31 Scorecard (Caller can pass values to next function, Error checking done, Clutter is removed, Caller cannot cheat error checking)
    16:08 Adding syntactic sugar, example with F# computation expression and C# Linq Syntax
    21:50 Scorecard for C# and F# (Code is easy to read, Caller can pass values to next function, Error checking done, Clutter is removed, Caller cannot cheat error checking)
    22:52 Discussion: Problem statement
    24:34 Discussion: Our approach
    27:52 Discussion: Why language matters (Haskell, Scala, C# with Linq, F# and Go)
    36:22 Insight: The FP perspective
    39:40 Questions
    #funcprogsweden
  • Наука та технологія

КОМЕНТАРІ • 2

  • @MartinClausen
    @MartinClausen Рік тому +2

    Great presentation, which is clearly based in the presenters reflection on his own learning. The humbleness required for such reflection now benefits us all.

  • @carnelyve866
    @carnelyve866 Рік тому +2

    This is such an awesome talk. This is next level clean code. Thanks lot.