 Hi, am I audible at the back? Okay, cool. So, hi. I'm going to talk about JSPM Package Manager. I am Kushan. I'm a student, as well as a web developer. So, how many of you have used a package manager before? Can we have the numbers? Have you used it on the front end? Anyone of you? Front end, the package managers? All right. So, back in the old days, what we used to do, we used a module in the front end. We used to have a script tab, and then we used to do source equal to jQuery, and I can load it from my local computer or from a CDN, right? But slowly, slowly, the list grows on, and then you require CDN, you require underscore library, or you require jQuery, you require bootstrap, and the module dependency grows on. So, some smart guy thought, why not create a tool which helps you manage dependencies? And that tool was called Bower. How many of you have used Bower over here? That's pretty good. So, what Bower does is it injects the code inside your index.html file, and then it manages all the dependencies. You don't need to worry about anything, and you can focus on creating that Hello Kitty World app, or any simple project that you were developing on, and Bower takes care of everything. But the problem with Bower is that you also need to use Grunt or Gulp. These are the task runners which you use to bundle your app for production. You don't want your user to be loading all these, like 15 to 20 dependencies, right? You want a small, solid, minified, or as we call it, ugly-fied file by the user, which is loaded fast, and you can play with the Hello Kitty app you were making. Slowly, slowly, you know, meanwhile, back in the days, in 2013 or 2012, NPM community was rising, and they were creating these amazing tools. Some smart guy, Web developer, you know, he thought, why not use these NPM tools in the front end, like writing my browser? And that is how Browserify was born. And Browserify used to use... No, it still uses CommonJS, and it allows you to use the great, amazing NPM modules right in your browser. But the problem with Browserify still is that it requires you to use Grunt or Gulp to bundle the code and deploy it to the user. Like, it is still solving the problem of using NPM and the awesome, amazing packages made by the NPM people over there. So then in the story, we have Webpack. What Webpack does is it tries to kill every bird with a single stone, right? It bundles your app, it creates everything, it creates that dependency charge into nice segments of code which are polystatic assets, and you can use the image, you can even require a CSS file, and then Webpack will take care of it. Webpack will bundle it, minify it, and let you use the CommonJS module system, which you've been really liking. But the problem with Webpack is that you don't know what's happening back there. It is doing some kind of magic, you know. It is using CommonJS, but it's doing some magic. I really don't understand. You really need to dive into the documentations and see what it actually is doing. Last year, ECMAScript 2015 was launched and, you know, those guys finally included module system in the JavaScript community. Browser's haven't supported it yet. So some smart guy, you know, JSPM created by Guy Bedford, he thought why not use the ES6 module system into the browser system, and that is how what JSPM came into existence. It allows you to use CommonJS, AMD, as well as the latest JavaScript module system into your browser. And it is really easy to configure up. Like back in the old days, like I used to add script source tag in Jack Query, and it gets running. That is what JSPM does. It's not complicated like Webpack, and you, this is how you do it. You simply do NPM, and then you use JSPM, and suppose I want to use JSPM install query. I need to use Jack Query, I just do JSPM install query, and then I can serve all my static files using HTTP server or Python minus HTTP server. Like, it's that simple. This is the code that we look in JSPM. You can simply like script tag, and you can use system.import mainJS. That is the main file which I have written over here, and it requires Jack Query. So, no more complicated stuff, and you can see in your browser when you do network requests, you can see that actually my main.js file is getting loaded, and I can debug it very easily. I really doubt that Webpack people can do that. Webpack has just one Webpack Dev server running behind it, and it's doing all the magic, and how it's doing, I still can't figure out. So, this is how JSPM works, and by JSPM awesome, it's not being adopted by the community as of now, but it's the future. Currently, Webpack is having the same. So, it's future proof. It's using ES6 module learning system. There's no hack or pre-compiling, you can just serve the static files and installs, and there's no Dev server or any background process, and it feels natural to me. So, that was JSPM. Thank you. Thanks, Keshav.