schedule 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. 

 
1 favorite thumb_down thumb_up 7 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

  • 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 2 years ago

Comments Subscribe to Comments

comment Comment on this Proposal
  • Naresh Jain
    By Naresh Jain  ~  2 years ago
    reply Reply

    Hi Charanjit, thanks for the proposal.

    Since Bodil is one of our keynote speakers and she will be presenting on FRP (http://confengine.com/jquery-conf-2015/proposal/1177) can you please adapt your workshop so that it builds on-top of Bodil's talk?

    • Charanjit Singh
      By Charanjit Singh  ~  2 years ago
      reply Reply

      Hey Naresh,

      I was thinking to replace "jquery" in this proposal with "virtual-dom". I think that will be more intriguing than bare-bone DOM manipulation with Jquery, while not taking the limelight from FRP. I'll be using Jquery mostly for DOM manipulation only, so I think virtual-dom can serve the purpose as well while adding more value to the workshop.

      What do you suggest? Can/Shall I still change the proposal? I think it's a minor and positive change.

    • Charanjit Singh
      By Charanjit Singh  ~  2 years ago
      reply Reply

      I think I should take my proposal back. Bodil is essentially trying to do the same thing with a live-coding session which I was aiming for with a tutorial session.

      • Naresh Jain
        By Naresh Jain  ~  2 years ago
        reply Reply

        There are 2 options:

        1. You can position it as a 90 mins code-along tutorial where participants can code with you.
        2. You position it as an experiene report or a case study where you show how RxJS (FRP) has helped you.
        • Charanjit Singh
          By Charanjit Singh  ~  2 years ago
          reply Reply

          > You can position it as a 90 mins code-along tutorial where participants can code with you.

          I thought I already submitted it as a 90 mins code-along tutorial. I suppose I could cut short the "Introduction" part since FRP won't be a new thing anymore after Bodil's keynote. I am unable to edit the proposal, it's giving Sql error when I try to update it.

          • Naresh Jain
            By Naresh Jain  ~  2 years ago
            reply Reply

            That's right you had already submitted a proposal for 90 mins workshop. However as you pointed out it was more of an intro. I would suggest you take an decent size, real world problem and show the participants how to use RxJS to design it.

            I'm able to edit your proposal, can you please share what SQL error you are getting?

            • Charanjit Singh
              By Charanjit Singh  ~  2 years ago
              reply Reply

              Updation is working now.

              I think a RSS feed reader with twist of a Social Network is decent enough for 90 minutes workshop, specially when done without help of any framework.


  • Liked Vagmi Mudumbai
    keyboard_arrow_down

    Vagmi Mudumbai - Functional Reactive Programming in your browser

    Vagmi Mudumbai
    Vagmi Mudumbai
    CTO
    TarkaLabs
    schedule 2 years ago
    Sold Out!
    45 mins
    Demonstration
    Intermediate

    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.

  • Liked Bodil Stokke
    keyboard_arrow_down

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

    60 mins
    Keynote
    Beginner

    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.