by Prasenjit Sharan (@prasenjitsharan) on Tuesday, August 9, 2016

+36
Vote on this proposal
Status: Confirmed & Scheduled
View session in schedule
Section
Full talk

Technical level
Intermediate

Abstract

By definition, immutable means “unchanging over time”. Immutability is one of the core concepts of functional programming paradigm. It finds its roots from languages like Haskell, Clojure, and Scala. It has seen an exponential rise in popularity and adoption in JavaScript application development over the last few years.

This talk is an in-depth analysis of what exactly is immutability and how does it fit in our current JavaScript application development ecosystem. It also discusses how can immutability help in building high-performance JavaScript applications.

The key takeaways from the talk would be knowledge of immutability as a concept and how to apply it in practical use-cases.

The audience can be a group of anyone from beginner to advanced level JavaScript application developers and architects.

Outline

Immutability, as a concept, is one of the main pillars of functional programming. In this talk, along with the core concepts, we’ll see how does one use it in practice.

We’ll try to answer the following questions -

  1. What is immutability? What does it really mean for data and data structures to be immutable?
  2. What makes it important? Why should one use immutability?
  3. What are the use-cases for using immutability in an application? What are the anti-patterns?
  4. How to use immutability in JavaScript? What are the relevant libraries and patterns?
  5. How can it lead to high-performance application development? How does it fare against traditional programming approaches?

We’ll see how immutability in JavaScript works using structural sharing, robust and easy handling of persistence, locking, copying, comparison, and maintaining states of data. All this, keeping the simplicity intact.

Speaker bio

I’m a Front-end Engineer, with experience of around 6 years in front-end development. Currently, I’m working with the product team of Helpshift, Pune, on a customer support platform product for mobile apps. I am responsible for end to end architecture and development of features; performance, and optimization of the product.

I’ve had experience in functional programming from my time at Amazon, Hyderabad, and my team here at Helpshift uses Clojure at the back-end and libraries such as React and Immutable.js on front-end.