the return of stream i o
play

The Return of Stream I/O @andrestaltz Cycle.js.org A functional and - PowerPoint PPT Presentation

The Return of Stream I/O @andrestaltz Cycle.js.org A functional and reactive JavaScript framework for cleaner code Haskell A pure functional programming language Haskell A pure functional programming language Logic Effects Haskell A


  1. The Return of Stream I/O @andrestaltz

  2. Cycle.js.org A functional and reactive JavaScript framework 
 for cleaner code

  3. Haskell A pure functional programming language

  4. Haskell A pure functional programming language Logic Effects

  5. Haskell A pure functional programming language Logic Effects

  6. Monadic I/O Stream I/O Continuation I/O Logic Effects

  7. Monadic I/O Stream I/O Continuation I/O Logic Effects

  8. Monadic I/O Logic Effects

  9. Program Compiler, binary

  10. Stream I/O Logic Effects

  11. Program Operating binary System

  12. Requests "Write" msgs Program Operating binary System

  13. Requests "Write" msgs Program Operating binary System "Read" msgs Responses

  14. Requests "Write" msgs Program Operating binary System "Read" msgs Responses

  15. Reactive system versus Transformational system

  16. (1998) "A transformational system repeatedly waits for all its inputs to arrive, carries out some processing, and outputs the results when the processing is done."

  17. (start) 
 Inputs Processing Output 
 (done)

  18. 
 Examples: 
 Compiler 
 UNIX commands

  19. "A reactive system continuously interacts with its environment, using inputs and outputs that are either continuous in time or discrete. The inputs and outputs are often asynchronous, meaning that they may arrive or change values unpredictably at any point in time."

  20. Input Output Processing

  21. 
 Examples: 
 Real-time systems User interfaces Websites Servers

  22. Transformational programs Reactive programs 1990 2000 2010

  23. BASIC FORTRAN Pascal JavaScript C Java Transformational programs Reactive programs 1990 2000 2010

  24. Haskell 
 Stream I/O BASIC FORTRAN Pascal JavaScript C Java Transformational programs Reactive programs 1990 2000 2010

  25. Monadic I/O good for 
 transformational programs 👎 BASIC FORTRAN Pascal JavaScript C Java Transformational programs Reactive programs 1990 2000 2010

  26. Haskell 
 Monadic I/O BASIC FORTRAN Pascal JavaScript C Java Transformational programs Reactive programs 1990 2000 2010

  27. Multimedia BASIC FORTRAN Pascal JavaScript C Java Transformational programs Reactive programs 1990 2000 2010

  28. Period of confusion BASIC FORTRAN Pascal JavaScript C Java Transformational programs Reactive programs 1990 2000 2010

  29. Period of confusion BASIC FORTRAN Pascal JavaScript C Java Transformational programs Reactive programs 1990 2000 2010

  30. Shared-memory concurrency BASIC FORTRAN Pascal JavaScript C Java Transformational programs Reactive programs 1990 2000 2010

  31. Shared-memory concurrency BASIC FORTRAN Pascal JavaScript C Java Transformational programs Reactive programs 1990 2000 2010

  32. Early JavaScript 
 apps BASIC FORTRAN Pascal JavaScript C Java Transformational programs Reactive programs 1990 2000 2010

  33. Early JavaScript 
 apps BASIC FORTRAN Pascal JavaScript C Java Transformational programs Reactive programs 1990 2000 2010

  34. BASIC FORTRAN Pascal JavaScript C Java Transformational programs Reactive programs 1990 2000 2010

  35. Asynchronous Continuous interaction BASIC FORTRAN Pascal JavaScript C Java Transformational programs Reactive programs 1990 2000 2010

  36. Asynchronous Continuous interaction BASIC FORTRAN Pascal JavaScript C Java Transformational programs Reactive programs 1990 2000 2010

  37. Message passing 
 concurrency BASIC FORTRAN Pascal JavaScript C Java Transformational programs Reactive programs 1990 2000 2010

  38. Requests Program Operating binary System Responses Stream I/O Message passing Lazy lists 
 Blocking

  39. Requests Program Operating binary System Responses "Stream I/O" Message passing Lazy lists Streams 
 Blocking Asynchronous

  40. Requests Program Operating binary System Responses Cycle.js Message passing Streams 
 Asynchronous

  41. Stream of DOM events Stream of actions Stream of reducers Stream of state Stream of markup to the DOM

  42. Cycle.js 👎 Asynchronous message passing 👎 User interfaces or any reactive system 👎 Separation of concerns 
 👏 Handling question-and-answer I/O

  43. Elm

  44. Task "Do this and then 
 that and tell me the 
 Elm Elm result" program runtime Result

Recommend


More recommend