Whiskey Web and Whatnot: Web Development, Neat

A whiskey fueled fireside chat with your favorite web developers.

152: The Future of Ember and Modern Build Tools with Chris Manson

In this episode of Whiskey Web and Whatnot, Robbie talks with Chris Manson about the intricacies of JavaScript classes, the evolving landscape of React and Ember, and the benefits of using Vite in modern app development. Over a Bulleit Rye, Robbie and Chris d...

Creators and Guests

RobbieTheWagner
Chris Manson

Show Notes

In this episode of Whiskey Web and Whatnot, Robbie talks with Chris Manson about the intricacies of JavaScript classes, the evolving landscape of React and Ember, and the benefits of using Vite in modern app development.

Over a Bulleit Rye, Robbie and Chris discuss the benefits of Ember for long-term stability and its backward compatibility, highlighting tooling like generators and integration tests that make Ember stand out. Transitioning toward modern web development, they examine the role of Vite and the ongoing efforts to integrate it with Ember, promising a future of faster rebuilds and cleaner dependencies.

In this episode:

  • (00:00) - Intro
  • (01:26) - Meet Chris Manson
  • (02:41) - Whiskey - Bulleit Rye
  • (07:44) - Hot takes
  • (15:50) - Do we need SSR?
  • (20:09) - Ember.js and modern build tools
  • (32:25) - React vs. Ember
  • (36:06) - Modernizing Ember with Embroider
  • (40:22) - The technical challenges of Embroider
  • (45:43) - Ember's inversion of control
  • (55:46) - Ember's backward compatibility
  • (59:31) - EmberFest

Quotes

“Because we're so opinionated in Ember, we're able to make decisions about your app that other frameworks aren't able to make, essentially. So we can say oh okay, we're cutting out all the stuff you're not using. That's the dead code elimination.” ~ Chris Manson

“We use generators in Ember. Very few other frameworks use generators. You generate a component in Ember and it instantly creates an integration test that renders that component and checks the contents of it and gives you ways to interact with it, to click it, to check the contents and encourages you to put more tests in that file.” ~ Chris Manson

Links

Connect with Chris

Connect with our hosts

Subscribe and stay in touch

Whiskey Web and Whatnot Merch
Enjoying the podcast and want us to make more? Help support us by picking up some of our fresh merch at https://whiskey.fund.

Episode Transcript

[00:00:00] Intro: Welcome to Syntax. Welcome to a brand new episode of the Front end Happy Hour podcast. Welcome to this week’s JS Party. Live from Ship Shape Studios. This is Whiskey Web and Whatnot. With your hosts, Robbie the Wagner, and me, Charles William Carpenter III. That’s right, Charles. We drink whiskey and talk about web development. I mean, it’s all in the name. It’s not that deep. This is Whiskey Web and Whatnot. Do not adjust your set.

[00:00:36] Promo: Whiskey Web and Whatnot is brought to you by Wix. We’re big fans of Wix here on the show. We’ve had Yoav and Emmy on before on episode 98. If you’re interested in more about Wix, definitely check that episode out.

But I’m here today specifically to talk to you about the new Wix Studio. Digital marketers, this one’s for you. I’ve got 30 seconds to tell you about Wix Studio, [00:01:00] the web platform for agencies and enterprises. So here are a few things you can do in 30 seconds or less when you manage projects on Wix Studio. Work in sync with your team on one canvas, reuse templates, budgets, and sections across sites. Create a client kit for seamless handovers and leverage best-in-class SEO defaults across all your Wix sites. Time’s up, but the list keeps going. Step into Wix Studio to see more.

[00:01:27] Robbie Wagner: What’s going on everybody? Welcome to Whiskey Web and Whatnot with your one host. This time Robbie the Wagner. Chuck is outta town and. He did some without me as well. So we’re kinda going back and forth and not having the same people all the time, but whatever. Let us know if you like it better when I’m not there or he’s not there.

We’ll see. We’ll see who wins that one up today our guest is Chris Manson. What’s going on Chris? Hey everybody. Hey. You’ve been on a couple times before, but uh, just in case people are jumping in [00:02:00] here and haven’t heard your previous episodes, do you wanna give a, a quick intro into who you are and what you do?

[00:02:04] Chris Manson: Yeah, sure thing. My name’s Chris Manson. I work for a company main matter over here in Europe. I am based in Dublin, Ireland. It’s quite late for me and I reckon it’s what afternoon for you. Perfect time to be drinking. Yeah. Ah, yeah. Just ended one time to be drinking. But yeah, so I’m kind of a bit of an open source fanatic, specifically Ember, which hopefully we’ll be talking a bunch about.

[00:02:29] Robbie Wagner: Well, it seems like with, uh, you know, a family and working on Ember stuff, there is nothing else. Wow.

[00:02:35] Chris Manson: Yes, exactly. Two young kids. It takes up a lot of your time.

[00:02:39] Robbie Wagner: Yes, yes, yes. All right, well, let’s have a little bit of whiskey here. Get started. Let’s see, this is, I think we got the, hopefully we settled on the rye.

I forget, did we get the, we got the bullets. Same one. Yeah. Okay. The bullet

[00:02:54] Chris Manson: rye. Yes. Okay. All right. Uh, yeah, we never confirmed before the call and I was like, oh [00:03:00] god, are we gonna show up at the absolutely the wrong whiskeys?

[00:03:04] Robbie Wagner: Yeah. Well, luckily I also have their bourbon and like couple of their other ones, so we would’ve been fine.

But yeah. So this is the bullet rye. It is 95% rye, 5% malted barley. It doesn’t have an age statement. I don’t think there’s any kind of requirements on it. So it’s probably, I don’t know, two to four years old or something like, probably not that old.

[00:03:26] Chris Manson: I know next to nothing about rice, so you are educating me today, Ravi.

[00:03:31] Robbie Wagner: Okay. Um, it’s 90 proof so it’s not too, too hot. A little hotter than your normal standard whiskey. But yeah, I mean a rye is gonna be a little spicier. Like if you like scotches, it’s gonna be probably something you like more than a bourbon, but we’ll see.

[00:03:46] Chris Manson: Yeah, let’s go for it. Here’s, here’s the question.

Are you supposed to use a Glen Kern for a Bri? Isn’t this like, I, we use it for everything. For like,

[00:03:55] Robbie Wagner: I don’t think they have a different, different one for like different types of [00:04:00] whiskey than I know of. It screams scotch to me

[00:04:03] Chris Manson: having one of these, you know?

[00:04:04] Robbie Wagner: Yeah. I think it’s technically good for like any spirit that’s ‘cause like it keeps the alcohol from hitting you in the face as much, which is like a good, okay, good thing, but smells some, uh, cinnamon and maybe like, I wanted to say bananas faucet, but I don’t know if it’s actually bananas or if it’s just like the charred sugar from that.

Bananas Fosters, what

[00:04:26] Chris Manson: is that? We might have a bit of a cultural difference here. I don’t know.

[00:04:32] Robbie Wagner: Yeah. Bananas Foster is, it’s like you take bananas and liquor and light it on fire and it’s like a dessert. Interesting. It’s pretty good. Yeah.

[00:04:41] Chris Manson: Mm. Lots of education for me today. Yeah. Um, there’s a very specific smell that I can’t quite put my finger on.

It’s like, um, like a fizzy drink of some sort. I can’t quite put my finger on it.

[00:04:55] Robbie Wagner: Yeah. I don’t know. I watched a show about Dr. Pepper yesterday, so I’m kind of thinking that, but [00:05:00]

[00:05:00] Chris Manson: I don’t know.

[00:05:01] Robbie Wagner: This

[00:05:01] Chris Manson: is not quite what I was expecting, like it was and way Well, in a, in a very good way. So I don’t know much about rice, but like when I first smelled it, I was like, oh, this is kinda like scotch.

I like scotch. And I was like, oh, actually it’s not, it, it’s different. It’s very different. But it is, it’s kind of spicy. It’s

[00:05:21] Robbie Wagner: Mm-Hmm. Yeah. It’s got, got some spice. Little bit of black pepper,

[00:05:27] Chris Manson: little bit of like, you know what it is? I think it’s like a, a fizzy sweet. And I, I don’t know if I’m making things up now, but like a watermelon.

Mm-Hmm. Possibly like a sweety, like a fizzy, I don’t know, like a sherbet kind of thing. I could see that.

[00:05:42] Robbie Wagner: Definitely a little bit fruity and kind of fresh.

[00:05:45] Chris Manson: Yeah. Like you said, it’s not the hottest whiskey. It’s, I dunno if it’s coming across on the microphone, but I’m, uh, just getting over a bit of a cold and this is kind of clearing me out.

This is

[00:05:55] Robbie Wagner: nice.

Yeah. I think it was, uh, [00:06:00] Robert Jackson that had mentioned, ‘cause he really likes Rise. He wants it to, like, there’s that thing when you drink r that it just like clears your sinuses. Like it’s a special rye thing. Yeah. ‘cause of the spice flavor, I guess. So. Yeah, hopefully that’ll help.

[00:06:13] Chris Manson: No, it’s, I’m already feeling better.

I should have had this days ago. I’ve had, I’ve had it in the press wait or in the cupboard waiting for, uh, waiting for the show and, uh, yeah, we should have had this last week so I could have, uh, actually used it to help me.

[00:06:27] Robbie Wagner: Yeah. Well, yeah. All right. Let’s do our ratings. So our rating system, I think the last time you were on started at one, we have since changed it to be zero based ‘cause we’re developers and we think that is fun.

So zero to eight tentacles, zero being terrible, eight being amazing. Uh, four being middle of the road. I won’t make you go first, so I’ll, I’ll give it a rating. This is pretty good. I’ve had some rise. I like better for sure. We like saga more. The best. Usually, I think we usually give it like a seven or sometimes eights, depending on the one.

This, I think though, is [00:07:00] pretty good. I’d like it to be a little bit higher proof maybe. So I’m gonna give it a six, I think.

[00:07:06] Chris Manson: I’m probably, uh, yeah, I, I have no idea about Rise. Like this is probably, it’s all relative to say this other better rise and all this sort of stuff, but I, I think I’m gonna have to give this a seven.

It’s also about like where you are at the moment, like right now. Yeah. If you gave me something a bit more proof, I probably would’ve been like, oh, Jesus.

[00:07:24] Robbie Wagner: Don’t do that to me.

[00:07:26] Chris Manson: But, uh, like I needed something not too mellow, not too heavy. This is like hitting me right in the sweet spot today.

[00:07:34] Robbie Wagner: Nice.

[00:07:35] Chris Manson: Yeah.

Caught me at the right time to get a seven. Nice.

[00:07:39] Robbie Wagner: Cool. Well, we’ll try some more rise, uh, next time I see you in person. Yeah. So, I can’t remember, were we doing Hot Takes yet? The last time you were on?

[00:07:48] Chris Manson: No, no. I’ve been listening to all the episodes and catching up as much as I can and I was like, oh no. Am I gonna have to do hot takes?

Yeah.

[00:07:57] Robbie Wagner: We’ll, we’ll do ‘em since we haven’t gotten your answers for ‘em yet. They do [00:08:00] change a little bit, so some of them are different than you may have heard, but. This one is always the same. Mm-Hmm. In TypeScript inferred types or explicit types?

[00:08:08] Chris Manson: Oh God. Do I have to do anything TypeScript at all?

Unfortunately, yes. Oh gosh. Wow. I think I’d go for inferred types. Most of the time we’ll probably get into it a little bit more, but I’m working on very library code, so usually when you’re passing things around through different libraries, et cetera, it’s quite nice to not have to describe everything, but as soon as you get to the barrier, that’s like right at the end.

This is what’s consumed by your consumers. Then it has to be as, as explicit as possible. But everything else, just let it be loose, you know?

[00:08:44] Robbie Wagner: Yeah, that makes sense. It’s definitely different for like library authors and app authors, I feel like, and yeah, when you do both, it’s hard to kind of figure out the, the differences.

But yeah, I think, I think that makes sense. I mean, I

[00:08:57] Chris Manson: haven’t been an app developer for a year now. I’ve been [00:09:00] Yeah, like full-time on embroider stuff, which is, uh, yeah. Very library. Yes.

[00:09:07] Robbie Wagner: Uh, tailwind or vanilla? CSS

[00:09:09] Chris Manson: Oh, vanilla. I’m gonna have to go for vanilla. I’m not a Tailwind fan. I’m sorry, Robbie. I know you love this stuff, but, uh, it’s okay.

Yeah, I, it’s, it’s pretty split, so Yeah, that’s fine. Like, I, I have a few use cases that are very specific. I’m a bit of a markdown, fanboy. Mm-Hmm. And like all of the emperor stuff that I’ve been doing and like, you know, auto generating blogs, et cetera, you don’t get a chance to put classes in there. So actually you need to use like, quite.

Broad descriptors of like, inside your main, you want H ones to have this margin, et cetera, et cetera. So you need to kind of describe things quite globally. So you can’t do that with Tailwind. So they do have

[00:09:56] Robbie Wagner: Tailwind pros. I don’t know if you’ve seen that. Mm-Hmm. But you kinda wrap [00:10:00] everything in like a diviv with a class of Tailwind pros, and then it’ll find all the like headings and paragraphs and like apply a, for like a Mark Downey kind of thing like that.

[00:10:09] Chris Manson: Mm-Hmm. Interesting. Yeah.

[00:10:11] Robbie Wagner: So yeah. Still maybe, maybe try it one day. But yeah,

[00:10:15] Chris Manson: there’s a, there’s a guy, I think his name’s Kevin. He does like YouTube stuff on CSS. And his tagline is something along the lines of, make you fall deeply madly in love with CSS or something like that. And it’s just when you see somebody who really knows their stuff, like a real craftsman work on Mm-Hmm.

Just vanilla CSS, proper CSS, not this tailwind stuff. It can be poetic.

[00:10:43] Robbie Wagner: Yeah, that’s true. All right. Get rebates or get merge.

[00:10:47] Chris Manson: Oh God, yeah. I knew this was gonna come. Uh, I hate the, I hate people who say it depends, but I have a very specific, it depends. So I never want a poll [00:11:00] request to be rebased or squashed or anything like that.

There should always be a merge commit. But your, your poll request should always be rebased against Maine, in my opinion. Because like, if you think about it in terms of open source, you are asking for your work to be added to the main repo.

[00:11:21] Robbie Wagner: Mm-Hmm.

[00:11:21] Chris Manson: And your work is this like, you know, wrapped up in a pull request thing and it should describe how to change from Maine into the new main.

And it should always, or most of the time reflect what Maine is like. You start from Maine, add a few things, and then get it merged back into Maine. And if there’s any sort of conflicts, never merge Maine back into your pull request because everything just gets really hard to follow. Yeah, it should be a rebase, it should always be a rease in that case.

[00:11:57] Robbie Wagner: Yeah. I just hate the merge commits personally. [00:12:00] Like it just seems redundant to me to see like merge this thing and then right under it, this thing. But so

[00:12:07] Chris Manson: I understand and that’s totally legitimate and I’ve done some tooling recently that like looks at your. Your commits, and it would be nicer if there were only squash commits on Main, and if you use Merge commits, you can do Git Log or all of the GI commands and say First Parent, and it’s as if you did a single squash commit.

On Main, everything looks as if it’s a squash commit. So first parent is your friend. That means everybody can be happy. You don’t need to worry about looking at all these messy commits and stuff. All right, keep that in mind. Let or const, oh, this is a new one. I haven’t had time to think about this one. I think it doesn’t matter.

Isn’t there some weird thing where, okay, fine, we look at it and it’s [00:13:00] like we decide that you can reassign or not, but the actual JavaScript engine doesn’t. I. Perform any differently under the hood? I think there’s some sort of weird trick that it’s not a, it like literally doesn’t matter, but I dunno.

[00:13:16] Robbie Wagner: Yeah, that, that sounds right to me. I’m not sure what the internals are like or really why you would choose one versus the other. I’ve always just chosen cons for things that aren’t supposed to be reassigned, just for that visual cue, regardless of what JavaScript is actually doing. I’ve always been fine with that, but there’s, there’s something that’s been going around where everyone’s like, use Let For Everything.

And I’m like, why? I haven’t looked into the why’s really, but I threw it up as a hot take anyway.

[00:13:43] Chris Manson: Well it’s, that’s the thing. If the JavaScript engine doesn’t differentiate, why should we? I think I use Let for most things and then when ERs lent complains at me because somebody set up the, you haven’t changed this, you should use Cons.

I just do fix all errors in files. Mm-Hmm. [00:14:00] Boom. And whatever. You just do the thing.

[00:14:03] Robbie Wagner: Oh yeah. Yeah, prettier is the best because I could not do anything where I have to change everything manually.

[00:14:11] Chris Manson: Yeah. But not unsafe. I will never do pret or unsafe. I always want to be in control of when it changes the file sidebar on the left or right in vs.

Code. Oh God. I paired with somebody recently that had it on the right and I felt like all my foundations were like falling underneath me. I couldn’t understand the code that I was looking at. It’s like, oh God, put it back on the left.

[00:14:40] Robbie Wagner: Yeah. Yeah. Yeah. That one’s weird to me. Like I, I don’t feel strongly enough to ever move it.

Like I would just get rid of it entirely probably before moving it to the right. Just seems weird.

[00:14:52] Chris Manson: But yeah, I sometimes do that. Like if I’m on a screen and I’m looking at two files that are quite wide or zoomed in or something, I, I do [00:15:00] the command B to remove the sidebar. But, uh, the right hand side gives me shivers thinking about it.

[00:15:09] Robbie Wagner: Uh, let’s see. What do you think about nested Aries? Oh God,

[00:15:16] Chris Manson: they are the worst. Back to your previous point, let just use, let, let result equals first turny and then use that result in the second turny. Yeah. How hard is that? It’s all gonna be optimized away anyway by the whatever compiler. It’s not gonna help anything to have nested turn other than confuse people.

[00:15:39] Robbie Wagner: I mean, I can barely read a single ternary to be honest. And then you get, you get a couple of levels deep and I’m just like, I’m not even gonna try, I’m gonna convert this to like a switch statement or if elses, or something. Let’s see. This is one that is not really a hot take that’s like been going around, uh, tech Twitter necessarily, but I wanted to get your take on like, do we actually need [00:16:00] SSR at all?

[00:16:02] Chris Manson: So this is something that matters to me quite a lot because I work on Empress, which is the ember’s version of View Press, et cetera, with like, you know, not to be biased. They’re like much better name. Empress is just a cool name. I didn’t come up with it. Somebody else came up with it and I’m like, yes, let’s do that.

I think we definitely need SSG. I think that’s very important. We, we have a thing in Ember Prem, so you pre-render your Ember app. SSR is questionable. I know LinkedIn, who used to be a big Ember house, they did service-side rendering, but they didn’t do it for the app itself. They executed the Ember app. On the server side just to do the data pipeline.

So they used Fast Boot, which is like the ember’s version of SSR, just to [00:17:00] do the data aspect of it. And I’ve seen some people come up with these kind of hybrid models where it’s like, let’s not do the rendering part, let’s do this kind of, uh, pre-population of the data so that it gets into, again, an ember thing that we call the shoebox.

So it’s like a little piece of meta information that’s rendered into the HTML with JSON data that can be extracted out. So the, as soon as you load your app, you don’t have to then go and get more data. It’s a valid thing to do and if you need that sort of thing. Great. Wonderful. On the flip side, like you know, you see next and next and all these sort of, what do they call them?

Meta frameworks. They’re obsessed with SSR, and it’s like every single app needs SSR, and you know, I know you love Apollo. Is it Apollo? No. What’s it called? Astro. Astro, yeah. That’s the kind of like, because say I don’t love

[00:17:55] Robbie Wagner: Apollo.

[00:17:56] Chris Manson: No, you don’t like Apollo? No. It’s the other a [00:18:00] framework. And it’s like, if you’re gonna do this sort of stuff, why don’t you just do SSG Mm-Hmm.

Like compile things when something changes. And if you need something to be dynamic, well, maybe you need a single page application. Maybe it doesn’t need to be SSR. Like it’s, yeah. Anyway. Yeah, I agree with that. I would guess it’s a long-winded way of me saying no is the answer.

[00:18:23] Robbie Wagner: Yeah. Because like, you know, if you go back to the roots of the internet, everything was HTML and like Mm-Hmm.

It was supposed to be static. And then if you had something that was interactive, you use a little bit of JavaScript to make that thing reactive or whatever. I like that Astro goes back to that and I think people doing all SSR are kind of like going the complete opposite direction of like, it’s kind of static, but it’s like still all from the server and it’s just weird.

There’s like, it’s too complex for no reason. I feel like, and, and that’s the thing, like

[00:18:53] Chris Manson: the complexity budget right now is just through the roof. And I see it all the time when [00:19:00] I’m mentoring like juniors or intermediates, like you can see them having to do all this mental gymnastics to figure out, oh, what am I doing and where, and I’ve run this JavaScript.

Is that running on the server? Is it synchronizing with the front end? And like, come on now. We have a few mental models that we can give people. You know, you have an index HTML file that has HTML in it that’s in a folder and this server serves that. You know, you don’t need things to be as complicated as they are.

These days.

[00:19:35] Robbie Wagner: Yep.

[00:19:36] Chris Manson: I dunno, that’s old man Yale cloud

[00:19:38] Robbie Wagner: situation going on. Yeah. Yeah. Somebody was talking about that. It actually might have been on our podcast. The one I wasn’t on the episode that was most recently out. Uh, like yeah, you used to just ship, like you would type some things and like just say, render this and it’d be like, okay, now it’s like you wanna get your fronting going.

You need like 50 tools. You gotta install [00:20:00] everything. You gotta get your linting, your prettier, you need your, your v your, uh, I don’t know, just a bunch of stuff. And it’s like you could just write HTML though. Yeah. But that does bring me to build tools in general. I know that you’ve been working a lot on embroider stuff and I think like one of the bigger things that people traditionally have thought about ember is like, you know, it’s big and bloated and like has a large a PII don’t understand.

And like they’re intimidated and it like, I. Had a lot of magic that didn’t work with like web pack or vet or different things, or, tell me about the evolution that we’ve been moving towards. Making it all just JavaScript.

[00:20:36] Chris Manson: Yeah. So there’s a lot to cover here. Yeah, and I recently did a talk about this at Berko.

I resisted, I resisted when I was writing the talk, going too far into the history, but it’s kind of hard, you know, emperor’s been around for 12 years now. 12 years. And there’s so much history, there’s so much stuff that [00:21:00] you have to talk about. Why do we do it this way? Well, we do this way because we started doing this eight years ago and it was the same way.

Yeah. Like Ember, CLI, anybody who uses Ember or has ever used Ember looks at Ember CLI and goes, whoa, this is amazing. Yeah. Any Angular developer probably feels the same way, but they don’t know that they feel the same way because they didn’t know that. Angular CLI was a fork of Ember, CLI. mm-Hmm. Like it’s the same code for I think a few months at the beginning of Angular CLI.

It depended on Ember CLI and our downloads spiked, which is quite funny. I find that interesting. Yeah. But anyway,

[00:21:41] Robbie Wagner: someone had said like, it even said there’s an error in your Ember application or something like when an error is

very good.

Yeah, very good.

[00:21:48] Chris Manson: Yeah. I think somebody, as soon as they found that it was like find or replace, delete all the ember stuff.

But the, the point here is that, okay, fine, we have been around for a very long time, but that doesn’t mean that we need to be [00:22:00] old and clunky, et cetera. But there’s a second point here, which is. Code that you wrote five years ago should be expected to continue working. That’s essentially the hard part of the work that I’m doing at the moment.

Robbie, I’m, I’m explaining something to you, but you probably know all this because you’re a big ember head anyway, but I, I’ll do it. Explain well people for though, so, yeah. Well, this is my point. I’ll pull up the, the third chair and kind of explain a little bit. Ember. CLI was based on a technology called Broccoli, and Broccoli was great.

I actually am a super broccoli fan, but it was kind of hard to understand because it, it was this abstract idea of describe your app in terms of trees, and that’s why it was called broccoli, broccoli Tree, simple pun. But the whole point of it was that you have your app that you write in your GI repo. And it gets ingested by a broccoli tree.

And then Ember CLI would add [00:23:00] different pieces to that tree as it goes through a series of layers. And some things that could be added to it would come from Ember CLI itself to do like the app boot and things like that, or from add-ons. And like us Amber people, we know what add-ons are. They add seemingly infinite functionality to your app in weird and wonderful ways.

But the way that it’s able to do that is at every layer of a broccoli tree, you can change everything one layer down. You can kind of intercept any code and change it in any way you want, which is super powerful. But. It’s very hard to understand. Mm-Hmm. And when e SM started coming out and people started wanting to do fancy things like dead code elimination or tree shaking and this sort of stuff, like if you don’t import a thing, [00:24:00] it doesn’t get into your bundle.

The idea of a broccoli tree and all these different layers of files that were kind of like overriding each other didn’t mesh with the new way of like, you interpret your app in terms of like, you go through each of the imports one by one. What Webpac does, what roll up does, like Bundlers do that they start at the top of your app and they see an import and they.

Quote, unquote, do something with that import. What they do is based on like a billion plugins all installed and very hard to understand, but it’s the same sort of idea. You get to intercept the import and do something else with it. So there were a few efforts to try and bring decode, elimination, or tree shaking to ember CLI the old way, and it was practically impossible.

So Ed Faulkner, who is a certifiable genius, came up with this idea [00:25:00] of embroider, which was like a bridge between the old way and the new way. And what it does fundamentally or under the hood is it takes your code as written and all of your add-ons, all your dependencies, your ember dependencies, and it rewrites them into a, a format that something like Webpac can understand.

I like, there’s so many caveats in the sentence that I just said because it’s way more complicated than just that. Yeah. But it means that as soon as you swap to embroider, you get all of the good things off. Modern build tools, because Ember ops are well structured. You have like the same opinionated structure.

You’re roots opinionated. Thank you very much, Robbie. You’re my backup act here. Thank you very much. You’re welcome. Because we’re so opinionated in Ember, we’re able [00:26:00] to make decisions about your app that other frameworks aren’t able to make easily, essentially. So we can say, oh, okay, you’re doing, we’re cutting out all the stuff you’re not using.

That’s the dead code elimination. But we can also do root splitting because we know your app is likely split up into roots because that’s what BER apps have done. That’s how they’re written. So we can add that automatically and every Ember app can like suddenly become much smaller because you only load for every route that you load The things that are consumed in that, in that route.

It’s phenomenal to think how far we’ve gotten with Embroider to be able to convert old apps that were literally written 10 years ago and have them work in modern build tools.

[00:26:50] Robbie Wagner: Yeah, I think the equally impressive thing is you can make V two add-ons that will work in old stuff like it, it’s all compatible like backwards and forwards, which is [00:27:00] insane.

Yeah. ‘cause you like upgrade one Angular version and it’s like, oh, you can’t use this anymore. So like other frameworks don’t try this at all. And that’s like, people forget it’s, it’s not a sexy point of like, oh, it’ll work with your code from eight years ago. Like, but that is a sexy point when like. You don’t have any more money for more developers.

You’re doing the best you can. You’ve got tons of tech debt and you need it all to just work and you don’t have time to like upgrade versions every five minutes. Like that’s a huge selling point.

[00:27:30] Chris Manson: It’s particularly interesting what you just said about this V two add-on because like I find it very hard to have this conversation with other JavaScript framework people because they don’t have a concept of V one add-ons.

Mm-Hmm. And we’re already on V two and we’re on this like, oh, new and improved better for the build system and still equally embeddable in your EM app. But everybody else is still on this story of you’ve got an MPM package and you just import the thing and then [00:28:00] explicitly use it. Whereas on Ember, we like V one add-ons.

Okay fine. They were powerful, but they were too powerful. They could literally change. Everything about your app in any way it wanted to at any time. That’s too much power, like, and that’s the whole point of what the, the V two spec was about. It’s like, okay, let’s write down exactly what an ADD-on is able to do and what it’s not able to do, and let’s draw a line.

That in itself is a new concept to most frameworks. It’s not about downloading an MPM package and then using it explicitly. It’s about installing something and having it integrate strongly into an Ember app in such a way that everybody can use and everybody who’s using the same add-on uses it in the same way, which I think is quite powerful.

[00:28:50] Robbie Wagner: Yeah, it’s definitely different in every other framework. I don’t think there’s anything that comes close to that and like the testing story, nothing comes close to it. [00:29:00] Oh, like don’t, don’t get

[00:29:01] Chris Manson: started. Like,

[00:29:03] Robbie Wagner: yeah. You can’t even like render things barely and react. It’s like use jest or. Uh, I guess v test, like, which is basically just, you know, it’s, those are good packages, but I, I need wanna be able to see the thing, pause the test and look at it and go, oh, this is like the wrong text.

That’s why my test is failing. I don’t want to have to be like, let me just console, log everything and hope for the best.

[00:29:28] Chris Manson: Yeah. No, it’s like when we are having this conversation where both of us in the room, we know what ember’s testing story is like, but I always talk to Ember people and I say, hold on, don’t talk to other JavaScript people using phrases or terminology that we all accept as given because none of this is accepted as given, right?

Like we use generators in Ember. Very few other frameworks use generators like you generate a [00:30:00] component in Ember, Ember generate component, component name, and it instantly creates a. Integration test that renders that component and checks the contents of it and gives you ways to interact with it. To click it to check the contents and encourages you to put more tests in that file, that in its own right is like a good enough reason to be, oh wait, hold on.

Let’s try Ember for our next project because a testing so story as strong as embers will really save you a lot of time in the long run. But when it comes to add-ons, when you generate an add-on again generators, it automatically generates a GitHub actions config that tests your add-on in the last two long-term support ember versions to make sure that anything that you’re writing can work for older.

Apps? Yeah. [00:31:00] Or older, uh, people who are using older versions of Ember. There are 20 things in the sentence that I just said that just don’t exist in other frameworks. What do you mean long-term support? What does that mean? Like every four versions of Ember, we do a long-term support version that has essentially 12 months of bug fixes and security updates.

So you can, when you’re upgrading, you don’t need to go on every Ember version. You can jump from their long-term support to long-term support version. So like that’s a whole concept that we could go into, but we probably don’t have the time. You’re generating an ADD-on and it’s automatically adding tests to GitHub CI to test older versions.

This is miles ahead of other concepts, other frameworks for this kind of add-on concept. I’m obviously very biased when it comes to Ember and I want more people to use Ember, but. Frankly, people steal this idea. This is something that everybody should be doing. And I [00:32:00] don’t know why after 12 years of Ember, somebody else hasn’t stolen this idea because it’s, it’s wonderful.

[00:32:07] Robbie Wagner: Yeah. Well it’s, it’s hard is the why. No one’s done it. There’s so much that you would have to do to build like, as full featured of a framework and people have tried to duplicate pieces of it, but those things maybe don’t get a ton of traction or whatever. And so there’s no like full featured, like, you know, next Js is arguably probably one of the most full featured React things.

Um, I guess I haven’t tried remix myself, but heard good things about it, but like, neither of them I feel like cares about the entire, the entire stack of like testing some kind of add-ons, ways to install things, doing your build configs routes and like they’re all missing some piece. I don’t understand why people, well.

I, I have a couple theories, but I don’t understand why people don’t want to use Ember. And I think part of it [00:33:00] is like they think it’s old and like not cool. Mm-Hmm. And they haven’t heard a lot about it maybe. So people want, like, everyone’s using React, so everyone else uses React. Like this is a big thing I talk about all the time that it’s just like, it’s the, the self-fulfilling prophecy of just, it’s cool.

So we use it and we use it because it’s cool and like, you know, but React hasn’t put out, I, I haven’t looked recently, but the last I looked, I hadn’t put out a release in like over a year and like there’s some, well that’s

[00:33:28] Chris Manson: interesting.

[00:33:29] Robbie Wagner: Yeah. There’s stuff that’s come out in Next js like they have, ‘cause they have like the Canary, Canary, Canary version of React that’s like, you know, don’t really use this, but we, we can, ‘cause we’re cel and we know how to, it works.

And that has like the react server components and stuff and like people are all hyped up on that. I’m not sure why, again, comes back to like, why do we need server side rendering other than everyone got really comfortable doing it, how they were doing it. So we need to change it now so that we can make you do different things and like still be relevant and cool and hip, you know, it doesn’t matter what we do.

I feel [00:34:00] like, and Rich Harris had mentioned on his episode, he was like, what? What would he say exactly? Something about like, uh, I posted a clip about it and it was, uh, it’s like he always talked about, you know, this thing is so much faster, it’s performant. It’s like whatever. And like no one cared. Like why would we give a shit about like it working well?

But then he was like, okay, actually it’s easier for you to use. And they were like, oh shit. Yeah, I’m on board now. Like, so I wonder if like, we need to lean more into that of like. Generators being nice, and like the testing being built in and like how easy it is for them to use versus like how fully featured it is.

Maybe, I don’t know. Weird, weird nuances there, but

[00:34:45] Chris Manson: yeah. But they’re important nuances. We have this fatal flaw in the emperor ecosystem, which is that we have never, not once in the history of Ember had a developer advocate. There’s not ever been [00:35:00] one person, a single person who was paid just to hype people about Ember.

And that is mad if you compare it to other frameworks. Oh yeah. Like for sale, that’s their whole job. They want people to get, you know, mad about next. They want people to be like, oh, this is great. Let’s develop our next thing in. Next. Google has this whole program about, oh, what is it? What do they call it?

Open source advocate or something, whatever it is. As long as you use any. Of the Google Open Source projects, and a lot of people use Angular. They can get paid trips to go to conferences and paid hotel stays and stuff, but that’s literally never happened forever, Amber, not once.

[00:35:46] Robbie Wagner: Yeah. I mean, I guess that’s, which is mad, the, the blessing in the curse of not having one big company that has been consistently behind Ember the entire time.

Yeah. Like we’ve had some big ones come and go, but they always come and go. [00:36:00] So yeah, we don’t, we don’t build up that momentum as easily or have that big pile of cash to send people to conferences.

[00:36:06] Chris Manson: Well, so this is changing and this is one of the things I want to chat about. You know, I’m, I’m very much into the embroider situation right now.

Mm-Hmm. I work for main matter. You know, anybody in the Ember ecosystem will know us. We have done a bunch of add-ons and like pretty popular add-ons. Mm-Hmm. But Ember has, you know, not kind of succeeded on the hype train. And that means that Ember projects have been a bit harder to come by recently. And there are a few companies out there who are struggling to get up to newer versions and things like that.

And every single one of those companies wants newer, more modern build tools. Mm-Hmm. So my boss, uh, Marco went around to a bunch of these companies and was like, right, I’ve got an idea. Let’s all chip in and let’s get [00:37:00] embroider over the line. What does that mean? Embroider has been out for like five years.

It’s something that people could opt into, but it’s not been the default yet because it’s just not quite ready. And there’s a few, a few technical decisions that makes it a little bit hard for people to like justify it being, if you generate a new M app, this is the experience that you’ll get.

[00:37:24] Robbie Wagner: Mm-Hmm.

[00:37:25] Chris Manson: While there has been a good plan of like how to get there, we needed a monumental effort. And when it comes to open source, monumental efforts like that take 2, 3, 4, 5 years. But we didn’t want that. And Marco was like, right, we can do this in a year, but we can only do it in a year if we can get two people full time on this project to get it over the line.

And what does that mean? That means embroider is the default. New modern build tools for an Ember app is the default. Not only is it [00:38:00] embroidered as the default, it’s V as the default. Mm-Hmm. So love that. Like big apps that are taking 15 seconds to rebuild and you know, that’s the sort of thing that makes people think, Hey, ember’s old and clunky.

That is not really acceptable anymore. Nowadays you need it to be instant. Mm-Hmm. And Beat gives you that ability. So we started this embroider initiative where a bunch of companies, I think like upwards of 30 now, it’s a huge amount of companies all chipped in all different layers, like tier different amounts.

And I’ve been able to work on getting embroider to be the default experience in Ember with VIT for the last year. And we are very close like we are. Days slash weeks from it being ready for people to seriously consider as a production [00:39:00] solution for their Ember apps, which is kind of cool.

[00:39:04] Robbie Wagner: You think it’ll be the default by Ember Fest?

[00:39:07] Chris Manson: Yes. It will be the Default by Ember Fest. All right. You heard it here like it. It’s literally my job to make it the default by Ember Fest. If it doesn’t happen from a political reason. Like anybody who doesn’t know the Ember ecosystem, we have this process called the RFC Process. A lot of other places have taken on an RFC process.

Actually, a lot of them explicitly say that they were inspired by the Ember process, which is interesting. It will definitely be accepted by Ember Fest whether or not it’s recommended, which is the the step where it’s actually happened. When you do an. Ember new and it generates a VAV app. But when I say accepted as in the plan and the implementation will all be done, it’s just a matter of getting it over the line at that [00:40:00] stage.

[00:40:00] Robbie Wagner: I’ve used embroider some, so like when I worked for Apple we did all Greenfield, new embroider, shiny things, so I’m like familiar with it from that aspect. I haven’t been as successful at integrating it into older stuff, but I know it will like technically work with like 3 28 up I think, or I don’t know if that’s gonna change when like the new stuff hits, but

[00:40:21] Chris Manson: that’s interesting.

We on embroider, we have a split at the moment, we have a stable branch and we have a main branch and if you look at the change set for the main branch, it is huge and it’s all breaking changes left, right and center. It’s mad, but the current situation is that Embroider stable supports 3 28 and for any of the non ember people in the world, we do a new release.

Every 12 weeks. Is it 12 weeks? I dunno. Six weeks. I can’t, I can’t remember At this stage it’s pretty

[00:40:55] Robbie Wagner: frequent.

[00:40:56] Chris Manson: Oh God. Yeah. It must be six weeks, isn’t it? Oh, I am [00:41:00] not showing my amber. Yeah. Six, six to 12 at the moment.

[00:41:03] Robbie Wagner: Uh, yeah, it’s all relative to, sometimes it’s not on those dates exactly, but

[00:41:08] Chris Manson: yeah, exactly.

It’s a release train. We do a regular, minor release. 3 28 is two majors behind. Right now we are on five nine, which released last week. We are going to be on six within like a few months. Mm-Hmm. So 3 28, having this whole thing support all the way back to 3 28 is bananas. Like nobody else would do something like that, but Ember deeply cares about backwards compatibility.

Yeah. Having this work all the way back means that people who are stuck on an old version because of reasons, whatever the reasons are, they’re not left behind. The new VT app at the moment, it only supports Ember Canary. So that’s not even the released one big jump. Okay, big jump. But that’s, that’s right now, [00:42:00] so the plan is get the VT thing working on Canary and that has a whole bunch of like interesting ramifications.

For example, did you know that the latest ember source was compiled with VI did not. Did you hear about that? No. That’s cool though. Yeah. So actual Ember source, the Ember JS repo itself is now using V as its internal build system. And for anybody who thinks of that and goes, oh, that’s not a big deal, visa build system, the amount of weird not quite ESM module stuff that we have had in our build system for years.

Is just colossal.

[00:42:45] Robbie Wagner: Mm-Hmm.

[00:42:45] Chris Manson: Because Embrel was built before ESM was a thing, and we started using modules before ESM was a thing. So our modules were not quite the same as real modules and our dependencies were bundled but not really bundled, and it was [00:43:00] like a total mess. So making it so that Ember’s source itself was built with VT colossal effort finally across the line.

And it also means that the packages in Ember Source are much cleaner now. So the VT app that’s consuming those packages is like using real packages. It’s using real ESM modules that work properly and don’t have odd circular dependencies and things like that. So, so that’s why it currently works with only Canary, essentially.

[00:43:31] Robbie Wagner: Okay. So, uh, derail you for a second here. So I think this actually might be a benefit, and correct me if I’m wrong, that because we haven’t had real modules really until now. We don’t have to worry about this, like ESM versus CJS stuff. We can just be like, it’s ESM, we’re good. Like, is that true or are there Yeah, I guess the dependencies you add in, you have to worry about because they could be either, but uh,

[00:43:56] Chris Manson: I wish I could say that it was as simple as that, but it is.[00:44:00]

Uh, it’s so gross. Oh yeah. Everything about what I’m about to say is so gross. Oh God. I’ve had to deal with this for an entire year and I’ve definitely very jaded on that particular point. So if you’re not using embroider, you’ve side-stepped this entire issue because. Em CLI just like layers, files on top of each other.

And the thing that stitches everything together is require js, so a MD modules, which means like there’s no, there’s no root splitting, there’s no dead code elimination. It’s all just in a giant bundle, but defined with like magic strings to be able to communicate between modules. And again, very common is modules, not real modules.

Embroider had a, a setting like the, you have these different settings that you can make your embroider app more and more static so it can do more and more dead code elimination. It had a setting static ember source that would take the ember [00:45:00] source in this weird compiled version and like decompile it into real modules that could be re consumed as real modules.

It was gross in so many ways. And if you’re using embroider stable, your. Web pack situation that you don’t have a lot of control over because it’s like in an internal concern to embroider, it actually uses the E-S-M-C-G-S compatibility mode, so it’s actually CGS inside web pack, inside embroider, inside Ember CLI.

[00:45:38] Robbie Wagner: Okay.

[00:45:41] Chris Manson: Which is totally and utterly gross. What we’re doing as part of the VI process, we’re implementing this thing that we call inversion of control. So instead of ember CLI literally calling Webpac as a library after it’s done with all its broccoli madness. What we’re doing [00:46:00] instead is first for vet having embroider be a plugin for vet that anytime, as I said before, you come to an import, that’s a very embolism import.

Embroider is able to answer the question, what do I do with this thing in a way that works in a backwards compatible way with hopefully all the way back to 3 28 once we’re finished with this process. So embroider instead of calling Vet, which I’m not entirely sure you’re able to do, like properly, embroider becomes a plugin to vet.

So the control is the other way. Round Vet’s in Control. It asks embroider questions when it needs to know answers, and we’re gonna implement the same thing for Webpac so that you can have a web pack config that’s yours that has a little embroider plugin in it, that whenever it needs to figure out ember things, it just asks embroider, Hey, you said [00:47:00] you wanted to import this root module, or this root entry point.

What the. Hell does that mean, you know, and we’re able to answer that question.

[00:47:09] Robbie Wagner: Yeah. That does sound like the correct way to do it, I think, because then you’re, it is, you’re more just JavaScript, like you’re using the same Yeah. V or web pack kind of set up like anyone would use, and then there’s just an extra plugin that tell, like connects the two.

Yeah. That sounds, sounds good.

[00:47:25] Chris Manson: Yeah. And do you know what’s even better? Have you ever had the pleasure of trying to debug, embroider, stable app? Like in the browser, like having to like step through

[00:47:37] Robbie Wagner: it? I probably, I can’t remember a specific occasion right now, but yeah, probably. So

[00:47:45] Chris Manson: the way that it looks once you’re stepping through it, it’s all this web pack eval stuff.

Mm-Hmm. So like each of your files, quote unquote, are this giant string in an eval. Inside some part of [00:48:00] Webpack. So trying to find the right file to be able to put a, like a break point to see what’s happening somewhere in your app was next to impossible. But now with vt, every module is requested over the network one by one.

So if you have a component that’s called fancy button as you just filter your network for fancy button Mm-Hmm. And it’s there.

[00:48:25] Robbie Wagner: Nice. And it’s

[00:48:25] Chris Manson: just exactly as you would expect it to be, a file that’s requested over the network. And you can just put a break point right there. It’s so much better. Oh, it’s so much better.

[00:48:37] Robbie Wagner: Yeah. That’s, that’s been a thing that’s plagued me in different ways for all of my web development career. Like getting source maps, right. For built output and stuff and like, you know, yeah. It’s always just like, oh, this is the wrong code. I’m just gonna give up for the day. I’ll, uh, it’s try get tomorrow.

Yeah.

[00:48:54] Chris Manson: Yeah. But, uh, like all of that is just solved in one. Big movement once we move to feed, it’s [00:49:00] just, oh, it’s so much better. That’s why I’m so motivated to make sure it’s the default for everybody else.

[00:49:07] Robbie Wagner: Yeah, I mean, I think that really, you know, I, I don’t know the solution to make ember sexy again, but I think that will help a lot.

People really didn’t love broccoli. Like it is so complex to debug broccoli issues and vet, I haven’t debugged vet myself personally, but like vet is like the universally loved, like every time there’s a state of js it’s like, you know, we hate everything but we all really like vet like, so, so I think that’ll be really good.

Like, you know, that’ll bring some people over. I’m sure. I don’t know how the, how we evangelize better, but

[00:49:41] Chris Manson: we’ll work on that. There’s been some conversations in the Amber Core teams to try and communicate better. There’s a lot of people doing amazing stuff right now. But nobody’s shouting about it. I said in one of the core team meetings, somebody should be employed to just write a blog post for [00:50:00] every pull request that Ed Faulkner is working on, because they’re all, they’re all mad, like really deep genius level stuff.

It’s like, oh, I just changed these 10 lines, but it’s made the ember bundle 30% smaller. Like, how does this even work? On the same point, I don’t want him to stop doing the work. Right. He should keep on the poll requests and somebody else should write the blog posts about it.

[00:50:26] Robbie Wagner: Yeah, that’s true. Yeah. I haven’t even written any blog posts of my own, but, uh, maybe, uh, well, maybe one day dude,

[00:50:35] Chris Manson: podcasts can’t, like anybody doing any kind of media that’s shedding about good work that’s happening, like I.

It doesn’t matter what it is. Like somebody wants to TikTok about Amber, fire away. That won’t be me. I’m too old. TikTok,

[00:50:50] Robbie Wagner: that’s, that’s another thing I don’t understand. Well, I don’t understand TikTok at all. I’m too old for that. But like the people that go on there for coding things, I’m like, [00:51:00] why? Like, what do you, I guess maybe ‘cause West Boss does a good job of like, you know, here’s like a minute or two and like a quick, oh, did you know about this CSS property or whatever.

Like I, I guess I can kind of see that, but it just feels weird to me. Like if I wanted to learn a concept, I’d maybe do YouTube or like, I’d probably just Google it to start. I don’t know.

[00:51:20] Chris Manson: Okay. Let me close that loop for you. It’s not about learning the thing, it’s the same technique that Coca-Cola uses. To advertise.

You have all these ads everywhere. Coca-Cola, Coca-Cola, Coca-Cola. And it’s not to try and convince you that it’s good, it’s to add recognition so that when you’re in the shop you go, oh, I recognize that brand. And then you buy a Coke.

[00:51:44] Robbie Wagner: Makes sense. And that’s

[00:51:45] Chris Manson: it. That’s it. You just need people out there saying Ember.

Like just having somebody say the word Ember.

[00:51:52] Robbie Wagner: Yeah.

[00:51:52] Chris Manson: People

[00:51:53] Robbie Wagner: that aren’t

[00:51:53] Chris Manson: Theo though, I don’t know

[00:51:55] Robbie Wagner: if you’ve been following him.

[00:51:55] Chris Manson: Yeah, don’t, yeah, I saw some of that stuff, but like all [00:52:00] of his ideas about Ember are based in the two x series. Like that is so old. That is,

[00:52:06] Robbie Wagner: yeah. What’s up?

[00:52:06] Chris Manson: Six years old?

[00:52:08] Robbie Wagner: Well, I, I got very upset the last like thing that everyone piled onto like, uh, I don’t know, six months ago, maybe.

It’s been a while, but then I’m taking a step back ‘cause I, I haven’t really consumed a lot of his content. And the times I look at some of it, I’m like, wait, is everything he says like satirical Anyway. Like, is this actually true or is he just like saying shit trying to get views? You know, like, I don’t know.

So I don’t know if I should dislike him or not. He’s shit boing

[00:52:35] Chris Manson: like yeah, yeah, he’s clearly shit boing. He loves doing that. It gets, you know, people arguing about stuff, it’s great. But what he said about Ember, that wasn’t a shit post that was out of date. Thinking Ember is this placeholder at the moment for an old framework that’s clunky, et cetera.

And that is something that hasn’t been true for at least four years. And as soon as the vet stuff lands, it’s gonna be the [00:53:00] most batteries included framework. That’s really easy for juniors and intermediates to understand. Developers that are doing ember can like jump between ember teams.

[00:53:13] Robbie Wagner: Mm-hmm.

[00:53:14] Chris Manson: Fully understanding everything that’s going on, commit to production deadline and build times.

Yeah. Commit to production day one and build times are gonna be instantaneous. Once we take that last problem off the shelf. There is literally no reason for somebody to not try ber anymore. Yeah. So like, yeah. For anyone who, if they say the V thing is so important, it’s like, yeah. Really important.

[00:53:37] Robbie Wagner: Yeah.

For anyone who hasn’t looked in a long time that maybe saw Ember before and is still listening with us at this point in the podcast, everyone has heard signals are hot. Signals are the new thing. Like solid js is cool, solid js is cool. I agree with that. But Ber had tracked properties before. Solid js was cool.

And it’s like the same idea, like, and I think React does this backwards and wrong. You should [00:54:00] say what is gonna change, not assume everything is gonna change, and then tell it what’s not gonna change. That’s the, the wrong way to do it. So like, hooks are totally backwards, very hard to understand. The DX of React has just degraded forever because React didn’t used to be terrible.

And I don’t know, now maybe I’m hurting my brand saying anything good about it, but um, like class-based React was actually okay. I didn’t mind class-based react. Yeah. It was kind of very similar to like older ember models where like did insert element or like, you know, component did mount kind of things in React side.

Like it’s very easy to grok and then it’s like, okay, well classes aren’t cool because like we spent 10 years getting classes in JavaScript so we, we can’t like ‘em anymore. We gotta switch it and like unlock 0.0001 milliseconds faster. Something that no one cares about, but we’re gonna add like 500 x complexity and you need to learn all these hooks and like, I don’t understand why react won’t just die off like it seems [00:55:00] so hard to use these days, but people love that complexity.

If you don’t love complexity, if you like shipping code quickly and you like only caring about that complexity in your specific domain knowledge, Ember is absolutely the best thing you could use. Oh, and if

[00:55:16] Chris Manson: you like, not having to rewrite your app every two years because something new and fancy has come out.

Amber is the thing, like

[00:55:24] Robbie Wagner: we have an 8-year-old app and it runs, it has its problems, but it runs. We have some GTS in there, like the single file. Oh dude. Uh, so good. Uh, like we’re all, we’re stuck on 3 28, so we have some things we can’t use, but we have a lot of stuff we can use, like we can use 90% of the new stuff.

It’s amazing how much new stuff we can use on an 8-year-old app.

[00:55:46] Chris Manson: Like I am legitimately trying to make it so that 3 28 people who are still stuck there for various reasons can use VI love it. The strategy, like right, right now, V, the main branch [00:56:00] of embroider only supports super bleeding edge ember. But once we get it done, we’re then going to add this backwards compatibility as far back as we can.

And we are legitimately. Contemplating doing patch releases all the way back to Ember Source 3 28, just to make it so that people can get onto ve. And that is like nobody else, no other JavaScript framework ecosystem is doing stuff like that. They’re like, no, if you’re not on the latest, we don’t care about you.

But that’s not what Amber does.

[00:56:36] Robbie Wagner: Yeah, it’s great. I appreciate it. ‘cause I don’t know when we’ll be able to get off of 3 28, so. Yeah. Oh, there’s so much tech debt in an old app, but anyway,

[00:56:46] Chris Manson: but this is the thing, you don’t have to throw away the app to fix it. No. Like you can upgrade it and that’s, that’s the whole ethos of Embr.

Oh yeah. It’s like don’t

[00:56:56] Robbie Wagner: throw it away, bring it with you. Which we’re doing a lot of, we just replace a few [00:57:00] components at a time and wrangle the TypeScript beast. I had to do some, like trying to do like a component that takes an argument that then like refers to. Part of the inside of that argument in that type or something like some nested generic shit.

And I was like, oh my God, I don’t know what I’m doing, but I got it to work. So we are over time here, but uh, is there anything we missed mentioning? Actually, I do want to spend a couple minutes because we talked about Vet, but I am curious about other stuff and if we care or not. Like Bun Biome, I don’t know, insert hot new thing here that could maybe work with Ember.

Are we working on any of that?

[00:57:42] Chris Manson: Good question. The thing that we’re doing with the vet stuff is we are opening it up to integrate with other JavaScript ecosystem things. The weirdness of Ember Apps is going to be encapsulated into very specific things [00:58:00] that are actually optional. So if you’re not using any old add-ons or any of the old embolisms.

You can turn off each of those pieces as you don’t need them anymore. With that in mind, if your random JavaScript engine of choice supports enough features for the Ember ecosystem, then fine. You could use those. I don’t see why you would, the whole BUN situation makes sense. And so does Dino make sense for like service side applications?

Like if you want this small thing that you know is written in, TypeScript doesn’t run TypeScript, even though it says it like TypeScript support, it compiles the TypeScript away because that’s how TypeScript works. You can run these scripts quite easily on the server side, but that’s not the point of ember.

Ember is a front end framework, first and foremost, and will probably be forever. And [00:59:00] ve compiles in all your stuff into bundles that can be consumed by a browser. You don’t need to worry about bond, you don’t need to worry about Dino unless you’re talking about the service side, rendering side of things.

But that’s a whole other story that we’re, I’m gonna punt for now because there’s a whole question about that, whether or not we need the old Ember way of doing it anymore and whether we could just use the platform like Feet has a whole service site rendering implementation that we could use. Maybe we’re not sure.

[00:59:31] Robbie Wagner: Anything else you wanna mention before we end or anything about Ember Fest people, Chanel? I know you said you weren’t directly helping with organizing it, but if you wanna, uh, you know, well hype it up. The

[00:59:43] Chris Manson: only thing about it is that it’s in Ireland and anybody who is anybody, you say it like it’s a bad thing and it’s, ah, dude, Ireland’s great, but it’s very expensive.

Oh my God. I was noticing that, but kind of. Barr as to how expensive it is. Is it the Ryder Cup? Is [01:00:00] the golf tournament between like Europe and the us? Maybe. Do you know golf? I don’t know anything about golf really. I think we need Chuck for that. Do we? Yeah. Yes. He’s, he’s a very worldly fellow, but, uh, there was a time when that, like Europe versus the US Golf Tournament was in Ireland and our tuk, which is our Irish name for a prime minister, like their head of our government, begged local industries to not up their prices because all these Americans were gonna come to Ireland and see what it’s like and maybe we want them to maybe want to come back.

But nobody listened. Like there’s this culture in Ireland to, like the phrase is chance your arm, which is to try your best to get the most outta people. And it’s, it’s really embarrassing whenever it happens. And like, yeah.

[01:00:53] Robbie Wagner: Well, I don’t fault them for being business people. Like I used to do that as a consultant.

Like, you charge more until someone says no. [01:01:00] Right. Like so.

[01:01:03] Chris Manson: Yeah. But it’s like when it comes to an entire country, essentially taking advantage of people without thinking about, oh, maybe these people might want to come back. We want to take the most we can right now before like, anyway. Yeah. Instead of the long term play.

Yeah, exactly. Like make it affordable, make it this like annual destination, but yeah,

[01:01:27] Robbie Wagner: yeah, yeah. I was looking at hotels in uh, like City Center of Dublin and I was like, oh, this is, uh, pretty pricey. Very expensive. Yeah.

[01:01:35] Chris Manson: Yeah. Like depending on which surveys you look at, we’re regularly in the top 10 most expensive cities in the world, which is.

Yeah, I feel it on a daily basis.

[01:01:47] Robbie Wagner: Oh yeah. Everyone’s feeling it everywhere too with inflation and all the crap that’s going on now. Yeah, it’s hard.

[01:01:54] Chris Manson: Yeah. And we have this whole thing as well where we have a lot of multinationals have their [01:02:00] like head offices in Dublin because we have this tax break and there was this whole tax incentive where you could like ship your profits to Ireland and put them through the Netherlands and then back to Ireland or whatever.

You get like massive tax breaks, which means that our GDP is well above any other country in the world per capita. ‘cause we have a really small population. Mm-Hmm. But we’re not a bunch of rich people. Like we’re a bunch of people scraping by. Yeah. But yeah, somebody’s making the money though. Somebody’s making money.

Somebody’s saving some tax. Yeah. Yeah. But it’s lovely, like people have been reaching out to me. Saying, oh, I’m coming to Ireland, ber Fest. And I’m like, I don’t know what to recommend. Yeah. ‘cause I like, I just live here. I don’t know what’s good for tourists to come and look at it, you know?

[01:02:53] Robbie Wagner: Yeah. We were, we were pretty sure we were coming and uh, ‘cause we were gonna bring the whole family and, but my son [01:03:00] was a complete disaster driving home from the lake today for a few hours.

I’m like, how are you gonna make it in a flight to Ireland, man? Like, that’s, that’s not, not gonna be great. Seven hours is a pretty hairy flight. Yeah. Yeah. So we’ll see. We’ll see. I’m still hoping to be there, but, uh, not a hundred percent sure yet.

[01:03:20] Chris Manson: If you do make it, there’s a, there’s a bunch of people coming.

Something that’s happened recently, like anytime there was berko in the US there was always Ember core team meetings the day before. But so many people have said, let’s go to Dublin for Ember Fest that we’re gonna do the same here in Dublin. So there’s gonna be. Ember core team meetings the day before Ember Fest.

Interesting. Which is like the first time ever. Yeah. Which is amazing. Cool. Very excited about that.

[01:03:49] Robbie Wagner: Well, we’ll see if I make it or not, but, uh, for those that are thinking about going, it seems like it should be a good time. Definitely check it out. I’ve, I’ve been wanting to go to some of the Ember Fest before.

It’s just never worked out, but [01:04:00] this year it seems like it could work out. We’ll see.

[01:04:02] Chris Manson: Well, Ireland is the shortest flight. That’s true. Anywhere in Europe would’ve been slightly longer. So Yeah.

[01:04:09] Robbie Wagner: Save, save an hour or so perhaps. Yeah. Or a couple depending

[01:04:12] Chris Manson: on where it is. But yeah. It’s actually surprisingly a much shorter flight here than it is back because you have the tailwind Oh yeah.

Of the jet stream when you’re coming to Dublin. Yeah. So it’s like an hour difference in the fight. Yeah.

[01:04:27] Robbie Wagner: See, I knew you were a Tailwind fan.

[01:04:32] Chris Manson: Shit. And this is how we’re gonna end the episode. Oh my God.

[01:04:36] Robbie Wagner: Oh yeah. Is there anything else you wanna plug before we end?

[01:04:39] Chris Manson: Uh, yes, actually I could do a whole other podcast about this, but, uh, release plan. Have you heard of Release Plan? Have they? Yes,

[01:04:47] Robbie Wagner: we are using it for Shepherd. My only complaint with it so far is I just don’t know how to change the main title of the GitHub release.

I think it’s probably easy. I just haven’t looked into it, so it’ll, I’ll pick the first. I’ll fix [01:05:00] it. Alphabetical package you’re releasing and that’s the title. I want it to be Yeah. Shepherd. Not like Shepherd Docs or whatever. I don’t know. Yeah, you can look at it.

[01:05:10] Chris Manson: Yeah. But yes, it’s very cool. We can fix that.

We can fix that. Yeah. Yeah, yeah. Release plan. Like if you’re asking me to plug, I want everybody in the world to use release plan for any NPM deployed thing that is, yeah. It’s just so much easier. Don’t use anything else. Yeah. It’s so much

[01:05:26] Robbie Wagner: easier. It’s like release it, except you don’t have to do anything.

You just hit merge on GitHub. One of the other,

[01:05:32] Chris Manson: uh, embroider core team members, Novox populi, uh, loves to say that it’s releasing from the toilet framework is pretty, I, I don’t know if compelling, I guess marketing message. Yeah. But he, you know, that’s it. It works. Yeah. You can literally on your phone, merge a pull request and it releases a package.

It’s great.

[01:05:55] Robbie Wagner: Yeah, that is true. I don’t, maybe, maybe I don’t make that the [01:06:00] official tagline, but, uh, I don’t know. Yeah. Yeah. All right. Cool. Uh, anything else or, no, that’s it. All right. Thanks for having me on. Yeah. Thanks for coming on. Thanks everyone for listening. If you’d like to please subscribe, leave us some ratings and reviews.

We appreciate it, and we will catch you next time. And Chuck’s not here to go. B,

[01:06:22] Outro: You’ve been watching Whiskey Web and Whatnot recorded in front of a live studio audience. What the fuck are you talking about, Chuck? Enjoyed the show? Subscribe. You know, people don’t pay attention to these. Right? Head to whiskey.fund for merch and to join our Discord server. I’m serious it’s like 2% of people who actually click these links. And don’t forget to leave us a five star review and tell your friends about the show. All right, dude, I’m outta here. Still got it.