Hey, I got this new web project, but to be honest I haven’t coded much web in a few years and I’ve heard the landscape changed a bit. You are the most up-to date web dev around here right?
-The actual term is Front End engineer, but yeah, I’m the right guy. I do web in 2016. Visualisations, music players, flying drones that play football, you name it. I just came back from JsConf and ReactConf, so I know the latest technologies to create web apps.
Cool. I need to create a page that displays the latest activity from the users, so I just need to get the data from the REST endpoint and display it in some sort of filterable table, and update it if anything changes in the server. I was thinking maybe using jQuery to fetch and display the data?
-Oh my god no, no one uses jQuery anymore. You should try learning React, it’s 2016.
Oh, OK. What’s React?
-It’s a super cool library made by some guys at Facebook, it really brings control and performance to your application, by allowing you to handle any view changes very easily.
That sounds neat. Can I use React to display data from the server?
-Yeah, but first you need to add React and React DOM as a library in your webpage.
Wait, why two libraries?
-So one is the actual library and the second one is for manipulating the DOM, which now you can describe in JSX.
JSX? What is JSX?
What’s wrong with HTML?
-It’s 2016. No one codes HTML directly anymore.
Right. Anyway, if I add these two libraries then I can use React?
-Not quite. You need to add Babel, and then you are able to use React.
Another library? What’s Babel?
ES5? ES2016+? I’m getting lost over here. What’s ES5 and ES2016+?
-ES5 stands for ECMAScript 5. It’s the edition that has most people target since it has been implemented by most browsers nowadays.
7 editions. For real. And ES5 and ES2016+ are?
-The fifth and seventh edition respectively.
Wait, what happened with the sixth?
-You mean ES6? Yeah, I mean, each edition is a superset of the previous one, so if you are using ES2016+, you are using all the features of the previous versions.
Right. And why use ES2016+ over ES6 then?
-Well, you COULD use ES6, but to use cool features like async and await, you need to use ES2016+. Otherwise you are stuck with ES6 generators with coroutines to block asynchronous calls for proper control flow.
I have no idea what you just said, and all these names are confusing. Look, I’m just loading a bunch of data from a server, I used to be able to just include jQuery from a CDN and just get the data with AJAX calls, why can’t I just do that?