Functional Programming for Pragmatists • Richard Feldman • GOTO 2021

preview_player
Показать описание
This presentation was recorded at GOTO Copenhagen 2021. #GOTOcon #GOTOcph

Richard Feldman - Functional Programming Language Expert & Author of “Elm in Action”

ABSTRACT
Do you care more about how well code works than how conceptually elegant it feels? Are you more interested in how effectively you can build and maintain software than how buzzword-compliant it is? Then this is the talk for you!

People like functional programming for different reasons. Some like it for the conceptual elegance, or the mathematical properties. Richard? He likes to build things. He likes it when the software he builds works well and is easy to maintain. For the past decade he's been using functional programming both professionally and as a hobbyist, and has found it has helped him ship higher quality software in less time than in the decade he spent writing object-oriented code before.
In this talk, he'll share the practical benefits he's enjoyed in FP, and the benefits other pragmatists [...]

TIMECODES
00:00 Intro
04:17 Outline
04:31 Scope: What is functional programming?
06:32 Performance
06:51 Scope: Pure functions
08:55 Performance: Caching
10:57 Performance: Precomputing
12:14 Performance: Parallelizing
15:00 Performance: Performance drawbacks
19:02 Development
19:32 Development: Testing
22:26 Development: Revising
25:49 Development: Debugging
31:18 Development: Development drawbacks
32:35 Ecosystem
38:09 Summary
40:15 Outro

Download slides and read the full abstract here:

RECOMMENDED BOOKS

#FunctionalProgramming #FP #Elm #ElmInAction #Elmlang #Testing #Programming #ProgrammingLanguage #Immutability #PureFunctions #FunctionalLanguages #Debugging #Precomputing #Parallelizing #npm #JavaScript

Looking for a unique learning experience?

SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
Рекомендации по теме
Комментарии
Автор

Richard Feldman is an excellent teacher. I always learn something from him. It's a good feeling when the light bulb lights up.

michaelwatson
Автор

Clear, concise, and to the point. Nice how it shows the pragmatic utility using code snippets.

mostafatouny
Автор

Inspiring talk. In my opinion the whole industry needs this kind of pragmatic and moderated approach in explaining the value and benefits of FP, instead of fideistic battles.

emanuelerabino
Автор

37:30 is the main point. Limitation is power. Great talk.

bwfrieds
Автор

18:00 "It's just the thing that would be coming out of the look-up table is a task". That's eye-opening for me, thank you.

imadetheuniversefun
Автор

Excellent summary of the merits of functional programming for the pragmatist.

I wish this wisdom replaced the conventional wisdom of Uncle Bob's Clean Code, which is filled with counterexamples. That text seems to revel in solving a problem with the most mutations.

elliotbarlas
Автор

Another excellent talk from Richard Feldman!

mortenbrodersen
Автор

This is a great nuance knowing you have functional AND imperative stuff in your toolbox as you'd default to functional programming for the very reasons he discussed. Nice talk!

SimGunther
Автор

Love the fact that the most replayed sections are about the drawbacks

diavolokelevra
Автор

Elm sounds too good to be true. Will def. pick this up over the weekend.

jaymanxlife
Автор

Great video and speech! Thank you Richard.

savkelita
Автор

What this guy does would definitely be the next big thing for the evolution of the developer society if they listen. Sadly, today's developers are more attracted to all those shiny new JS frameworks that are garbage in reality.

gdargdar
Автор

The key here, I think, is the part about dependencies. Either they are implicit (which might bite us back), or we make them explicit but introduce verbosity instead (which can lead to confusion). So it is a tradeoff, as usual. We can sort of circumvent it by making PL itself bear the burden of providing developers with explicit and clear abstractions for dependency management (like algebraic effects and *not* like Haskell's do-notation). But this means that either 1) developer must spend more time learning the language which is sort of okaish or 2) PL developers need to spend more time designing the language.

teial
Автор

he really convinced me about functional programming

shahidkhan
Автор

One benefit that I would love to see a language add: In pure functional languages you can automatically skip computations that do not lead to any effect. You can treat the entire program as a directed graph where the function calls are nodes and the edges are values. Any node that does not have path to a task (something that produces user-visible output) can be removed from the graph without affecting the program

austinnar
Автор

I love to listen to this guy. But I should start coding

MarkusBurrer
Автор

I choose functional techniques out of fear

hughoxford
Автор

is managed effect just like a thunk (wrapper fn) scheduled by main function? At 21:48, when Richard talked about simulation, it sounds like a stubbing in oop.

ruiw
Автор

I think you know this, Richard, and probably just want to avoid introducing too much terminology into the talk. But I just wanted to point out that at 28:49, technically, if the function has side effects, it isn't "pure", it is "idempotent" though, which I believe is what you meant.

jackgenewtf
Автор

how about integration tests? unless your program does not interact with any external dependency they will still be flaky as it depends on the actual behavior of other things outside your function, right?

bicatu