Тёмный

Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx) 

jasonofthel33t
Подписаться 11 тыс.
Просмотров 44 тыс.
50% 1

Cross posted from channel9.msdn.c...
Erik Meijer and team (developer Wes Dyer, in particular) have created a profound and beautiful .NET library that will take managed event based programming to new levels. Of course, many of you wish that you could write LINQ expressions over events. Well, now you can thanks to Erik's and Wes Dyer's latest creation, Rx - .NET Reactive Framework. Erik, being a fundamentalist functional theoritician, can't create new programming abstractions without employing some form of monadic magic.
Enter astrophysicist and monadic composition wizard Brian Beckman. The last time Brian was on C9 he taught us about the State Monad. At the end of that discussion he mentioned he wanted to teach us about the Continuation Monad next. So, who better to conduct this episode of Expert to Expert than Dr. Beckman? Yep. You guessed it! Rx employs the Continuation Monad in its composition. Erik is in the hot seat this time and it's always a real pleasure to converse with Erik and Brian in the same room at the same whiteboard.
Now, what is Rx?
The .NET Reactive Framework (Rx) is the mathematical dual of LINQ to Objects. It consists of a pair of interfaces IObserver/IObservable that represent push-based, or observable, collections, plus a library of extension methods that implement the LINQ Standard Query Operators and other useful stream transformation functions.
Observable collections capture the essence of the well-known subject/observer design pattern, and are tremendously useful for dealing with event-based and asynchronous programming, i.e. AJAX-style applications. For example, here is the prototypical Dictionary Suggest written using LINQ query comprehensions over observable collections:
Please subscribe to this Channel 9 interview to be notified when we have clearance to distribute Rx over the counter (lame puns intended Smiley.
Tune in. This should prove to be an instant classic besides being a very important episode of E2E. Rx is deep, man. Deep.
Enjoy!

Наука

Опубликовано:

 

3 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 29   
@viniciusvbf22
@viniciusvbf22 5 лет назад
This is one of the best Channel 9 videos ever.
@sandygrungerson1177
@sandygrungerson1177 9 лет назад
the right side of Meijer's white board is interesting to pause upon...actually its just neat to see smart ppl enjoying being smart
@0polymer0
@0polymer0 Год назад
What a wonderful discussion, thank you for capturing this!
@honza-1
@honza-1 3 года назад
I somehow cannot get why the name of the video is "Inside the .NET Reactive Framework (Rx)". Well, the topic of Observable/Observer *is* for sure related, but I spend the whole video waiting when they will finally start talking about the Reactive Framework - which was my initial reason why I *started* watching it :)
@rickhernandez8301
@rickhernandez8301 8 лет назад
This is GREAT! #physics #math #ComputerScience #Functional #Haskell
@3333218
@3333218 4 года назад
I've spent 8 years graduating in Computer Science. I have no idea what's going on here. Should I be worried?
@carlosaugustosanchezsanchez
@carlosaugustosanchezsanchez 8 лет назад
Loved it
@markuspfeifer8473
@markuspfeifer8473 5 лет назад
Implementing monads feels quite automatic, but it hasn’t been automated yet and discovering monads is still tough because we‘re not used to it. Probably, humans just aren’t ready for this yet. But when we are, we‘ll be like the heptapods
@ivandrofly
@ivandrofly 9 лет назад
thanks :)
@toxicore1190
@toxicore1190 8 лет назад
why can you say "as = fs" if they are different types? i don't get why A is contra variant in: "A^- -> B^+"
@therealmeisl5609
@therealmeisl5609 8 лет назад
Don't take the "as = fs" literally, it's rather like a caption saying "and here's the UNSAFE stuff". As for your other question: those minuses and pluses are short-hands. You need to be aware of what they really say: 1) If B is a subtype of C then the function type X -> B is a subtype of X -> C (covariance, the plus) 2) If A is a subtype of D then the function type D -> X is a subtype of A -> X (contravariance, the minus) You can combine those two implications into one big statement and use minimal syntax, and that's what they do with "A- -> B+". However, it's challenging enough just to see why 2) really makes sense, even though it looks so counterintuitive. Recall that the subtype must work everywhere the supertype is expected. Now, let's say we're expecting the supertype A -> X. Let's focus on the argument type (the result type is covered by pt 1). We must be able to put in As (or subtypes thereof). But we *can* put As into D -> X as well, because every A is also a D. It would not work the other way around. You see, passing an argument *into* a function is like writing, whereas getting a result *out of* a function is like reading.
@toxicore1190
@toxicore1190 8 лет назад
TheRealMeisl many thanks for that explanation :)
@therealmeisl5609
@therealmeisl5609 8 лет назад
+Toxi Core you're welcome :) So I figure this explanation worked for you? You see, I've been trying to explain this many times (including to myself...), so I'd be interested in any idea how to make it more concise and/or clear.
@horizontaalschaalbaar9470
@horizontaalschaalbaar9470 7 лет назад
Invariance: Not every Animal[] can be treated as if it were a Cat[], an Animal[] may contain a Dog. A Cat[] cannot be treated as an Animal[], it should always be possible to put a Dog into an Animal[].
@miketruk7639
@miketruk7639 4 года назад
whats the book theyre discussiong at 1:02:20
@mestar12345
@mestar12345 Год назад
Haskell School of Expression, Paul Hudak Introduction to Functional Programming, Bird, Wadler
@MsEvgeniyK
@MsEvgeniyK 8 лет назад
I've given up on 33:30 ))
@vic-gallo
@vic-gallo 8 лет назад
+Evgeniy Kalashnikov i`m scrolled to 33:30 and given up on 33:31
@therealmeisl5609
@therealmeisl5609 8 лет назад
Hey guys, you really should not give up so easily! Obviously Brian has quite a hard time figuring out the implementation. But this is mostly due to his being "in the hot seat", I'd say. Unfortunately this actually has the effect of obscuring the beauty/magic of what this technique of "having the types direct you" can do for you! There is actually only one way of "wiring things up" here, really. So I'd suggest you try it on your own, ie find your own names and simplifications (like eg seeing the opportunity for currying) on your own way. In fact, I myself find Brian's approach rather twisted... But plz, do give it another try of your own. Believe me, the amazement you'll get once you made it (on your own) - is priceless! Btw: I know (!) that you can do it on your own, just from the fact that you watched until 33:30 alone. Really, trust your own mind, and don't be afraid to go "baby-steps" with explaining to yourself when you get stuck. If you're willing to do that, together with some stamina, you *will* get there. And thereafter wonder what's actually been so hard, anyways... :)
@JooyungHan
@JooyungHan 7 лет назад
This is exactly what I did. :-) I stopped the video and wrote my own definition of 'Bind'. Lovely!
@hansschenker
@hansschenker 3 года назад
@@vic-gallo The real start ist: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-looJcaeboBY.html
@BryonLape
@BryonLape 3 года назад
And "programmers" use this to create horrible code.
@hiuheu6653
@hiuheu6653 4 года назад
lol this is jokes
@unlocomasdf
@unlocomasdf 4 года назад
none of them is a master in math.... Their ideas are not well landing.
@hansschenker
@hansschenker 3 года назад
RxJs - prooved you wrong man!
Далее
У КОТЕНКА ПРОБЛЕМА?#cat
00:18
Просмотров 984 тыс.
Erik Meijer: Functional Programming
1:07:58
Просмотров 101 тыс.
Brian Beckman: Don't fear the Monad
1:07:10
Просмотров 400 тыс.
On .NET Live - Modernizing Rx.NET
1:00:45
Просмотров 6 тыс.
GEOMETRIC DEEP LEARNING BLUEPRINT
3:33:23
Просмотров 183 тыс.
E2E: Erik Meijer and Robert Griesemer - Going Go
44:04
Самый дорогой iPHONE 16 PRO MAX #shorts
0:58
Скучнее iPhone еще не было!
10:48
Просмотров 613 тыс.