JSFoo 2016

Tackling speed and performance for JavaScript

Sanjay Bhangar


A brief history of Javascript frameworks

Submitted Aug 19, 2016

Cover a brief history of frontend Javascript, from the Dark Age of IE6 when there was no jQuery to today’s modern frameworks like React and Angular.


How many dependencies do you install before you start a JS project these days? Do you think about why?

This talk will go over a brief history of JS libraries and frameworks, from the pre-jQuery / dark ages of IE6, to the rise of DOM abstraction libraries, frameworks, build tools, and finally, what we’ve come to call “modern Javascript”. What problems did each of these steps solve along the way, and what new problems did each solution create?

This history is terribly important to contextualize the tools we use and understand why we use tools when we do, and what underlying problems they are trying to solve. Any understanding of Javascript fundamentally involves understanding history: its strong notion of backwards compatibility and reliance on standards processes necessitates understanding historical reasons for quirks in the language, and reasons behind the plethora of “solutions” that have emerged.

I have been attempting to write browser-based applications in Javascript since before jQuery existed, and have followed the evolution of various libraries and frameworks. I’d love to share my experiences and journey, and hopefully leave the audience with a better contextual understanding of the reasons behind a lot of the tools we use today, and the problems that they solve (and create).

Speaker bio

Sanjay Bhangar is a web developer and artist, currently working at Mapbox, helping to build the mapping platform of the future. He is also co-founder of an arts and technology space in Mumbai, CAMP. He has worked on the pad.ma video archive project for many years as well as a digital historic gazetteer for the New York Public Library more recently. By an accident of history, he has been working with Javascript for about 10 years now.



{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}