Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Philosophy of Reactive Extensions

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Philosophy of Reactive Extensions

This presentation talks about the philosophy behind reactive extension or functional reactive programming, and why I believe we should rethink of our current programming models with the facts of our world.

Avatar for Kira Cheung

Kira Cheung

October 17, 2014
Tweet

Other Decks in Programming

Transcript

  1. Thinking Differently - Another way to model our world Kira

    Cheung Software Engineer Twitter: @killercentury [email protected]
  2. Inspiration InfoQ Interview: Big Data, Types of Data Stores and

    Reactive Programming Erik Meijer (@headinthebox) Contributes to Haskell, LINQ, Rx for .Net...
  3. New Opportunities “Because of Big Data, suddenly a lot of

    assumptions that we have don’t work anymore and the whole field has opened up.”
  4. Big Data - 3Vs Is it really only about the

    volume? Variety and Velocity • Volume - Closed vs Open (Infinite Stream) • Variety - Relational vs Key Value • Velocity - Pull vs Push
  5. Mutable vs Immutable Original value is replaced by the new

    value. Original value is lost forever. Is that really what is happening in our world? How do we model the time?
  6. Mutable vs Immutable “Old” things are just locked at a

    specific point of time. It doesn’t mean they are completely gone. The past always has effect on the future. Nothing is completely new. (e.g. you & parents)
  7. Data Transformation “Things don’t new them up, they come to

    you.” The present is the transformation from the past. There is no real present but relative transformation of the past. (e.g. watching stars)
  8. Where Object-Oriented could fail? Class • Static Structure • Domain

    Specific Representation • Only Simulation of the Truth
  9. Where Object-Oriented could fail? Example: natural number 5 - five,

    11111, 2+3 “They all represent this abstract mathematical thing.” “The class is not the truth about the data, that is just another thing that represents this abstract notion that you want to manipulate”
  10. Pull vs Push Duality - two sides of the one

    thing E.g. Camera (Moment) vs Eye (Continuity) Every action has latency. Latency is the reality that should be embraced in the high level abstraction.
  11. Observable Observable provides a general abstraction for handling infinite stream

    of data and latency. Revert the direction in which data flows. This is where everything starts to react.