Functional Programming in 40 Minutes • Russ Olsen • GOTO 2018

preview_player
Показать описание
This presentation was recorded at GOTO Berlin 2018. #gotocon #gotober

Russ Olsen - Author of Getting Clojure and Eloquent Ruby, VP at Cognitect

ABSTRACT
Functional programming has finally escaped from academia. These days developers are building real systems in functional programming languages like Clojure, Scala, Elixir and F#. Functional techniques are also seeping into more traditional languages like Java and Ruby. Unfortunately somewhere along the way functional programming has also developed a reputation for being deep and mysterious: Good programs achieve the Zen-like state of being functional which somehow involves immutability, higher order functions [...]

Download slides and read the full abstract here:

RECOMMENDED BOOKS

#FunctionalProgramming #Clojure #Scala #Elixir #Fsharp

Looking for a unique learning experience?

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

One of the most sensible and clear explanation about Functional Programming.

kkindoh
Автор

I tend to use my own paradigm - a blend of ObjectOriented and functional, which others seem to refer to as 'Objectional' programming.

cyboticIndustries
Автор

When I heard about Clojure for the very first time my reaction was exactly like that “ how can you build anything if you can’t change your data!?!”. I love how this speech explains that. Great one!

PiotrKotnis
Автор

I can't get over the irony of having a talk about functional programming in a conference called "goto", the epitome of procedural thinking :D (great talk though!)

HassanSelim
Автор

"Immutability of inputs"
"Immutability of outputs"

Excel is a functional programming language.

muddi
Автор

A note on Principia Mathmatica:

In modern mathematical language, proving 1+1=2 is WAY more compact. This is because modern mathematics is much DRYer than Russel and Whitehead. In R&W, they duplicate the 'code' defining set operations (union, intersection, etc.) as the code defining relations (all the same formulas with a friggin dot over all the symbols. Just twenty papges of repetition.) This is because the idea that a relation is a set of tuples came AFTER Principia.
A note on side-effects:
Haskell does this best. Haskell does side-effects by constructing a data structure representing side-effectful computation. Since functions are data, this data structure consists of nested functions taking values and producing side-effect representations (which recursively contain functions taking values returning side-effect representation and so on). As the runtime evaluates this side-effect representation, it progressively calls these nested functions. It's all-together very elegant, built on only one primitive: compose a side-effect with a side-effect-producing function into a new side-effect, without ever actually making anything happen.

A note on the pie chart:

96% functions means 96% code that CANNOT sneak up on you. 96% guaranteed thread-safe code. 96% trivially unit-testable code.

kiledamgaardasmussen
Автор

he is soo genuinely happy explaining wht he knows..its inspiring

ajithkannan
Автор

Hands down the best introduction to functional programming on YouTube.

A key problem with adoption is that many of the prominent gurus are math-oriented computer scientists who don't understand how to communicate well with pragmatic working programmers.

Olsen gets over the key ideas here without muddying the waters with monads or functors or currying or any of the esoteric terms that are so off-putting to the newbie. He presents FP as something accessible that solves real-world problems.

But he doesn't over-promise. To hear some of the enthusiasts, FP is some kind of magic fairy dust that makes all the messiness of real development go away.

Outstanding!

tullochgorum
Автор

Im so glad youtube algorithm re-upped this. This is one of the best fundamental talks for people who already have a programming or mathematics background or academic experience and want to make sure their next steps are chosen carefully in the world of functional programming. Considering what we learned from Russel and Godel and Cantor, this is pretty close to a fundamental talk about having a sound basis.

janglestick
Автор

Thus far, this is absolutely the best video on the subject.

BTW, if you are short on time, start at 11:17, but I would just listen to the preamble anyway to give you sense (FOR ONCE!) that no, there's no magic here and you don't have to forget everything.

Such a joy to watch this. Just the array to tree concept by itself is an eye-opener.

sailbatten
Автор

Fabulous! Clear, concise. Thank you for making the presentation. It helped me get a handle on what FP means and how it translates into the real world. Cheers!

decafme
Автор

As someone struggling to really understand functional programming, this video was quite helpful. He touches on something that still doesn't quite make sense to me. Our job is entirely side effects. We get paid to write code that does stuff, and all of that stuff involves interactions with the outside world. When I tried to learn clojure, as one example, I spent some time on it and still had no clue how to actually do anything useful. Now I'm back at it, although this time trying to learn Erlang and I have a similar problem. I learn some basics, but immutability and the lack of side effects makes it difficult for me to figure out how to get any real work done. It's truly a different way of thinking about solving problems and I haven't really got a handle on it yet.

johnneiberger
Автор

I learned two things from this talk: function and atom. Function responsible for what change to make. Atom responsible for making change according to the function. Atom takes care of the complexity of multiple threads, ideally implemented by the language. Developer writes simple functions with no concerns of multi thread. If this is the essence of the FP, this is the first time I get the idea of FP. Either way, I found this talk amusing.

kenwang
Автор

This video helped me understand what the heck functional programming actually is. The mathematics comparison is super memorable too. Amazing talk!

celina
Автор

An absolutely amazing talk, thanks to Russ!

ichdu
Автор

From a curious laymen: thank you. Truly. This is 40 minutes of clarity and honesty.

Jasruler
Автор

This is an extraordinary talk! Thank you!

mwgiannini
Автор

Thanks for this video. It's the best I've found so far on the fundamental concepts of FP. But after watching it, I realize there is nothing new under the sun, and it sounds a whole lot like what I learned decades ago from one of my old college profs... (1) Do as much as possible from a function of small size, and (2) Don't depend on global variables.

eyesonly
Автор

Excellent point about 'refactoring' our ideas, instead of forgetting. Applicable to other areas of endeavor. Learn new concepts/conceptual frameworks and then, depending on your assessment, refactor what you already 'know', and see if it works.

jdp
Автор

Wow, his passionate presentation style is a brease.

matiascova