location_city Bengaluru schedule Jul 24th 11:00 AM - 12:30 PM place ESquire Hall

Functional Reactive Programming is a slightly different take towards asynchronous programming which helps creating simple and powerful software with good architecture. FRP reduces the complexity of a asynchronous code by providing a unifying concept to cover most things asynchronous, and the result is a easy to build and easy to maintain architecture. Reactive programming is a powerful concept, Meteor is a living proof of that. FRP is another, more advanced (imho) flavour of reactive programming.

This session we'll create a simple app called YARR (Yet Another RSS Reader), using virtual-DOM and RxJS without using any front-end or isomorphic javascript framework. We're going framework-less for this session so we could concentrate only on FRP concepts which might be little hard to grasp for those who do little Functional Programming (sadly, most of Js devs). This session will demonstrate how FRP leads to a saner architecture for apps without relying on a framework for forcing your hand to do so. 


Outline/Structure of the Tutorial

  • Introduction to FRP
    We'll have a small talk about what FRP is, how it can help you improve code, some basic FRP concepts as implemented in RxJS. To get a feel of FRP and to clean the mist of "terms" around the concept.
    I guess FRP won't need much of an introduction after Bodil's keynote, so we'll cut this part short and start with building YARR

  • Specs for YARR
    We'll talk a little about what YARR is and the specifications of Yarr v1.0 we gonna implement in the tutorial to follow.
    YARR (Yet Another RSS Reader) is a take on creating a completely decentralised social network from blogs. Basically an RSS reader on steroids, Yarr provides a social network like interface for your RSS feed, concentrating on people who write the posts rather than the blogs. If you want to follow a friend, you subscribe to their blog (or facebook/twitter feed). RSS is a great technology I fell in love with when I got internet for first time, it's sad so many people are trying to kill it. Let's relive its glory in this tutorial. We'll keep this tutorial simple with only public feeds/posts with no privacy.
    PS, Yarr means "friend" in Hindi/Punjabi.

  • Tutorial: Creating YARR with virtual-dom and RxJS
    In the tutorial we'll implement Yarr using virtual-dom and RxJS, without using any external Framework. Not that I am against frameworks, but I've decided not to use them in this tutorial for several reasons:
    • Using a framework will put a limit on the number of people who can get most from this FRP tutorial (virtual-dom on the other hand is a slim API)
    • I want people to concentrate on FRP concepts and not struggle with some framework 
    • I want to demonstrate how FRP can lead to good architecture for apps without requiring a framework to force your hand to do so
    • It feels good to drop those pesky framework armour once in a while :)

Learning Outcome

The moral of the story shall be that, FRP is awesome :)

Those who pay attention in the session should walk out with a working knowledge of FRP (and RxJS) and a thirst for exploring the concept more. Not to mention the feeling of awe from exploring a new way of doing what you do everyday (asynchronous programming). 

Target Audience

Developers interested in a different approach towards asynchronous programming in javascript


schedule Submitted 6 years ago

Public Feedback

    • Bodil Stokke

      Bodil Stokke - What Every Hipster Should Know About Functional Reactive Programming

      60 Mins

      In the space of only 45 minutes, we’ll attempt to introduce asynchronous functional programming in JavaScript with RxJS, apply it to solve the problem of callback hell once and for all, and write a complete game using RxJS, JQuery and ponies.

    • Vagmi Mudumbai

      Vagmi Mudumbai - Functional Reactive Programming in your browser

      Vagmi Mudumbai
      Vagmi Mudumbai
      schedule 6 years ago
      Sold Out!
      45 Mins

      Elm combines the rigour of a strongly and statically typed language with a very nice and usable semantics. Although the language looks very similar to Haskell or ML and is based on a similar type system, it is surprisingly easy to learn. It is built on a few basic and simple principles that compose together very well to build complex applications.

      In this session we will look at the Elm language, talk a bit about its static signal graph and build a simple web app using Elm.