 Right. Here we go. Mr Lewis, how do you feel about roller coasters? Oh I like them, roller coaster of love. Let's roll. I've got a bone to pick with you. Oh that's unusual. We don't want to get on, just fine. Well like, because I've been watching you. That's a bit weird. I've noticed that you've been engaging in some degree of babel activity. I've been using a bit of the ES6, ES7. It's not quite as terrifying as I thought it might be in this. But you, you're the kind of person who says, and I've heard you say this, that you don't like writing code that isn't the code that ends up being executed in the browser. Correct. Like you don't like those little middle steps. You're kind of anti-transpiler. I am sort of anti-transpiler. I want to feel like the code I write is the code that runs, and I'm happy for a little bit of wool to be pulled over my eyes, but I want to feel like I can back out of it. So I don't think that's changed. I think for me, when I look at something like Babel, or Babely Fire or any of that, one thing, I feel like, well, I feel like I could switch it out for Tracer or I could switch it out for something else. Because, yeah, because it's an open standard, I guess there are independent implementations of that standard. Exactly. So it's like, it feels like this is the JavaScript I'm going to be writing, right? So, a while from now. So it's like, if it's going to get me there, then that's fine. I'm okay with that. And then the other thing is, if you look at the ES5 that it generates, it's like, it makes sense. It's fine. And I feel like when you look at some other things, whether that, I don't know, CoffeeScript or TypeScript, something like that, you can never say that, because it's like, you're always going to be transpiling across. I had this issue, actually. I was using a project, NPM installing something, using it, and there was a bug, and I thought, as a citizen in the internet, I am going to do a pull request. I'm going to try and fix that. And when I got onto GitHub and click, click, click, CoffeeScript. Now step one of making this fix is learn CoffeeScript. And it's like, unless I really, really care about fixing the bug, it's not. For me, it's like JavaScript become ES6, ES7, ES whatever. But like you say, this kind of, let's learn TypeScript or CoffeeScript or anything else. It's just like, I've got to really want to go off and do that for some reason. And I don't see what that reason is, because JavaScript, for me, for everything is fine. I actually really liked Babel, for no other reason than its source maps were just super. So even though I wasn't really aiming for that, when I did get an error, it was like, whatever.js line, whatever. And it was like, yeah, that is the correct line. Well, even if you're not using source maps with Babel, the output is actually pretty sensible for the most part. As you say, source maps just make it completely transparent. It's almost like you're not using a transpiler at all. Exactly. So I'm happy with the illusion of it, I think. That's probably what it comes down to. But as I say, you're right. If you look at the actual code it generates, for me, I was just like, yeah, that's not necessarily code I'd write, but that's okay. It's just about manageable and readable. So go on then. What are your big hitters in ES6 and ES7? Well, what's your favies? My faves. Contentious one would be classes. I actually really like classes because people are like, what's wrong with the prototype? You're turning your back on prototypes. I'm still using the prototype. It's just sugar. Yes, exactly. But a nice sugar at that. Very nice. Yeah, because I don't know. Refine sugar. Like if I'm doing something.prototype equals object.create the thing I'm extending, and I keep forgetting the prototype on the end there. But that's one of about... It's really difficult. It's really awkward. Compared to class thing, extents thing. But that's the one way you do it in ES6. Like with the ES5 you've got 11 billion ways of doing it and not all of them are good necessarily, or readable, or what you want to see if you're looking at your own code six months from now or somebody else's code. So it kind of felt like it was more like the code I want to write, more like the code I want to read. It's where we're going. It's a feature. It's not like somebody just went off-piste and did something that they wanted to do. And I can barely remember how to spell function now. You've got, you can, within an object, it's just the name, brackets, off you go. There's arrow. Fat arrow function was something else I really liked. Yep. Yeah, we love a bit of fat arrow. Yeah, because a number of times I use request animation frames, set timeouts, set intervals, something like that. And it's like, oh, all of a sudden I'm on the window scope, am I? Great. Thanks for that. So bind. It's like, don't worry. Don't like, I mean, I don't mind binding. It's better than var that equals this for me. You don't like that. No, I don't do that equals this. I will give it a specific proper variable name. Like what? It's based on the name of the class. Okay. Jakey this, var jakey this equals. So if it's class vehicle. Yeah. Inside that I will do var vehicle equals this, like lowercase vehicle equals this. And it's, yeah, but it makes sense then. I don't like that because it's like, well, that's just, because this is a problem in JavaScript, I think. Yes. So this, what? Like, and that's what, one of the things that arrow function solve is you, there tends to only be one option for what this is, and it's the instance name. Yeah. Which, yeah, that makes way more. So it works for me. I really like that. Destructuring I like. Beautiful. Especially for option objects. Yes. At the end of a function. With defaults, right? Took them. This is it. It becomes self-documenting. You can say, right, this is optional, but inside this object, here are the properties that I'm looking for, and here are their defaults. Yep. But in any case, I feel like, coming back to your original question, it's like the reason I would use a transpiler today is, and if and only if it lets me experience the future now, get used to like the future now, I think it's where we're going. Which you get with source maps. It feels like you can almost ignore the transpiler. Yeah, exactly. And as I say, the code that it generates makes sense to me. So I'm all up for that. Yank the transpilers. Yay. Cheers. We need beers.