Netflix JavaScript Talks - Async JavaScript with Reactive Extensions
Matt Marenghi5 HN recommenders · 2014–2016
69K views · talk · dated · Uploaded 2014-03-22
A Netflix JavaScript talk on using Reactive Extensions (Rx) for asynchronous UI code. It covers Observables, composing events such as drag and drop, and sequencing Ajax requests.
Recommended as a clear, mind-changing introduction to observables and async programming from engineers using Rx in production.
53:22Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim Weirich
Confreaks
42:03The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019
GOTO Conferences
1:01:39"Simple Made Easy" - Rich Hickey (2011)
Strange Loop Conference
26:53What the heck is the event loop anyway? | Philip Roberts | JSConf EU
JSConf
36:45Rich Harris - Rethinking reactivity
You Gotta Love Frontend
25:06"Making Impossible States Impossible" by Richard Feldman
elm-conf
1:31:06William Byrd on "The Most Beautiful Program Ever Written" [PWL NYC]
PapersWeLove
31:44The Value of Values with Rich Hickey
InfoQ
9 comments from Hacker News
Netflix. We are reinventing how people watch television. My team is a group of seasoned engineers that craft JavaScript-based UI's for the living room. You will architect and develop user experiences that will reach millions of customers worldwide on PlayStation 3, PlayStation 4, Xbox360, Apple TV, Chromecast, Roku, and hundreds of Smart TVs and Blu-ray players. You can read more about our flagship UI here: [LINK] And here are some articles/videos where we've talked about our technical work: * Building the New Netflix Experience for TV [LINK] * WebKit in Your Living Room [LINK] * Recent Reactive JavaScript programming event: [VIDEO] * Building the Netflix UI for WiiU [LINK] Message me if you want to know more.
The conf talk on youtube by Matt Marenghi [linked in the post] is really awesome. Provides great examples and resources. Really worth 28-min. Direct Link: [VIDEO]
i thought it was a good presentation, however, I recently watched a Netflix one, published by Matt Marenghi, which to me was infinitely better. I think the description of events as just another collection, albeit a time based collection flow was nicer ( Observable === Collection + Time ), and also that this collection must have the ability to tell you that it has terminated. [VIDEO]
It's not a fad at all, with Netflix and other companies using Rx in all flavors on their platforms. See this video from Jafar Husain, a tech lead at Netflix, talk about how they use RxJS at Netflix: [VIDEO]
Why not try watching the video from Jafar Husain, a tech lead from Netflix, talk about Async JavaScript at Netflix which uses RxJS to explain these concepts? [VIDEO]
Yes I meant what "Reactive Extensions" does. Should've been clearer that it was a reference to "functional reactive programming" and not a specific library. edit: "Async Javascript at Netflix" is a great talk on this - [VIDEO]
With RxJS, you can compose with existing Promise-based libraries, solve asynchronous programming (and error handling) in an elegant fashion with code that looks like simple linear chains (or DAGs) of Observables, and you don't need to give up non-blocking JS. [VIDEO]
I assume you use SQL or similar? It's not exactly Haskell-level functional, but still, you're probably already using functional paradigms. In the case of JS, using functional techniques simplifies the code quite substantially. Testing becomes easier. Immutable data can be much easier to reason about. It's often orthogonal to OOP, functional techniques in the small, OOP to structure in the large. FRP is very useful for interactions front-end (form validation for example), but also is just all-round terrific for message passing. Recursion is ideal for certain scenarios. If you take something like handling errors, an example would be the way promises deal with them, with the ability to collect at the end of the chain, or deal on a case-by-case basis. I'm just listing stuff off the top of my head; with a general-purpose language [with the option of different paradigms] it's not so much a case of 'build a web app', it's more 'if you use these techniques, you may well find that your code is easier to reason about'. I think the metaphor I like is that with FP it's as if you have an assembly line of functions, and you pass your data down the line, with each function transforming in turn; each function can easily be ripped out and/or replaced and tested. There are multiple downsides and pitfalls - overly abstracted code being a very common one, but as a general approach it's often extremely useful. Books maybe worth a flick through (tried to pick stuff that is less...abstract, & I hav
I don't really like await . It seems to be a syntactical fix which acts in a quite magical way. Not sure if introducing magic to a language syntax is what we want. Rather, we should think about data flow of our async apps differently. I believe Observables are the future of async code. Once you grasp the concept that everything in your app can be transformed into streams of events, and you work with these events using chains of .map(), .filter(), .reduce(), etc. you'll grasp the true power of this paradigm and how well it fits async and/or concurrent apps. I suggest anybody that doesn't quite swallow the await syntax, to have a look at this presentation about Observables at Netflix as it's quite mind changing: [VIDEO]