Awesome talk that I revisit every few months, and each time I feel I understand at a deeper level. Also, props to the cameraman at the conference - tracking Daniel was no easy feat!
Except the lazy part was a little confusing, I think what really meant there was non strict. Otherwise a very good talk, Daniel is one the best speakers I’ve ever listened to.
5:25 Those two are not the same, right? How can they be basically the same? The left one will execute the function addToGauge twice sequentially inside the for-comprehension. But the right one, addToGuage executes once .
its really easy that val x = addToGuage(42) doesn't get evsluated but x only holds reference to a monad that was not executed yet. flatMap executes the monad so there 2 times x reevaluate the monad under x so addToGuage will be called twice. So this io monad doest do eager evaluation like futures do. they need to be executed somewhere this for comprehension is just describe the execution flow.
an effect is "anything that is not a relationship between a set of inputs A and a set of outputs B" plain and simple. In FB, they call it "pure" function or a function with no side-*effect*, and in mathematics it's simply called a function.
Awesome talk that I revisit every few months, and each time I feel I understand at a deeper level. Also, props to the cameraman at the conference - tracking Daniel was no easy feat!
This guy was born to give talks! *Added to favourites!*
Hope, not only talks, but good coding skills as well 😁
He can be a great lecturer!
If your program doesn't perform any effects, it's just the box getting warm..!
Just described my whole life with that sentence..
I wish there was a 15-20 minute version of this talk.
This talk gets more interesting everytime i watch.
Really good talk with focus on concurrency
Gotta appreciate how Daniel is dancing across the stage and the camera is barely keeping up with him.
ScalaZ 7's IO actually seems pretty alright now with virtual threads.
then he launched the zio
Except the lazy part was a little confusing, I think what really meant there was non strict. Otherwise a very good talk, Daniel is one the best speakers I’ve ever listened to.
My mind is in love with your mind….
Really useful. thank you.
Great, thanks!
This ce is a fantastic lib, this sh*t 's composition is better than poetry!
so informative, thanks
Awesome talk!
I want to say hello to my friend Taras, who watched this for a long time, but will review it again.
5:25 Those two are not the same, right? How can they be basically the same? The left one will execute the function addToGauge twice sequentially inside the for-comprehension. But the right one, addToGuage executes once .
Because IO, unlike Future, does not memoize a previously computed result
its really easy that val x = addToGuage(42)
doesn't get evsluated but x only holds reference to a monad that was not executed yet. flatMap executes the monad so there 2 times x reevaluate the monad under x so addToGuage will be called twice. So this io monad doest do eager evaluation like futures do. they need to be executed somewhere this for comprehension is just describe the execution flow.
I agree, good talk but like, i think like it could’ve been a tad bit like...better
So by saying that scalaz 7 race is extremely broken concurrency.. you dismissed most of @jdegoes tweets as crap ))
1:35 "Anything that you can't just do twice" is *not* a good, informal, description of what an effect is.
What about it is not good? What do you propose instead?
an effect is "anything that is not a relationship between a set of inputs A and a set of outputs B" plain and simple. In FB, they call it "pure" function or a function with no side-*effect*, and in mathematics it's simply called a function.
Do you have a good counter-example of something that's an effect but *doesn't* meet this definition?