Whiskey Web and Whatnot

A whiskey fueled fireside chat with your favorite web developers.


14: Ember vs. React, Jamstack, and Holes in the Hiring Process with Chris Manson

Show Notes

They say if it's not broken, don't fix it. But if it is broken...keep iterating? While not everyone may agree on how to solve the technical headaches that come with one language or another, developer and Empress Creator Chris Manson has a few ideas. As more apps emerge, more problems inevitably appear. Chris has several non-negotiable best practices for keeping it simple and helping the developers who follow in his digital footsteps.  Also a member of Ember's core team, Chris has been working with the framework since December of 2011. After beginning his startup with Angular, Chris threw in the towel and pivoted to its simpler and more intuitive counterpart. Nevertheless, Ember is far from flawless and, as with most things, could always improve for the users who need it most. In this episode, Robbie, Chuck, and Chris discuss the fatal flaws of several old and emerging frameworks, the breakthrough shifts in the Ember community, why comparing Ember to React isn't always a fair match-up, and holes in the developer hiring process.  Key Takeaways * [00:32] - Whiskey review and a history of Glendalough.  * [14:14] - How Chris was introduced to Ember. * [25:10] - Chris's thoughts on Husky. * [29:41] - What Chris is working on now. * [32:55] - Why Chris has a vendetta against ember-cli-addon-docs. * [37:34] - What's changing in the Ember community. * [54:28] - The complexities of hiring developers. * [64:50] - The future of frameworks. * [73:04] - Chris's problem with TypeScript. * [77:18] - Chris's hobbies outside of developing. Quotes [26:42] - "This is one of the things that I don't like about repos or projects where you get to make 1,000 decisions because new people who don't know the decisions you've made, don't know the structure of your app, don't know your repo, go into your repo and go, 'this is too complicated', bounce, and don't contribute, and that's not ok for me." ~ Chris Manson [https://twitter.com/real_ate] [28:49] - "The amount of times that we get people who are actual juniors bouncing against something that you've built and then you realize, 'oh actually, I did build that in a kind of complex way, I shouldn't have,' and then you internalize that, and then the next time it comes across you go, 'I could do this fancy and save 10 lines of code, or I can be verbose and simple.' Always pick verbose and simple." ~ Chris Manson [https://twitter.com/real_ate] Links * Glendalough Whiskey [https://us.glendaloughdistillery.com] * Jamstack [https://jamstack.org] * The Essential Scratch & Sniff Guide to Becoming a Whiskey Know-It-All: Know Your Booze Before You Choose [https://www.amazon.com/Essential-Scratch-Sniff-Becoming-Whiskey/dp/0544520602] * Angular [https://angular.io]  * Ember.js [https://emberjs.com] * Some Deprecations seem to side-step the deprecation workflow [https://github.com/emberjs/ember.js/issues/19753] * Alex Matchneer [https://twitter.com/amatchneer] * Ember Conf [https://emberconf.com] * Husky [https://www.npmjs.com/package/husky] * Ember Learning Core Team [https://emberjs.com/teams/] * ember-cli-addon-docs [https://github.com/ember-learn/ember-cli-addon-docs] * simplabs [https://simplabs.com] * Jen Weber [https://twitter.com/jwwweber] * Melanie Sumner [https://github.com/MelSumner] * Empress [https://www.npmjs.com/package/empress]  * Embroider [https://github.com/embroider-build/embroider] --- Send in a voice message: https://podcasters.spotify.com/pod/show/whiskey-web-and-whatnot/message


Robbie Wagner: [00:09] All right. Hey, everybody. Welcome to another Whiskey Web and Whatnot with myself, Robbie Wagner, my partner as always, Charles W. Carpenter III, and our guest today, Chris Manson. Hey. How's it going?

Chuck Carpenter: [00:23] Hola.

Chris Manson: [00:24] Going great. Thanks for having me on.

Robbie Wagner: [00:27] Yeah, thanks for thanks for joining us. So, yeah, today we have a special whiskey. I think you said this is close to where you live, Chris.

Chris Manson: [00:38] Well, this is close to where I, well, I say I was born. That's also a lie because a lot of the things that we say are tall tales in Ireland. But I grew up in a place called in a County Wicklow in Ireland, and Glendalough is like one of the biggest tourist attractions in this really idyllic valley with two lakes in the middle of it and greenery, and it's just awesome. But, yeah. So, Glendalough whiskey, I've not actually tried it. I recommended it, but I've not tried it.

Chuck Carpenter: [01:14] I think it's a good thing that you haven't tried it yet, even though perhaps sacrilege being born in a town with which it is produced. But it's nice to be surprised upon here, even though I don't always practice what I preach about that. What is this logo?

Chris Manson: [01:31] It's it's a bit of religious iconography and a bit of what seems to be a bit of pagan iconography as well. Like, Ireland is a bit of a strange thing. It's like Celtic ancient history, blah, blah, blah. But it was very Catholic for a very long time. And Glendalough, one of the things that they have there is like a round tower. And sometimes, if you ever see, like, postcards of Ireland, you might see these round towers. But they were like places where in the 16 hundreds or whenever the Vikings were doing their Viking things, all the Catholics would be in their churches. And they'd get into the round tower where the door was like 6ft 10ft off the ground, and then they'd pull up the ladder. So it was like a defensive thing to save all their golden goblets, et cetera, et cetera. Glendalough is it has a round tower, it has a church there, et cetera. It's kind of one of the things that it's known for, the home of golden goblets. Well, Ireland had a nickname, the Island of Saints and Scholars, all this kind of stuff.

Chuck Carpenter: [02:43] Interesting. Speaking of golden goblets, I yet again haven't brought in a decent whiskey glass into the office, and I did a tall water glass the last show. I decided this time, just a coffee cup.

Chris Manson: [02:58] I'm going to make you a bit jealous.

Chuck Carpenter: [02:59] Yeah, because you probably got a Glencairn.

Chris Manson: [03:01] I do have myself a little Glencairn, although mine's a slightly different shape to yours. Oh, yours is the insulated one, isn't it? Yes, but the thing is, I brought that out to the office for your benefit because I don't drink whiskey that way. I usually drink whiskey in a more of a tumbler with a nice good dollop of ice.

Robbie Wagner: [03:22] Same. Chuck. Gives me a lot of crap for it, but that's what I do.

Chuck Carpenter: [03:28] Especially. When you're trying one for the first time. The first time, you've got to have it as intended and then make your adjustments.

Chris Manson: [03:36] Well, that's why I've got both glasses.

Chuck Carpenter: [03:38] Yeah, there you go. Do we have any idea on the mash bill of this?

Robbie Wagner: [03:41] Percentage-wise? No, but it is, I think, just corn and malted barley, I believe.

Chris Manson: [03:47] I know that you all talk about this all the time, but I don't think I've ever heard of the phrase mash bill before your podcast, so I don't know. I think there is usually a standard with Irish.

Chuck Carpenter: [04:00] Educational.

Chris Manson: [04:01] Like Irish whiskey is a thing, but I don't know what the answer is. I don't know what that standard is.

Robbie Wagner: [04:07] Yeah, I couldn't find the percentages.

Chuck Carpenter: [04:09] Oh, okay. Well, that's all right, but if you know a little bit about what's in there and then maybe we'll have a guess after we try it. I just opened mine, by the way. I don't know if I'm getting ahead of you guys.

Robbie Wagner: [04:20] Open it here.

Chris Manson: [04:21] Oh, nice.

Chuck Carpenter: [04:22] Oh, there it is. See somebody else.

Chris Manson: [04:25] I haven't got the plastic off this one. It's been hidden. I literally hid it in the back of the press because I need to translate for non-Irish people. A press is a cupboard. Is a cupboard enough? Does that mean?

Chuck Carpenter: [04:41] Yeah, that's good. No, I've got that. I've been there. So I've heard the Irish slang, but. I never heard press.

Chris Manson: [04:52] It's one of these ones where it's just so normal, we call them a cupboard, we just call it the press. It's like, I'll get something out of the press there for me, it's so normal that we often forget that other people don't call them presses. I'm going to go for the soundbite now. Let's see.

Robbie Wagner: [05:11] Oh, there you go.

Chuck Carpenter: [05:12] Solid. I'm impressed.

Robbie Wagner: [05:14] So I have the back of the bottle facing me. The guy on the front is St. Kevin, apparently.

Chris Manson: [05:21] So there's like a cave up in the mountains near Glendalough where St. Kevin had, like, this retreat where I assume he lived for a long time, where he just kind of like was a hermit for ages. And you can go visit that cave. It's a bit of a walk and a bit of a trek, but it's interesting.

Chuck Carpenter: [05:41] Interesting. What I like about Irish whiskey well, hold on, I had one other comment. Is Kevin, not the least Irish name you've ever heard?

Chris Manson: [05:49] Really? I don't know.

Chuck Carpenter: [05:51] Yeah, it seems like.

Robbie Wagner: [05:54] Katelyn's dad is Kevin and their family was Irish.

Chuck Carpenter: [05:57] Born in Ireland?

Robbie Wagner: [05:58] At some point someone was he wasn't but.

Robbie Wagner: [06:01] Right, so, I mean, you know, given that name in America, my my son's name is Aidan, spelled the Irish way.

Chris Manson: [06:09] Nice.

Chuck Carpenter: [06:10] Coming back to the whiskey. What I like about Irish whiskeys is they have a smoothness to them. They are, like, oftentimes very smooth.

Chris Manson: [06:18] Do you know why that is?

Chuck Carpenter: [06:21] I would love to know why. I'm guessing with this one, this whole bourbon barrel, aging sherry barrel finish.

Chris Manson: [06:28] One of the things that used to be a definition of Irish whiskey, as in you couldn't call yourself Irish whiskey unless you did this was it needed to be triple distilled. So that means that you sometimes don't get as much of the body, but you get the smoothness. So an Irish whiskey was always defined as being super smooth, and I tended to not like Irish whiskeys until recently until they started doing more interesting Irish whiskeys. Because I like a Scotch, I like to chew my whiskey. You know what I mean? I want to feel it.

Chuck Carpenter: [07:05] I did just chew this whiskey so that I could get prepped for a proper taste. No, we learned this we were in Nashville a couple of weeks ago and went to a tasting of some Tennessee whiskey, and they had us do chew it first. So basically just kind of move it around in your mouth a little bit to get your tongue salivating so you'd have a coating, and then you don't have that burn kind of taking away from the other flavors.

Chris Manson: [07:27] That is smooth enough that I would probably be happy to continue with that meat in the Glencairn glass.

Chuck Carpenter: [07:34] Yeah, it's real good. I like it quite a bit. It's a little bit like there's that teeling that's rum barrel finished. A little bit like that, but actually more robust. For me, it has more flavor than that. Not just smooth like that, but I'm getting a little, like, chary bit. I don't know if that's the bourbon barrels part of it. Little caramel.

Robbie Wagner: [07:57] Yeah. I'm not getting a lot of charm. It's mostly sweet for me. I don't have a really defined palate, so I can't tell you the notes.

Chuck Carpenter: [08:05] But everybody's making it up. You just pretend like, you know.

Robbie Wagner: [08:10] I think some dried figs.

Chuck Carpenter: [08:15] I was thinking apricots, but then you went fig, and now I feel fig.

Chris Manson: [08:19] There's a book that I desperately want to get that is like, trying to teach you some of the different tasting and smelling terminology, the words that you should be using, and it's like the scratch and sniff guide to whiskey. It sounds like a joke, but I've heard people who like wine tasting and whiskey tasting, like, really recommend this thing. Because if you just have no idea what you're looking for and you don't have any way to, in an isolated way, identify flavors and smells, then you're lost.

Chuck Carpenter: [08:58] Yeah. You just need a shared vernacular. Right. That's what any language is. Does it make sense? Otherwise, you are just kind of making it up.

Chris Manson: [09:05] Yeah. Well, I'm glad that's good, actually. The whiskey from my home county was going to be like one of those, oh, no, I'm going to give away the rest of this bottle situation.

Chuck Carpenter: [09:18] Yeah, that would be so sad, and it would really be a negative turn. For the rest of the show, I think. What have you done to us?

Chris Manson: [09:28] The worst thing for me is I wouldn't have anything to replace it with. This is the only whiskey in the house right now.

Robbie Wagner: [09:33] Yeah. For me, I think this is probably one of the most drinkable whiskeys we've tried. I guess not being full bourbon, it's kind of like maybe it's a little less proof, too, but it's like I could drink this whole bottle in, like, a sitting. I shouldn't, but.

Chuck Carpenter: [09:51] You're going to regret that, either tonight or the next morning, for sure. But yeah, I will agree with that, though. I think that in the Irish whiskey category, I would say that this is one of the more flavorful ones. That is like, a thing that I typically have with Irish whiskeys that could be a little too light, a little too smooth, a little, like, too easy. And this one is a bit more robust. For me, even though it is, like, lightproof, it still has it hangs for a little bit, so I enjoy it. I'm going to go first, but Chris, I don't know if you've been informed of the tentacle scale.

Chris Manson: [10:27] I'm a longtime listener, first-time caller, so I am aware of the tentacle scale.

Chuck Carpenter: [10:32] Perfect. I'm going to set the tone here and I'm going to give this a seven. Yeah, this is one of the I've had a decent amount. This is definitely within top five Irish whiskeys I've had.

Chris Manson: [10:47] Nice.

Robbie Wagner: [10:48] I think I would agree. I think I was thinking maybe six, but I think I could go up to a seven. Honestly, it's pretty good. So we'll say seven.

Chris Manson: [10:58] Very similar to you, Robbie. I would probably, on the face of it, give this a six, but I'm going to roll up to a seven because I'm going to put this right at the top of my Irish whiskeys. Like, this is my favorite Irish whiskey. Full stop. Now, the thing is, you can't give it an eight because Ireland is quite close to Scotland, and I have been to Edinburgh, and I have tasted the fruits of, like, just Scotch everywhere. And there are better whiskeys out there. So, yeah, it can't get the eight.

Chuck Carpenter: [11:33] I agree with that. Have you been to the wee old motherland of Kentucky?

Chris Manson: [11:37] I have not.

Chuck Carpenter: [11:41] So that's where I was born. And I do have an affinity for bourbons. Some ryes I definitely enjoy some ryes. I don't know. I've had a lot of Scotches, and it's not for me. I like some McAllen's. That seems pretty drinkable to me. But, yeah, they get a little I feel like maybe it's good, though, because I have one and I'm like, okay, yeah, I'm good there. I can't really keep going with this through the night for me because it just tends to be, like, very overpowering and lingers for a while. Japanese whiskeys, though, some of those can definitely have some of that power, but then not strong. Anyway, this is all subjective, but I'm coming around to agreeing with you, really, is that my preferences are in more the bourbon area, but for this, it stands strong.

Robbie Wagner: [12:34] I think for scotches, there's so many different possible flavors. So the ones that people usually like scotch, drinkers scotches are not for me. But there are a lot of scotches that I do like. I've done like a scotch flight, thinking I wouldn't like any of them, and I liked most of them. So there's just the really peaty, really taste, like a Sharpie style ones. Those are not for me. But the others, there's a lot of different flavors that can be in there. I like most of them.

Chris Manson: [13:04] So you say about having a flight. My best whiskey experience was a birthday that my wife organized, which was a weekend in Edinburgh. Like, we were living in the north of England, and we just got the train up and we went to the hotel, went to the first bar, fly to Whiskey, and then it was just that over and over again. And the menus in Edinburgh are like they're like eight pages long with small writing. Like, you can try everything. And it was incredible. I can't remember half of them. Wrap up if you're going in January, though, it is mighty cold.

Chuck Carpenter: [13:47] Yeah, I think I was there in like October or something, and it was still cold for me, but I live in the desert. People thought I was weird, but that's okay.

Robbie Wagner: [13:59] Yeah. So I guess I didn't really plan any specific tech topics for this podcast, but I figured we could do kind of the standard Embery stuff. Like, tell us a little bit about how you first learned about Ember and got into it.

Chris Manson: [14:19] If that's the way to start. We should have organized this podcast recording for about two or three weeks time because in two or three weeks, it's going to be my ten-year anniversary of using Ember. So I started in December 2011 as a table flip moment when I was two months into writing my startup. Like, I was the technical founder, I had to build the thing for the first prototype, the first thing to show investors, et cetera, et cetera. And I had built it in Angular before Angular 1.0 came out, and it was bananas. And I wasn't even a very good developer back then. Like, I had no business being the technical founder of a company at that stage, and I just couldn't take it anymore. When you did a production build back then, they hadn't ironed out all the problems. And the way that their dependency injection worked was string based. But then it would change the names of the variables and then suddenly things wouldn't inject in the right way because the name of thing changed. And it's like I just couldn't take it anymore. So I table-flipped, rewrote the whole thing in a few weeks in Ember and it's been great ever since really.

Robbie Wagner: [15:44] Nice. Yeah, you got me beat by probably like six months or so. I forget when I started, but it was in 2012 sometime was my first Ember.

Chris Manson: [15:53] That would have still been pre-1.0, though, wouldn't it? That was like early 2012.

Robbie Wagner: [15:59] Yeah, it was either pre-one or like one had just come out, I forget, but it was pretty early.

Chris Manson: [16:05] I was there for the state machine router, so I think that came out well. It started with a state machine router and then in January 2012 was when Alex Matchneer, I think it was just was like, what are we doing? Let's do this properly. And he just like replaced the whole thing right before 1.0 and it was just like, it was great beforehand. Little bit of wrangling to get it to do what you wanted it to do, but afterwards it was leagues ahead of anything else that was out there. It was just fantastic.

Robbie Wagner: [16:45] Yeah, that's one thing that no one else has really done. Well, I guess we're starting to get good router implementations, but yeah, I mean, like React, it's like we don't care. Do whatever you want. And there's a lot of that, and that's a fundamental part of having an app, right? You got to transition somehow. So yeah, I don't understand how there aren't more, but.

Chris Manson: [17:09] It's surprising to me doing this for ten years and like starting your app, thinking about routes or routes, sorry, I need to also translate here. I'm going to say routes plenty of times here if that's what we're talking about.

Robbie Wagner: [17:25] It's fine.

Chuck Carpenter: [17:26] Plus, we have many international listeners.

Chris Manson: [17:32] Thinking about your app, like, what is the route going to be? And just not having to think about, is this going to be? Can you share a link to this thing? It's just not something that you have to think about implementing if you just do it the quote-unquote Ember way it works, the way that you expect it to work. And it's bananas that ten years later there are still apps that I come across that are like, oh, look at my new fancy app. And it breaks the router, it breaks links, you can't right-click things and open a new tab. It's just bananas.

Robbie Wagner: [18:08] It's crazy. So have you been using Ember only for that entire time, or did you ever use anything else?

Chris Manson: [18:16] I've dabbled in other things at various points, but for five years, starting 2011, I was building my startup, which was Ember in the front end Node in the back end, so it was JavaScript all the way. I skipped to the whole Ruby on Rails thing. If somebody showed me a Rails app, I wouldn't really know what to do. I could poke around at it, but it's like, where does this function come from? I have no idea. It's just impossible. That was kind of when I was the one deciding that's what I was doing. And then when that startup ended like most startups do, I started doing the consulting thing, and we were trying to do a full service. We'll build your app for you. We'll start up in a box, give us X amount of dollars, euros, pounds, whatever the case may be, and we'll do the MVP for you really quickly. Because with Ember, you can do MVPs incredibly quickly. You can get actual not just MVPs as demos, but like first versions of people's apps out the door so fast. And so we were doing that for a while. And then as the internet is the internet, I had a few consulting situations where it's like, oh no, we've got a React native thing that is not working the way that we wanted to. You go in, you figure out that they had no idea for router at all, and they loaded like hundreds of megabytes of data on the first load of this mobile app, and it's like, oh, for God's sake, what are you doing? And then just kind of trying to bring a few Ember ideas to these React apps or Vue apps that I've kind of come across. But other than that, it's been, I would say, 90% plus the time I've been doing Ember, which is awesome. It's like, I know that I am incredibly lucky to not have to jump out of this field.

Robbie Wagner: [20:14] Oh, yeah, I've had some dark days. I had to do some Angular for a year or two. And that was kind of before I started really being in the Ember community. I was using Ember, but I wasn't making add-ons or contributing back. So I wasn't hooked yet, I guess. And so I did Angular for like a year or two, and I was like, this is terrible. I do not like this. And so I just ran back to Ember, and yeah, I haven't looked back ever since then, so I know you have. I don't know how many how many add-ons would you say you have.

Chris Manson: [20:49] I have too many add-ons. Oh, God. So I was talking at EmberFest, and I did a little bit of conference-driven development. So I wanted to talk about something that was kind of slightly conceptual that I hadn't actually finished 100%. And I started my conference-driven development with 170 repos on my GitHub, and I finished with 185, I think it was. So, like, I tend to invent things a little bit too often, and if that can be a separate repo, I'll just do it because it's easy to start a new add-on. Let's just do it. Why not? And it's like I could see the number taking up in the hours preceding his conference talk. It just gets ridiculous sometimes.

Robbie Wagner: [21:45] Yeah, I have no idea how many I have. Because you lose track, right? Because you get rights to other people's, and they don't necessarily transfer it to you. I don't know, but it seems like every add-on at least half of the top 100. I'm sure both of us have push rights for sure.

Chris Manson: [22:04] Yeah, it's a bit funny when you get push rights to a new thing, and then you just quickly check the NPM downloads, and it's like, oh, 20,000 downloads a week.

Chuck Carpenter: [22:15] They become like additional children to you as well. They have needs. They need constant supervision and growth, and care.

Robbie Wagner: [22:25] They need embroider support.

Chris Manson: [22:26] Oh God, don't get me started. Ember 4.0 support the newest thing. But it's interesting that you say that. Yes, they have needs, and there's a point at which it gets too much. You can't keep everything up to date, but there are coping mechanisms that you can implement to like instead of it being like I need to spend 2 hours effort multiply by 185, you can spend 3 hours effort and then duplicate that everywhere. So one thing that I've been implementing for all of my add-ons recently is automatic change log generation based on pull requests. So you can just do NPM run change log, and it pulls in the list of merge requests, gets the detail of who the GitHub repo, the GitHub username is that actually did the work, and it just adds a line, and that saves like half an hour, 20 minutes multiplied by 185. That starts to add up.

Robbie Wagner: [23:34] Yeah, definitely. Are you using Learna change log for that?

Chris Manson: [23:38] Learna change log is an interesting bucket in my brain where it seems quite close to this conventional commits. Is that what it's called?

Robbie Wagner: [23:49] Yeah. Where you do like fix colon.

Chris Manson: [23:52] And it has a requirement on either the people who are producing the change, the PR, or people who are maintaining the repo that they have to do something correctly or else it doesn't work. So if you don't add the labels or if you don't do the setup correctly or whatever, somebody else who's doing a release might get it wrong.

Chuck Carpenter: [24:18] So then you have to decide whether you put up. Yeah, no, this is an interesting thing because it's actually a problem that I've had to address not in open source, but when managing teams across time zones and deciding, oh, there you go good call. And then deciding a shared way of working but then enforcing that shared way of working. So is that really good culturally or whatnot? So you can utilize pre-commit hooks and then do things with Husky to enforce those kinds of messages. So then it will say oh, you try to type this in, you have to do it this way. Computers will kind of annoy you and make you do a thing. Is that going to dissuade you from contributing? I don't know. Hard to say. But there are things like that.

Chris Manson: [25:09] So this is the thing. So I can understand Husky as a decision that a company would make, like, I want my globally distributed team to enforce these rules. And we know that they're not going to read the employee handbook on how to set up all the things. So let's do the right thing and make it like a Lint thing at the commit level. Like it's the right thing to do if that's what you need. But you cannot do that in an open-source world because you have to imagine this like, essentially, a junior. And this is one of the things that I get on my high horse and my soapbox. Very often when this comes up, you have a junior that's learning how to do JavaScript, maybe knows a little bit of HTML, they see a change in your repo, they're like, oh, that's the wrong color, I can change that. And every single barrier that you put up between them deciding that they want to make that change and making that change, like, increases the bounce rate tenfold. You know what I mean? It's this drop-off rate. And we, as experts, as seniors, I'm assuming you're both seniors.

Chuck Carpenter: [26:27] I am 44. I'm old.

Chris Manson: [26:30] Nice. But we have to make sure that we don't pull up the ladder from the work that we're doing. And this is kind of back to dumping on React for a second. This is one of the things that I don't like about repos or projects where you get to make a thousand decisions. Because new people who don't know the decisions that you made don't know the structure of your app, don't know the structure of your repo. Go into your repo and go. This is too complicated. Bounce and don't contribute. And that's not okay for me.

Robbie Wagner: [27:04] Yeah, I've had many heated discussions with people in the Ember community, and I won't name names, but like, for example, if you go to a repo and everything uses, like, four spaces instead of two, right? So the blueprints are going to generate two spaces. So anytime you want to update it, you're going to have problems. And then, like, oh, we also want to not have any semicolons or things that aren't in the blueprints and not in the default Prettier configs. And you have to override all this stuff. And why if you want people to contribute, just use the defaults. It's not that hard.

Chuck Carpenter: [27:39] Yeah, subjectivity is a big issue and yeah, I completely agree with you, Chris. If you want new people to get involved in open source, which helps them become better, which helps them see all kinds of different patterns and ways of solving problems, well, then don't make the very basic things super hard for them.

Chris Manson: [28:01] And that's the altruistic way of communicating it. But you can think about it in an entirely selfish way as well. Like, okay, make it easier for them so they can learn. But if they're going to contribute to your repos, make it as easy as possible for them to do the work that you don't have time to do. It's a no-brainer from my perspective, and it's so bizarre to me that this is even a conversation that I need to have with people. And I don't get it. I don't get why it's not the first thing that everybody in the world is trying to optimize. But I guess people lose track, and I think maybe this is my experience on the Ember learning team. And Robbie will attest to this as well. The amount of times that we get people who are actual juniors bouncing against something that you've built, and then you realize, oh, actually, I did build that in a kind of complex way I shouldn't have. And then you internalize that, and next time it comes across, you go like, I could do this fancy and save ten lines of code, or I can be verbose and simple. Always pick verbose and simple next time around.

Chuck Carpenter: [29:14] Right?

Robbie Wagner: [29:14] Yeah. I guess. Continuing on the topic of add-ons and different things you've been working on, I know both of us it's been years now, I guess, since we were kind of collaborating on, like, Prember and static site things, but I know you've talked a lot about jam stack in general in talks and just all the time, but yeah, what are you working on now? I guess in terms of that stuff.

Chris Manson: [29:40] It's interesting because there's two ends of the spectrum that I'm working on at the moment when it comes to Jamstack. There's the normal kind of stack site generation, SEO, Ember meta kind of implementation of something. But then there's like a weird side thing that has taken a lot of my time recently. So I'll start with the normal one, and then we'll go weird later. But actually, it's interesting because this overlaps with something that you've done a lot of work with as well. Robbie, Ember CLI add-on docs. I have a bit of a vendetta where I want to make that go away as quickly as possible.

Robbie Wagner: [30:20] Yes, it's a love-hate relationship. I keep it around because I'm too lazy to convert to anything else. So I'm interested to hear more about, like, I saw something where you had like, a converter, automated thing.

Chris Manson: [30:36] So I'm working on a converter at the moment. So I've been doing this thing recently where I live stream some open-source development that I do on a Thursday morning, which is kind of awesome. Again, super privileged to be able to do that because I work for a company called Simplabs here in Europe, and they do like a 20% time thing, so I get one day a week where I can work in open source, contribute back to the Ember community. And I'd been doing some live streaming stuff with Jen Weber starting a few years ago, doing a bit of coding with Mel Sumner and like, various things, and I was like, you know what, this year I'm going to take it. A bit more seriously. I'm just going to do it every Thursday morning. It's literally the worst possible time that I could stream because all of America is asleep, and that's where all of the Twitch viewers are. But I get to code in the open with a bunch of early riser Americans and Europeans and people from Australia actually joining in. And the thing that I've been working on recently is this Ember CLI add-on docs migrator to a Field Guide. It started life as an Empress project which is just Jamstack stuff where you write Markdown and it generates a site for you. It started life as, like, a style guide generator because Ember CLI add-on docs had this huge problem where it was using Tailwind. And if you were writing an add-on that you wanted to document using Ember CLI add-on docs, the Tailwind styles would bleed into the components that you were trying to document, and your documentation site wasn't a valid representation of what the component would look like in your app as you consume it. I'm pretty sure that's like one of the number one open issues that has popped up a thousand times in the add-on docs repo.

Robbie Wagner: [32:54] FastBoot is probably the biggest problem.

Chris Manson: [32:57] Well, yea.

Robbie Wagner: [32:57] And I'm sure you're you're going to get to that, but without server-side and or static rendering, you're not going to get any SEO, and I don't know, that's probably one of the huge hindrances which I'm not helping the Ember community. Keeping add-on docs alive makes us have less.

Chris Manson: [33:16] That's exactly the main reason for my vendetta against it. It's not like one of these situations where it's like not invented here. I don't want to help Ember CLI add on docsto fix itself, but there were a bunch of decisions made very early on to take over the router and do this weird hack that is like the GitHub 404 JavaScript hack thing. If any of the listeners want to play along with this little game, go to any Ember CLI add-on docs website, including the Ember CLI add-on docs documentation itself, and view source. And then you'll see this incredible JavaScript, like, just script in the HTML, not a linking to a script that's like, this is a hack. Don't do this. This is like just so that GitHub pages will render this properly, blah blah blah blah blah. And you will see this as well sometimes if you're refreshing an app built with Ember CLI add-on docs where the URL flickers just as you as you refresh because it hits this 404 and then goes back to the root in the Ember app. It's really weird stuff, and we could fix that, maybe. But the amount of effort to get that into a place where it's not doing weird stuff and then bring everybody along with you is probably more than just writing this migrator thing to Field Guide, which has a few different architectural decisions that make it a little bit simpler.

Chris Manson: [35:01] Like, first thing is that it just writes Markdown. You don't have to build this weird application with weird components that refer to code snippets that can self-execute, et cetera. To do like a self-executing code snippet in Field Guide, you just do a Markdown code block and make sure the language is handlebars, and then it just executes it with the demo on the top and the code on the bottom. And that is actually in the HTML when you view source.

Robbie Wagner: [35:35] Nice. Yeah, I haven't tried it out, so.

Chris Manson: [35:39] The thing that I'm working on at the moment is a migrator. So because of the fact that the way that Emperor CLI add on docs is built, it's like gives so much power to the user. It's going to be impossible to get everybody all the way there, but we can get most people most of the way there. And to make it an easier transition, I built a Field Guide template because Empress has this whole idea of having a core add-on that's the brains of the thing that it's doing, and doing the Markdown conversion, et cetera, and then having a template that you can just swap out. So I built a template that's actually a fork of Ember CLI add-on docs. So when you migrate, your docs doesn't change the style. So you can in the future, and we will provide some other templates, but when somebody's trying to decide, should I migrate? I don't want them to also have to deal with a style change at the same time. Make their fewer variables.

Chuck Carpenter: [36:41] Right. Make it as seamless as possible on them.

Chris Manson: [36:44] Exactly. And then, once they've converted everything over to Field Guide, the act to change the template is literally replacing one NPM package because Empress templates are just Ember add-ons.

Robbie Wagner: [37:01] Nice. So in terms of the static generation and things, so we've had both you and I have had a lot of issues with Embroider and Ember 4. I think Prember itself doesn't support one or both of those, is that correct?

Chris Manson: [37:19] So it's an interesting one. We're in an interesting transition with Ember right now, 2021. Everybody's kind of a bit on edge because we've had a difficult year. But there are three changes in the Ember community that are massive, massive changes that will affect everybody. The first one has already happened, and we've had a little bit of fallout from, and things stopped working where I think, it was in 3/27, maybe 3/26. Around that time, we released the first Ember that had real modules in it. Up until then, we were doing weird, funny background stuff that whenever you saw import blah from at Ember, blah blah blah blah, all it was doing was rewriting to the global Ember namespace. Like it was doing just Babel transform, Ember dot whatever, whatever, easy, easy. But we are now real modules all the way. And things broke, things got mislaid, and like, oh, that import doesn't work anymore. But it was fine 5 seconds ago. But anyway, the second thing is Ember 4, which is big, and there's plenty of problems around that and the fact that we're now in real modules, that means we need to do the Ember auto import V2 for Ember 4.0, and that's going to break a whole bunch of things. And add on authors are all weeping every day nowadays, but Embroider is the thing that most people talk about. But Embroider is not currently on the cards to be released at any time. There is no due date for Embroider. So people are breaking their backs trying to fix their things for Embroider, even though it's not actually going to be released anytime soon.

Robbie Wagner: [39:20] Well, the Embroider safe and optimized Ember try scenarios were added to the blueprint. I think is what caused that because I've been fighting that. Like all of my add-ons broke, and then I've been fixing add-ons which depend on add-ons, which depend on add-ons, and you just can't fix them all. And then when I find one that I can't fix, like Ember Git Config, you now own that and are working on fixing that.

Chris Manson: [39:48] This is something that happens in the Ember community that doesn't happen anywhere else. We have this blueprint idea that we also have an upgrade system that most people use to upgrade between versions. That includes changes to the blueprints. Like it's fantastic, it's a blessing and a curse at the same time because whatever goes in that blueprint suddenly becomes 100% of the Zeitgeist. And something that I've been playing with a bit recently with my add-ons is the fact that my Ember betas stopped working for some apparent reason. And you look at the fail and it's like the most obscure error that you have ever seen in your life. Because what happens in Ember? Both of you know this already. I'm just repeating it for people who might be listening who don't know how it works for a major release in Ember. There's no new features in Ember. The only thing that happens is we delete all the deprecated code. So if there was a deprecation added in three x any three version, maybe not the last few, but I don't know exact rules around that. But any of those deprecations are just deleted from the code, which means you get weird errors when you're running beta because the code that you were using has suddenly been deleted, and there's nothing in there to tell you you're doing the wrong thing because the deprecation has been removed. So I have another invention. This is why I have too many repos where I have something that hooks into the deprecation process similar to the Ember deprecation workflow add-on that throws an error with the deprecation message. That's all it does. It's like a tiny little add-on. But you can add it as an Ember try scenario because you can add new dependencies and Ember try scenarios, and you can get a fail for deprecations with the deprecation message instead of the random your code has been deleted. Good luck thing. And that has been invaluable for me converting my add-ons to work in Ember 4. But like back to the point, why isn't that in the blueprints? Why didn't we think to add that to the blueprints? Why are we doing Embroider stuff? The crazy thing is that it's now never going to be in the x series. This is only something that can fix it in the future because it's too late to add it back into 328 as a blueprint update. And not only that, the reason I haven't opened the PR yet is because some of those deprecations don't work with the deprecation workflow.

Chuck Carpenter: [42:45] Right.

Chris Manson: [42:45] Because they either are being called earlier than it's registered or they're not real deprecations. Like they look like it in the console output, but they're just console logs essentially, so they're not caught. So I have my deprecation workflow Ember try scenario passing in some cases, but Ember beta is still failing or now Ember release.

Chuck Carpenter: [43:12] Does it have to be perfect before you fix 80% of the problems, though?

Chris Manson: [43:18] Most of the time, I wouldn't say that it needs to be perfect, but one of the things that's not caught is the big Ember global deprecation. So Ember globals have been removed, and that's the thing that most add-ons are going to hit. So if I'm releasing this thing, it's like this is going to solve all your problems, but it doesn't solve the most common problem because that thing sidesteps the deprecation workflow. What do I do?

Chuck Carpenter: [43:47] But you have a use case to target now. You have a use case to target.

Chris Manson: [43:51] I opened an issue to kind of explain all this, but like, oh God, love the framework team. They are firefighting.

Chuck Carpenter: [44:02] I want to regress a little bit back to the Jamstack because recently, with Next 12, they announced themselves as the SDK for the web, and that's a big part of the Jamstack. Did you know that? Did you see that whole thing? They're using like that SWC as their compiler, and they're doing all this hotness. Yeah, so Rust powers all of the generation of things, and then they serve it in beautiful JavaScript.

Chris Manson: [44:35] So I've seen a lot of the bits and pieces that they've done, but I've not seen a lot of that marketing. And this is one of the things that Robbie will know that I kind of bang the drum about in a lot of the learning team things, is that we are a ragtag group of people who like an open source framework, and we don't have anybody. There is not a single person on the planet employed to be an Ember evangelist, or what's the word? The advocate. Developer advocate.

Chuck Carpenter: [45:08] Yeah, developer advocate, evangelist. It all kind of ticks the same boxes, but it is very interesting because so many of these progressions are inspired by things that are so Ember-centric.

Chris Manson: [45:24] Exactly.

Chuck Carpenter: [45:25] Yeah. Having those smart guardrails is a big thing, and companies like Vercel leaned into React because, hey, everybody's doing it, let's just give them some rules. Let's make it fast. Let's make it a little smarter as we deploy it. Let's create routes as serverless functions to make them fast and then take out a bunch of the decision-making and thinking there.

Chris Manson: [45:50] The mad thing about that as well is like when that was announced for the next Next JS and they were talking about it in the beta stages. I'm part of the FastBoot working group in Ember, which is a little bit not very active recently because most of the people who work on it are working on Ember 4.0 and are too busy to come together once a week.

Robbie Wagner: [46:15] Aka Robert Jackson.

Chuck Carpenter: [46:17] Aka Robert Jackson.

Chris Manson: [46:20] If he's listening to this, I'm not even calling him out. That man is a warrior and the stuff.

Chuck Carpenter: [46:29] We all know that so many more commits than the next ten people I know in life.

Robbie Wagner: [46:36] Can't give that guy enough money.

Chuck Carpenter: [46:39] You really would think, seriously. He's so productive.

Chris Manson: [46:41] So much stuff that wouldn't happen. And it's great when I get a chance to pick his brain because he gets into these meetings and he's like, right. And I ask one question, and he goes, no, that's the wrong question. You should have thought about this, this, this, and this. And I'm like frantically writing down the things that he's saying. Just, just change the line here, and he points like in 5 seconds to this line that I have no idea what it does. But you Git blame it. It's Robert Jackson that wrote it, and he has so much knowledge and, with one little nudge, can push almost anybody to just get over the hump to do a thing, and it's like, oh, it's fantastic if you ever get the chance to just pair with him or like hop in a meeting with it. On that note, we were talking about Next.js and all this fancy stuff that they were doing, and Robert Jackson was like oh, we could do that. And like the architecture of FastBoot, which is what, six years old now? Five years old now, lends itself with a very small adjustment to be edge, like rooted, whatever the thing they call this. Like, have FastBoot on the edge with like 5 hours' worth of work. But we just don't have somebody who could do that.

Chuck Carpenter: [48:03] We got to make a serverless component. So the serverless framework has a component abstract to it, and where that's? Basically, you can use serverless to deploy Next.js outside of Vercel. Right? Same thing. You just need to latch onto the same thing.

Chris Manson: [48:21] But this is the thing right now, the way that FastBoot is working and we're also trying to improve it in general. But if you were to run FastBoot in a node environment to not do a Prember pre-rendering things, you have to boot this Node app, long-running Node app. That is a cluster that has workers, that has all these things like managed for you and managed really well nowadays with this new architecture that we're going to thanks to Scott Newcomer. Is that his name? He's doing like a fantastic work thinking about the future of this hosted Node thingamajig if he wanted to run FastBoot. But as I can see, you're shaking your head. We don't need that. To be an Edge worker, you need the bit in the middle, and it needs to just do that one thing as quickly as possible and get out of there. And it can work that way with just a very small tweak of the architecture using something that's already written. But we just don't have that 5 hours to and we don't have a developer evangelist or a developer advocate whose job it is to convince people who are looking at Edge something and serverless something something to try Ember, who would implement that feature to convince 1000 new people to try Ember for the first time. It's a challenge that a community-driven project like Ember will always kind of face.

Robbie Wagner: [49:53] Yeah, I mean, aside from Vercel partnering with us, which they could since they are hiring Rich Harris to do Svelte stuff. React is basically dead now. You heard it here first.

Chuck Carpenter: [50:09] I think we heard it in Slack first, but I guess we audibly hear it now first. I mean, it's an interesting thing to say, basically looking at Next.js and saying that their view layer is React, and they are all about performance. So if they change the view layer because that's always the interesting part of the conversation, is this is that we talk about React versus Ember, and it's not apples to apples, right? No, React is a very small slice of that. Exactly. And so all the other things like you were saying earlier Chris, is that you ought to think about and make decisions upon, and 50,000 people have made separate decisions like which one's the right one? Every single project you go to is completely different. So saying that Next.js is doing React now and maybe they'll do Svelte in the future, that's very possible because the architecture that they have in their framework is to set it up as lambdas or whatever serverless functions you're deploying to. That's their intent.

Chris Manson: [51:15] It's interesting because when it comes to the others like you have Ember and you have the others, a lot of the other frameworks libraries, like view libraries, work on this idea of the shadow DOM or the virtual DOM. Virtual DOM.

Chuck Carpenter: [51:31] Virtual DOM. Are you in the DOM, or are you in a state layer? So it is different.

Chris Manson: [51:37] So you have this virtual DOM that's like the Dom's slow, let's not ever touch it. Let's do our things one way. Ember took a very different perspective. We have this Glimmer compiler that builds the most efficient program. Every template that you build is a little program. It's two little programs, the creation program and the update program that updates the DOM in the most efficient possible way. And you have these two worlds. Which one's right? Like, how are we ever going to know which one's right? And thankfully, LinkedIn did a whole project. They did a massive white paper where they compared a huge part of their timeline. They built it in React like hella, built it out, and made it like, super awesome. They also built it in Glimmer, and they compared the performance of both of them, and it was a dead heat. Surely you could probably improve either of them a little bit. But like with some of the experiments that have already happened in Glimmer, there are easy wins to make Glimmer much faster. So the answer is quite clear. React is not the most performant. It's like, in best case, equal to Glimmer. Worst case, probably a bit slower.

Chuck Carpenter: [53:06] Yeah. Wasn't that one of Tom's articles?

Chris Manson: [53:10] I think it might have been Tom working on that.

Robbie Wagner: [53:12] Yeah, I think he did like a talk somewhere on it. I thought like a general JS thing, not like an Ember-specific thing.

Chuck Carpenter: [53:22] I'm going to play devil's advocate here. Having been in corporate settings, having to evaluate some of these things and having to fight these fights, to be honest, like, within organization, and even if it makes the most sense in those ways, sometimes it comes down to, we've been trying to hire an Ember person for six months, a year, or whatever else. I'm about to lose the slot. What can I do? I can teach someone into that. But guess what? My senior just left. And now, my choices are this and I can hire a senior person in React. And I think that's oftentimes how it becomes easier.

Chris Manson: [54:00] So this is an interesting question, and it was actually addressed by Ed Faulkner at EmberFest in one of the I can't remember if it was one of the questionnaire panels or one of the ones where he was just on his own. You can have Senior React people, and I'm telling you now, there are more senior React people in the world than there are senior Ember people. Full stop. There's no argument. No, but an intermediate Ember person can do more than a senior React person.

Chuck Carpenter: [54:32] I agree with you. I agree with you. Let me give you two counterpoints to that. Two things. First of all, the definition of senior has become a very blurred line over the last few years, because I've been doing this for almost 20 years, right? It took me a pretty long time to hit that milestone. At this time, people are hitting that milestone two, three years easily. It's happening quite often. You'll bounce one or two jobs, you become senior, and then you go through a coding interview, and hopefully, you're understanding fundamentals enough, so that's one facet of it. So even finding an intermediate Ember person is as expensive, or if not more, than your Senior React person. So then you're like fighting HR pay bands too. So you have twofold is that someone has a title walking in the door even though they might not necessarily have the qualifications. So if you're an engineering leader and you are leaning on an enterprise pipeline, your HR people, your recruiters, that you give them what you're looking for, and they'll set those parameters and bring you a pipeline. And a lot of times, you're going to end up with people with less than five years, but they're still senior, probably they can go through some fundamentals, hopefully. And then the second side of that is that most of them have React experience, not Ember, trying to find an Ember-specific person. And if you go out and like, okay, I'm going to do my own thing, I'm going to go into the Ember Discord. I'm going to list some jobs and try and get some candidates and stuff. But guess what? They're pretty expensive still because they can get job offers at LinkedIn, at Apple, at some other huge places who also are in the same pool. And then the pay bands are very different.

Chris Manson: [56:21] But we're already having a conversation about very different things. Like I am not surprised that after two, three years, somebody could be described as a Senior React developer because React is incredibly small. You could know everything about the APIs of React very quickly and have a bit of experience and become a Senior React person. But that's not the same as somebody building an app from start to finish and deploying it and scaling it, et cetera. Because React doesn't do everything. It's not the same thing with the view library. So getting a Senior React person is not the same as an intermediate Ember person because to become an intermediate Ember person, again, depending on your definitions of intermediate, I would happen to define it as somebody who can kind of do a little bit of everything that's in the guides, in Ember guides. So like the well-worn path, et cetera, maybe not super expert and maybe knows a little bit about the history so could update older things to the new things and knows where to look to find the rest of it. But have you looked at the Ember guides recently? The amount of stuff that they have in there is insane. Like it's a full ORM when you get into the Ember data thing like you have a full section on deployment, you have a full section application lifecycles, you have ideas about tracking in-depth articles about state management and how it changes and what it does, all in the guides. So literally if you put a junior JavaScript developer that's never had framework experience and get them to read every word of the guides and go through the tutorials. The Ember guides and tutorials, they are going to know more about how to get an application from zero to production than somebody who has only done React.

Chuck Carpenter: [58:24] I mean, Amen, you don't have to convince me here, but in the real-life market, it's really hard. You essentially have to be able to.

Chris Manson: [58:34] So this is the thing. We have that same problem in Europe as well. And every time it comes up, people like Simplabs, we are asked these questions, we are brought in to help with the kind of more complex things. But the scenario is everybody is just hiring JavaScript people. They have some reactive experience. They have some view experience, maybe, but maybe they're just juniors, and they get up to speed very quickly. Because as I said, if you read the guides, not only do you have a much more well-rounded experience of all the things that are necessary to build an app from scratch and get it into production, you know how the app that you're going to be working in is structured because they're all structured the same. You can pick an Ember developer up from one team and drop them in another, and they'll be productive on day one. So because of that, the guides not only teach you how to do Ember, they teach you how to do the app that you're building in Ember, which you just do not get in the React world. So every client that we've worked with that have given up the I need a senior Ember developer and just get JavaScript developers of every seniority. They have all had an amazing experience with one caveat you need to have a senior available for reference. The thing that happens in Ember is that you get to a point where something weird has happened, or you're doing something that your business needs that's outside of the beaten track, and it's hard to make that thing. It's hard to glue two things that don't fit together in a way that Ember understands. But the benefit of that is that most of the solutions where you get a senior either temporarily for like a week to fix the thing or have somebody like yourselves or Simplabs on call, that if you need us for a month or so to fix a thing, we can do that is that the solutions are transferable and understandable. For the juniors it's usually writing an Ember data adapter that does the weird thing with the API and then the juniors come in and they just use Ember data exactly as it's described in the guides and they don't need to know how the weird thing works. It's hidden under layer that experts look at. And that may seem like a contradiction to what I said earlier on in the conversation where it's like, oh, you don't want to pull up the ladder. You want juniors to be able to become better. But actually, the experience that I have seen where juniors are developing with Ember and then being able to take that knowledge and then apply it to building full applications allows them to solve those more complex things because they know how it should work. They don't know how to make it work, but they know how it should work, where it should fit in.

Chuck Carpenter: [01:01:37] Yeah. I think being productive is important early in your career and then understanding more of the why comes over time as you face a challenge that requires that you look, oh, I want to see behind the green curtain exactly who is the wizard?

Chris Manson: [01:01:55] It's always Robert. Robert Jackson. Robbie as well.

Chuck Carpenter: [01:01:58] But Robert Jackson other Rob, yeah.

Robbie Wagner: [01:02:02] Not to be confused with the other Robert William. I am not the one that commits everything everywhere.

Chris Manson: [01:02:09] But this is another aspect of the Ember community as well, where any junior or any intermediate that joins any of the Discord channels and says, hey, I want to help out because I want to learn more. They will be inundated with people who want to help them, people who have tasks that are challenging. People will offer to jump in an hour call to explain a task, to find out what level they're at, see what they could achieve. Like all of our planning calls in Ember, most of them, I think the Ember Framework Team is the only closed one, but all the other ones are open. You can join the Ember CLI call and not understand half of the things that's being said because that's complicated. You can join the Ember Learning Team call, and you can participate even if you don't know what's going on. There are people there that can help you. So it may not be the traditional ladders, the traditional thing that hiring managers would understand, where it's like, we use Ember, let's get a senior Ember developer. It requires a little bit of training. Ember is JavaScript. Let's get a JavaScript person.

Chris Manson: [01:03:20] That's what needs to be communicated to these hiring managers. And you will have a good time if you take that approach.

Chuck Carpenter: [01:03:27] We need good salespeople in the pipeline for that. That's the problem. That's the disconnect. We're all a bunch of engineers evangelizing privately. Yeah. Can you get LinkedIn to fund this? Can you get LinkedIn to fund this? Because.

Chris Manson: [01:03:41] Well, I'm not at LinkedIn, so we need to find somebody who can.

Robbie Wagner: [01:03:44] Well, I was just going to say yeah. If anyone happens to be listening to this and you really like just being an evangelist or advocate, let us know because we need lots more of that. And I totally agree that if you know JavaScript at all, you can kind of pick up any of these frameworks. So it's not important what you've done before, it's just important what you like and where you're productive and all of that.

Chuck Carpenter: [01:04:07] It's the old jQuery problem. I learned JavaScript as Jquery because I was manipulating the DOM, and then that had demanded to get more and more complex within the front end. Oh, crap. I need to do more than this thing does. And I also need to understand why this thing that seems like it should do the thing isn't, and then boom. But I'm going to. What not this thing? What if Yehuda convinces Robert Jackson to go to Rust? Then what happens?

Chris Manson: [01:04:38] What do you mean by go to Rust?

Chuck Carpenter: [01:04:40] So Yehuda is doing a bunch within the Rust community. If you get Robert Jackson productivity there, we're all writing WebAssembly in five years. Right?

Chris Manson: [01:04:49] So I'm going to tell you this now in my prediction whatnotting it. Ember CLI in five years is going to be based on Rust.

Chuck Carpenter: [01:04:57] Oh, for sure.

Robbie Wagner: [01:05:00] Will it still be Broccoli?

Chris Manson: [01:05:03] I think Broccoli might be on the way out with Embroider, which makes me very sad because all of us is based on Broccoli, but we'll not go there quite yet because I'm not ready to have that wake and.

Chuck Carpenter: [01:05:15] To let it go. Okay. Parcels using SWC, like, come on.

Chris Manson: [01:05:21] Yeah, so this is the thing. It's going to happen. And Rust is great. And for build tools and all this sort of stuff, like 100%, I don't believe the hype that says it's going to be Rust compiled down to WASM in the front end.

Chuck Carpenter: [01:05:39] I agree with that. I think the barrier to entry is a little much.

Chris Manson: [01:05:42] Like, I don't even agree with TypeScript.

Chuck Carpenter: [01:05:46] Yeah, there's a lot of hate around that. Well, to be honest, was it so bad when we just knew our shit, and it broke? I don't know.

Chris Manson: [01:05:54] So I cannot separate the TypeScript mania from the CoffeeScript mania it is.

Chuck Carpenter: [01:06:03] I also loved CoffeeScript, so.

Robbie Wagner: [01:06:06] Oh, no, get out. Get out.

Chris Manson: [01:06:08] CoffeeScript was.

Chuck Carpenter: [01:06:09] Well, I was writing some Python at the time, and it felt like, oh, it was actually not far.

Robbie Wagner: [01:06:14] It got us arrow functions. I mean, it did one thing.

Chris Manson: [01:06:17] So this is exactly my point. CoffeeScript, it served a purpose. Thank it for its service. We say goodbye. It pushed JavaScript a little bit to say, folks, come on, let's sort this out. TC 39, you're sitting on your laurels. You made more mistakes with ES 4. Whichever. The one that was canceled. Whatever.

Chuck Carpenter: [01:06:41] Yeah, I think it was four.

Chris Manson: [01:06:43] So it's like you made your mistakes. Let's do something. And they showed us that you could get wildly, wildly different syntax, use wildly different syntax. But for it to compile down to JavaScript and then.

Chuck Carpenter: [01:06:58] Okay, well, hold on, hold on here. I have a bone to pick with that one because yes, that's true. I agree with that. But all of these abstractions let us be lazy and do the latest hotness. Right? So, yeah, okay, you don't like the syntax, but the fact that CoffeeScript gave you some of the hotness and compiled down and Babel does the same shit, yeah, Babel does the same shit. Babel.

Chris Manson: [01:07:26] This is the thing. It started that whole thing. It was six to five before it was Babel. It was like, remember.

Chuck Carpenter: [01:07:37] So they could have the Rad logo or whatever.

Chris Manson: [01:07:40] Yeah, exactly. And this is the thing. It served a purpose, but CoffeeScript died because it didn't have buy-in from everybody. And Babel is better because you can make a statement like, I'm okay with transpiling things that are stage three or above because they'll eventually be part of the platform and I can eventually, with my Targets file, drop it. And Evergreen is much more of something that we are going to be able to live with, even though it's almost there. It's just tantalizingly close the idea of Evergreen. But it's this idea that it's something that's coming down the pipe, whereas if you have somebody that's forking off onto a different path, something that will never get included into the official JavaScript, then I just can't get behind it.

Robbie Wagner: [01:08:37] So you're saying TypeScript is never going to be included?

Chris Manson: [01:08:40] So I refuse to use TypeScript as much as possible. But the day that Types are proposed to TC 39 as like helpers or whatever, the thing is as things that either make it go faster or documentation. So that autocomplete, et cetera. As soon as it starts going through TC 39, I'm going to sit up and listen. When it goes to stage three, I will use it. 100% of my add ons, all of my JavaScript will use it.

Chuck Carpenter: [01:09:12] So you like the guardrails. Unless it's vanilla JavaScript.

Chris Manson: [01:09:18] But this is the thing. Decisions that we make in Ember go through a process. We had to talk and talk and talk and decide and figure out and agree that we were going to allow decorators in Ember because we needed it for the programming model that we were moving to. But we knew that it was a giant risk because decorators aren't stage three. So we made a decision, and this is very important. When people say, oh, should we use decorators? It's like, what do you mean by should we use decorators? Every decorator that is in Ember right now is going to be officially supported. No matter what decorators happen in the future, we're going to support that till the end of time. If you write your own decorator, the semantics could change.

Chuck Carpenter: [01:10:12] Okay, I get this. I think where you're going now then is kind of like the commits discussion, too, right? So these are some very enforced guardrails and where you're telling everyone who contributes to your project they need to be type-safe. They need to declare all these things or include them or have this awareness. First of all, I want to say that I'm not like a TypeScript fanboy by any means. It's just that it's all over the place, and you encounter it often, and you just kind of roll with it. Okay, I'll make it work. And I know how it works now, and I've had to use it a bunch. I get where there are certain situations where this makes sense, but yeah, for the normal world, JavaScript is this language, and if we want people to be more agnostic to frameworks, we should just kick all of that out, learn the thing that exists and then learn how to make it better.

Robbie Wagner: [01:11:10] Well, but Microsoft owns everything now, right? So they have GitHub, they have NPM, they have VSCode, they have TypeScript. So you kind of see the writing on the wall that TypeScript isn't going anywhere. That was my thing with CoffeeScript. Is like a couple of places that I don't want to work because you're using CoffeeScript happen to be using CoffeeScript, but no one was really mass adopting it. Whereas TypeScript is a little bit safer because it's backed by a huge corporation who happens to own like 80% of the ecosystem.

Chuck Carpenter: [01:11:45] It's safer. But hey, have you moved your stuff to GitLab yet, or what?

Robbie Wagner: [01:11:50] Why would I do that?

Chuck Carpenter: [01:11:51] If you don't want to be part.

Robbie Wagner: [01:11:52] It's not owned by Microsoft.

Chuck Carpenter: [01:11:54] Yeah, so GitHub is if you want to speak against it, then.

Chris Manson: [01:12:00] I think it's a different thing that Robbie's bringing up here. It's like there was a pain that you could have felt with CoffeeScript, and it did happen when we moved on, which was it will die on the vine. Like it's not going to make any progress because the people who are backing CoffeeScript are going to go and do different things, and Microsoft isn't going to go anywhere. Like, count the millions of lines of code that are written in TypeScript. This is going to be COBOL. It will last longer than JavaScript lasts, it will outlast the planet Earth, it will be on spaceships going to Alpha Centauri.

Chuck Carpenter: [01:12:41] It'll be in some Teslas for sure.

Chris Manson: [01:12:43] For sure, yeah, it's in SpaceX. There's going to be TypeScript in SpaceX, like in the rockets, anyway. But the problem isn't is it going to die on the vine. The problem is the forks. And like, okay, fine, we have this decorator thing. But the fork that I don't like the most is the import exports in TypeScript. They had this thing which was import star from blah export star from blah that's non ESM compliant. They went in their own direction. They didn't go through the standards process. It's noncompatible with ESM, and people reading TypeScript have to double-take and go OOH. What is that? And have to then understand how it's going to be compiled out so that they can use it in an ESM world, which we're now everybody's converting to. Like I said that Ember has gone full modules node now does ESM, like all of the big node modules are moving ESM only, and it's like depending on what you use, you can use it in common JS and use the require stuff, but I don't know exactly what the line is. But if you import or require enough ESM stuff, you suddenly have to move everything to ESM. And it's this kind of migration that's happening slowly over time, but everything that's written in TypeScript is now not compatible for people to read it and know what's going on. And that's like the single example of one of the most egregious things that, frankly, is Microsoft at its own old tricks. Hey, let's go TC 39. No, let's do it our own way. And another thing to consider here as well is do you know one of the reasons why Microsoft doubled down so much on TypeScript.

Chuck Carpenter: [01:14:42] I don't.

Chris Manson: [01:14:43] Did you remember the history of this thing that was going to be Angular Script? Did you hear about this?

Robbie Wagner: [01:14:50] I think so, yeah.

Chris Manson: [01:14:52] When Angular one, the disaster was over. They wanted to build this other thing that was like a different language, a CoffeeScript for JavaScript, specifically for AngularJS. And it was so close to becoming a reality until TypeScript came along, and then they were like, let's do it all in TypeScript. So Angular is all TypeScript now because it allows them to get some of the things that they wanted out of Angular Script but still not be, like, hyper-specific, you know what I mean?

Chuck Carpenter: [01:15:29] I had experience in 1.0, and it was not a pleasant one.

Robbie Wagner: [01:15:35] The real Angular.

Chuck Carpenter: [01:15:36] Yeah, we did things in Backbone and all that kind of stuff, and some React later, so I know the nightmare was that, and then I basically ignored Angular until about seven. And then all of a sudden, they were like, we're TypeScript, and we do normal things. It's fine. We're approaching.

Robbie Wagner: [01:15:56] We put out a new major version every five minutes. They're on, like, 13 now.

Chuck Carpenter: [01:16:00] Yeah, I saw 13. Like IE 11 breaking on 13. And don't ask me why I know that because IE 11 is the bane of my current existence. The fact that I've had to regress my career so much that I am debugging IE 11. It's humbling. It's humbling. And it's not why I'm drinking a lot today. It's not.

Chris Manson: [01:16:22] I feel your pain, by the way. Like one of my first jobs out of college, like 2009, 2010. It was an app for a bank that I can't name that wanted a risk management system. God, risk management systems. They're everywhere for their traders. And it needed to specifically target IE 6. Nothing else. It had to be IE 6. Even back then, that was unreasonable. Like, IE 8 was already out, and like, IE 8 was in the past, and it couldn't use anything else. It had to target IE 6. It was a brand-new app. It was greenfield, and it had to target IE 6.

Chuck Carpenter: [01:17:11] Right, well, we have to talk about some whatnot, so first of all, I did want to ask you, Chris, what the hell else do you do in life? What are you interested in, or what else GAA? Soccer, football. I don't know.

Chris Manson: [01:17:27] You just called it GAA. That's very funny.

Chuck Carpenter: [01:17:30] I know the GAA.

Robbie Wagner: [01:17:31] Yeah.

Chris Manson: [01:17:33] Most people call it GAA, but you colloquially call it the GAA. I'm not a sports person, so I don't follow the sports ball. That's not my thing.

Chuck Carpenter: [01:17:48] Where did you live? In Northern England. I stayed in Leeds for a while.

Chris Manson: [01:17:53] Oh, no way. I lived in Leeds for seven years.

Chuck Carpenter: [01:17:56] I love Leeds.

Chris Manson: [01:17:58] Leeds is incredible. Like, I no word of a lie. I would probably still be living there if it wasn't for Brexit. It's a bit of a complicated situation because my wife's from Northern Ireland, so she has this dual nationality thing where she's British but also Irish, so it wouldn't have affected her at all. But I was not British, and I was essentially part of a community that even our area in Leeds was the only place in Leeds that voted leave. So it was like very much a flag that was like, you are not wanted here.

Chuck Carpenter: [01:18:39] Right.

Chris Manson: [01:18:41] I would probably have been fined because there's always this unilateral thing between Ireland and England and the UK. But I am very European. I'm very pro-Europe. The EU has done a lot for Ireland, and Ireland is very pro-Europe. So that felt it felt bad.

Chuck Carpenter: [01:19:00] Like the right thing to do. Yeah, that makes sense. We don't have to have Leeds United. Manchester United fights.

Chris Manson: [01:19:08] That's good.

Chuck Carpenter: [01:19:11] Leeds are very good at rugby, though.

Chris Manson: [01:19:14] I think they're better at rugby league than rugby union.

Chuck Carpenter: [01:19:18] Yeah.

Chris Manson: [01:19:20] So Rugby Union is the Six Nations is Rugby Union. I can never remember which one's which.

Chuck Carpenter: [01:19:26] I'm not an expert.

Chris Manson: [01:19:28] I'm not an expert either. But Dave from the Ember community Kiwi up over will probably hate me for bringing this up, but he brought it up in a meeting with me today that Ireland bet the All Blacks in rugby. And I'm not a sports ball person, but I know that New Zealand are, like, the best in rugby, and the fact that Ireland bet them, even our news presenters were surprised. Like, we were all, like, what just happened.

Chuck Carpenter: [01:20:01] Wait a minute, what? No.

Chris Manson: [01:20:02] Exactly.

Chuck Carpenter: [01:20:05] So what else? Like video games or books?

Chris Manson: [01:20:09] I am a bit of a gamer. I'm sure I've got gamer paraphernalia here somewhere, but I did tidy up my desk not so long ago.

Chuck Carpenter: [01:20:20] I got Stadia recently.

Chris Manson: [01:20:22] Oh, really? How is it?

Chuck Carpenter: [01:20:23] I like it a lot. I like the fact that so, for me, I can't really be a dedicated gamer. So the fact that I can do this across multiple devices is really nice. You can do it on a Chromecast, on the TV, you can do it on the iPad, you can do it in multiple places. I really like that. Well, no dedicated device.

Chris Manson: [01:20:45] So I agree with you. Apart from one thing, I am a very dedicated gamer in that I am a Nintendo fanboy. My gaming paraphernalia that I wanted to show you I have a Zelda master sword keyring and little shield as well on my desk.

Chuck Carpenter: [01:21:05] I have a Switch for those same reasons. Because Zelda, you can take it up.

Chris Manson: [01:21:10] You don't have to have a dedicated place that you can game, but you can bring with you the fact that you can sit there playing on an airplane for 8 hours crossing the Atlantic. There's no business playing that game in this day and age because it's like eleven years old.

Chuck Carpenter: [01:21:29] But it's amazing though. Actually, I had never played it back in the day, so I had a friend gifted to me, like, three years ago, and it was amazing.

Chris Manson: [01:21:38] Honestly, in an airplane, it's like the amount of hours that you could spend in that game, it's just incredible. And AAA gamers will be like the Switch, it's terrible. It's not powerful enough. And all the games that are coming out are remakes of four or five years old, whatever. But I didn't get to play them the first time around. I'm getting to play the games that I missed on a portable device in a plane.

Chuck Carpenter: [01:22:08] I think it's designed for us. I think it's designed for us. Although there's the new Metroid that I'm very interested in.

Chris Manson: [01:22:15] Interesting. Are you talking about the dread one?

Chuck Carpenter: [01:22:18] Yes.

Chris Manson: [01:22:19] It's a halfway Hench.

Chris Manson: [01:22:20] Yeah, it's like a scroller or whatever.

Chris Manson: [01:22:21] Yeah, because there's another Metroid that's like, in progress, that is delayed. And then they released a new Metroid in between waiting for the.

Chuck Carpenter: [01:22:31] Haven't they done that? Haven't they done that with Zelda, though? The last like five games, they port some and whatever else as they work on Breath of the Wild.

Chris Manson: [01:22:39] Interesting.

Chuck Carpenter: [01:22:40] Part two.

Robbie Wagner: [01:22:41] Two.

Chuck Carpenter: [01:22:41] Yeah, I feel like that's the thing. It's like here is the pinnacle game. Let's give you some things to keep you involved in the story.

Chris Manson: [01:22:49] Interesting.

Robbie Wagner: [01:22:50] Yeah. Like they did the was it Link's Awakening?

Chuck Carpenter: [01:22:54] Yeah. The Link's awakening. There's, like, some sky rule thing.

Chris Manson: [01:22:58] Yeah. Or is it Wind Waker, or is it the oh Skywood Sword? Yes. Sorry. Wind Waker is the one I didn't get to play because I didn't have GameCube.

Chuck Carpenter: [01:23:06] High Roll Warriors or whatever, that's one.

Robbie Wagner: [01:23:09] Oh, yeah. It's like a battle game or something, right?

Chuck Carpenter: [01:23:14] Yeah, but I played a demo. It's actually pretty fun.

Chris Manson: [01:23:16] Again, my kids are. I had two under two for a while there. My my eldest is just over two now. I'm in the battleground right now, so I have very little time for anything other than dealing with kids and like household stuff. So there is a bunch of games. The fact that I haven't done Skyward Sword, so it's a mainline Zelda game that I could buy right now and be playing, that's pain for me. I should be playing that as soon as I get off the phone from you guys.

Robbie Wagner: [01:23:51] Yeah, but there's there's no horses. Like it was a departure from, you know, main Zelda. I was not a fan. It was just it didn't feel right.

Chris Manson: [01:24:01] Interesting.

Robbie Wagner: [01:24:02] But it also, when it came out, you had to play it on Wii. So you had to play like this. And I like to just sit and use my thumbs. I could be interested in playing it now.

Chuck Carpenter: [01:24:14] Do you guys have an Oculus?

Chris Manson: [01:24:15] No, I don't. My brother-in-law has something. I don't know if it's the Oculus or the other one. The Steam one, Valve one. What's the other thing?

Chuck Carpenter: [01:24:26] Yeah, I think it is that. Something like that. So I got it with business purposes, to be honest. I want to try Workplace and see if I can scroll, like scale it out. So another Ship Shaper. He's also very into games and has one, and we're like, okay, cool. We're going to do our next one on one in Workplace. But I will say last weekend. I got the Vader game.

Chris Manson: [01:24:53] Vader game.

Chuck Carpenter: [01:24:54] And played it's like three episodes. Yeah, there's a Darth Vader. There's a few Star Wars VR games. I don't know if you like Star Wars, but if you do, it is very immersive and incredible. So I just spent a couple of hours in the bedroom with a big space, and you're stealing stuff, and then they invade your ship, and people are on your stormtroopers approach you. And at first, you're, whoa, I'm thrown back. This is crazy. But also awesome. And then you have some lightsaber fights. It's highly recommended.

Chris Manson: [01:25:32] So I know I'm going to enjoy that for sure. I desperately want to try the whole VR thing, and the whole immersion thing is going to grab me. I don't need that much to get immersed in a game. And for that reason, I never played World of Warcraft because I know that as soon as I try that, I'll be gone. Like somebody has to take over my Ember add-ons because I will be gone for a decade, and it will be like yeah.

Chuck Carpenter: [01:26:02] What I appreciate about this game, this game is really compartmentalized. It really is. Like I said, I finished it in 2 hours.

Chris Manson: [01:26:13] Perfect.

Chuck Carpenter: [01:26:13] I finished episode one in 2 hours. There's three episodes. I finished the first one in 2 hours. Good to go. The lightsaber fight at the end. I should be working out more because it was like a workout, dude. It really was. I was like, wow.

Chris Manson: [01:26:28] I want to do what is it called? Beat Saber. Beat Saber looks.

Chuck Carpenter: [01:26:33] Oh yeah, I've heard about that.

Chris Manson: [01:26:34] Credibly fun. So it's like two lightsabers, and you have to like it's a dance game with like you have to cut these boxes in certain directions. It just looks so much fun. I just want to play it, but I, A, don't have the time, and B, do not have the money for extra device right now. Like, who.

Robbie Wagner: [01:26:57] Well, I think Simplabs needs to have all their meetings in VR, is what I'm hearing.

Chuck Carpenter: [01:27:03] Or do you want to develop a VR app? Because if you do, you're going to need a device to try it out.

Chris Manson: [01:27:09] I have an office setup budget. Like, I've been working for Simplabs for three-plus years now, but I never used the office setup budget. If I could convince that it's for my office, I don't know. I might be able to wangle it.

Robbie Wagner: [01:27:24] Think of all the code you can fit on a VR screen.

Chris Manson: [01:27:28] But of course, all that's going to have to be written in Rust.

Chuck Carpenter: [01:27:32] Listen. Yeah, I have a call out to Yehuda right now. Make it happen. I don't know what it is.

Chris Manson: [01:27:41] He'll know. He'll know.

Chuck Carpenter: [01:27:42] I just know that you're, yeah, he'll know. He'll know what's needed.

Robbie Wagner:[01:27:46] That's his job to come up with thoughts.

Chuck Carpenter: [01:27:47] We can talk about it on Twitter. If I was on Twitter, we'd talk about it on.

Chris Manson: [01:27:51] You're not on Twitter?

Chuck Carpenter: [01:27:52] So I quit.

Robbie Wagner: [01:27:55] He's not.

Chuck Carpenter: [01:27:55] Everything social, like, now, two and a half years ago.

Chris Manson: [01:27:58] Wow.

Chuck Carpenter: [01:27:59] I'm only on LinkedIn, which is fake social. Yeah. Sorry, Tom.

Chris Manson: [01:28:04] So I am contemplating putting a message in my Facebook and saying, I am deleting this account in a month's time because I very much do not agree with Facebook and all of their stuff. But Twitter, it's like it's the fire hose. We're in the tech industry. We have to be on Twitter.

Robbie Wagner: [01:28:23] Twitter for both of us. I just managed the Ship Shape account.

Chris Manson: [01:28:27] Please tell me you like share good tweets.

Chuck Carpenter: [01:28:29] I asked for the login, and he was like, no, not necessary. You don't need this. It's fine. Okay. Sounds good.

Robbie Wagner: [01:28:36] All right. Thanks, everybody, for listening. If you liked it, please subscribe. Feel free to reach out to us via all the things. Catch you next time.

Chuck Carpenter: [01:28:47] Thanks for listening to Whiskey Web and Whatnot. This podcast is brought to you by Ship Shape and produced by Podcast Royale. If you like this episode, consider sharing it with a friend or two and leave us a rating, maybe a review, as long as it's good.

Robbie Wagner: [01:29:02] You can subscribe to future episodes on Apple, Spotify, or wherever you get your podcasts. For more info about Ship Shape and this show, check out our website at shipshape.io.