GUIs, Functional Reactive Programming (FRP) and Web Sockets

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
http://www.infoq.com/presentations/Netflix-API-rxjava-hystrix

Sodium (Haskell, Java C++)
https://github.com/kentuckyfriedtakahe/sodium

A paper about Scala.React
http://infoscience.epfl.ch/record/176887/files/DeprecatingObservers2012.pdf

React.NET
http://reactnet.sourceforge.net/

Flapjax (Javascript)
http://www.flapjax-lang.org/

Join or login to comment.

  • Hamish M.

    Author of Sodium is giving a presentation on FRP to the Wellington FP users group next week if you are interested.

    http://www.meetup.com/Wellington-FP/events/148519642/

    1 · December 6, 2013

  • Simon M.

    Really interesting and useful talk. Thanks to those who set it up. Excellent presentation.

    November 11, 2013

  • Edmund S.

    I'd join you if I could, but it's just a bit too far from Petone :-(

    October 15, 2013

    • James W.

      Do you need a lift? I can pick you on my way from seaview

      2 · October 18, 2013

  • Shu

    Will be driving past Petone and can give you a ride there and back if you are interested.

    2 · October 15, 2013

  • Phil L.

    I used websocket as the bridge between browser and server layer in my previous embedded project, and it is safer and more efficient that embedded UI can be implemented based on browser by HTML/CSS/Javascript, although it does require more hardware resource.

    October 12, 2013

Our Sponsors

People in this
Meetup are also in:

Create a Meetup Group and meet new people

Get started Learn more
Allison

Meetup has allowed me to meet people I wouldn't have met naturally - they're totally different than me.

Allison, started Women's Adventure Travel

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy