Jay is a member of our GUI team at Aviat Networks. For the last 3 years he and his colleges have been introducing new methods and programming paradigms into our products. They have challenged traditional methods successfully and would like to share their success with you.
In this talk, Jay will present the core concepts of FRP and web sockets, what context he has used them in and why they are exciting?
Here is a short description of FRP from Jay. There are also some links to background material below.
“Reactive Programming is a language agnostic programming paradigm that helps with scale, composition and re-usability. It addresses problems with the Observer Pattern and has often been described as a "Pipe and Filter" model or "Flow Based Programming". The structure of an application will resemble a flow chart, where each node represents either an event or a piece of time varying data. This data is broken down into small reusable modules (nodes) and the state of your application exists in this structure. Code is easier to understand because it describes only the business logic. Boilerplate code for things like listeners and memory management is all handled for you.
Functional Reactive Programming does not access or modify state outside of the structure and thus has functional purity. This is particularly beneficial when working at scale because bugs can be traced to a particular node which can be black-box tested easily. This also forces you to write reusable code as there are no side effects. This model is beneficial for applications with a large amount of IO and particularly beneficial for combining this data with user interaction events.”
Scala.React, React.NET, Flapjax and Sodium are some popular libraries for trying out these techniques.
A talk about why Netflix switched to reactive
Sodium (Haskell, Java C++)
A paper about Scala.React