JS Party ā€“ Episode #244

The spicy React debate show šŸŒ¶ļø

YepNope: Josh & Amal vs Amelia & KBall

All Episodes

Weā€™re back with another spicy YepNope debate! This time, Amelia and KBall are arguing that thereā€™s real value to (continue) using React in 2022, while Amal and special guest (and author of the post which stemmed the whole debate) Josh Collinsworth argue that Reactā€™s time leading innovation has passed. Of course, the stance each panelist is taking is assigned ahead of time. Is that how they really feel? Tune in and find out!

Featuring

Sponsors

Square ā€“ Develop on the platform that sellers trust. There is a massive opportunity for developers to support Square sellers by building apps for todayā€™s business needs. Learn more at changelog.com/square to dive into the docs, APIs, SDKs and to create your Square Developer account ā€” tell them Changelog sent you.

DEX: Sort the Madness ā€“ Join our friends at Sentry for their upcoming developer experience conference called DEX: Sort the Madness. This event will be in-person in San Francisco AND virtual on September 28. This is a free conference by developers for developers where youā€™ll sort through the madness and look at ways to improve workflow productivity. Learn more and register

Fly.io ā€“ Deploy your apps and databases close to your users. In minutes you can run your Ruby, Go, Node, Deno, Python, or Elixir app (and databases!) all over the world. No ops required. Learn more at fly.io/changelog and check out the speedrun in their docs.

Sourcegraph ā€“ Transform your code into a queryable database to create customizable visual dashboards in seconds. Sourcegraph recently launched Code Insights ā€” now you can track what really matters to you and your team in your codebase. See how other teams are using this awesome feature at about.sourcegraph.com/code-insights

Notes & Links

šŸ“ Edit Notes

Chapters

1 00:00 Opener 00:29
2 00:29 Sponsor: Square 00:44
3 01:13 Intro 00:50
4 02:03 A hoy hoy! 02:05
5 04:07 The setup 03:56
6 08:03 Josh's opener 02:07
7 10:10 KBall's opener 02:39
8 12:50 Amal's opener 02:15
9 15:04 Amelia's opener 01:53
10 16:57 A (musical) Remix 01:25
11 18:22 Sponsor: Sentry 02:34
12 21:12 Speaking of hot takes... 01:10
13 22:22 KBall calls out 01:11
14 23:33 Amal rebuts 02:31
15 26:04 Amelia responds 02:10
16 28:14 Josh drops hot takes 04:14
17 32:28 A new debate erupts 05:26
18 37:54 Closing statements 03:19
19 41:22 Sponsor: Fly.io 01:54
20 43:17 Sponsor: Sourcegraph 01:18
21 44:47 Let's get real 02:28
22 47:15 TypeScript talk (why?!) 06:22
23 53:37 The framework hype cycle 01:36
24 55:12 The framework org structure 04:40
25 59:52 How could React save itself? 01:34
26 1:01:26 A bye bye! 00:28
27 1:01:54 Outro 01:07

Transcript

šŸ“ Edit Transcript

Changelog

Play the audio to listen along while you enjoy the transcript. šŸŽ§

Hoy-hoy, internet friends. Itā€™s me, Nick, on your favorite podcast, JS Party. Weā€™re here with another very exciting Yep/Nope debate episode. With me today is Amelia Wattenberger. Amelia, whatā€™s up?

Hey-hey! Nothingā€¦

How are you doing?

Iā€™m good. How are you doing

Iā€™m doing fantastic. Iā€™m not part of this debate, so I get to reserve my thoughts, until the end, I guessā€¦ So thatā€™s great. And also joining is Amal. Amal, howā€™s it going?

Hi, Nick. Very excited to be here, and I hope to not make too many enemiesā€¦ This is just a TV show. Thatā€™s not a TV show, itā€™s like a podcast, but I stillā€¦ You know, weā€™re actors, everybody, soā€¦

Yeah. Sometimes actors have to play parts that they ā€“ that isnā€™t their character.

Right, right.

Well, weā€™re glad youā€™re hereā€¦ And also, Kball. Kball, howā€™s it going

Nope. Nope, nope, nope, nope, nopeā€¦

I think we know which team youā€™re gonna be onā€¦ Team Nopeā€¦ And we have a special guest this week, and kind of the man behind the premise of the entire debate, and that is Josh Collinsworth. Josh, howā€™s it going?

Itā€™s good. And let me just take this opportunity to say ā€œYep.ā€ [laughter]

Now I know what team youā€™re on. Josh, why donā€™t you tell us a little bit about yourself

Sure. Iā€™m a senior frontend developer at Shopify currently. Iā€™ve been doing development for a few years now. Before that I was a graphic designer, and people told me ā€œYou should learn codeā€, and Iā€™m a people-pleaser, so I didā€¦ But really, I actually ā€“ I just really like it. And in my spare time I enjoy technical writing and blogging. Iā€™ve written some for CSS-Tricks and a few other publications.

Recently, I wrote a post about React, that was just a collection of some thoughts I had at the time, and I definitely didnā€™t expect to get any kind of popular, but itā€™s kind of prompted us all to be here today, in a wayā€¦ So this will be interesting, and I too am hoping not to make too many enemies after today.

[04:05] [laughs] Well, yes, it is a very interesting article. I was very excited to read it. Itā€™s called ā€œThe self-fulfilling prophecy of React.ā€ Weā€™ll have a link to that in the show notes. So that is kind of the premise that we have here. For those of you that are new to this format of episode, what this is - itā€™s a debate episode; we call it Yep/Nope. Kind of based on the Alex Sexton Yep/Nope kind of feature detection library for JavaScriptā€¦ And the premise of todayā€™s show is going to be ā€œIs React only great at being popular?ā€

Debating that very loaded premise, weā€™re going to have team Yep, which is going to be Josh and Amal, and then debating against that is going to be team Nope, Amelia and Kball. And Iā€™m just in the middle, moderating thisā€¦ My first time moderating, so I immediately loseā€¦

Nick is on the fence. Thatā€™s what you are, youā€™re on the fence. You get to be Switzerland, you know?

Exactly.

You get to be everybodyā€™s friend.

Iā€™m coming out of this employable.

And also everybodyā€™s government, you know?

And possibly everybodyā€™s enemy? [laughter]

Yeahā€¦ Also, did you say this was Alex Sexton was the inspiration behind this? Because I got to work with him for a little while. I didnā€™t realize that.

Yeah, just the name, the Yep/Nope from his feature detectionā€¦

Yeah, such a small worldā€¦ Thatā€™s cool.

Yeah. So the format of this is going to be Iā€™ll be the moderator, Iā€™ll be enforcing some time constraints, and each of you will have two minutes to make your case in this first segment. Weā€™ll start with ladies first, and weā€™ll go ā€“ Iā€™ll give you two minutes, and Iā€™ll start a clock. And then when itā€™s over, I will play this sound. [wut?] I will probably play it a couple of times, because it is very easy to talk over poor b0neskull as a buzzerā€¦ That will be the buzzer. Youā€™ll have two minutes to make your case, and then weā€™ll move on to the next person, and weā€™ll kind of go through everyone there, and then we will come back in the second round for some more rapid-fire rounds. And then, of course, at the end - weā€™ve all been assigned viewpoints on this, and so that doesnā€™t necessarily reflect where weā€™re atā€¦ So in the third segment we are going to talk about what we really feel about React in generalā€¦ So stay tuned for that. Donā€™t dislike us from just the first two segments.

Yes. If you only listen to the first bit, you might hate some of us. But like every engineering question, thereā€™s probably nuance.

If you give it till the end, you might just hate all of us.

Yeah, thatā€™s true. And Iā€™ll take that, okay? If by the end of this show you still hate everyone, then you know what - thereā€™s nothing we can do.

We did our jobs.

Weā€™ve done our jobs, right. [laughter] Also, Nick, who gets to go first? Iā€™m glad that you said ā€œLadies first.ā€

I did.

I was like ā€œWaitā€¦ Thatā€™s awesome. But that means I have to potentially go firstā€¦ā€ Iā€™m just hoping ā€“ can I punt this to Amelia?

Okayā€¦

Because Iā€™m thinking, you know, Amelia, Amalā€¦ You know, her name is longer than mineā€¦

Youā€™re the positive premise. I think you should go first, and lay it out there.

Oh, goshā€¦ No, I think that youā€™re the status quo, and so you should go first.

I was also thinking, can ā€œLadies firstā€ be ā€œLadies choose who goes first?ā€ [laughs]

Oh, I like that, yeah.

You know what - sure. We can do that.

Yeah. I choose Josh to go first, then Kball. Thanksā€¦ Good job, Amelia.

[laughs] I like that.

Josh, it is your article, so if you are prepared, I will put two minutes on the clockā€¦

And you can start.

Alright. This feels like it should be easy, because basically all Iā€™m doing is summarizing the article that I wrote.

[laughs] Yeah, you cheated. Dang it! Well, actually, is there like a soundboard? Are we gonna have ā€“ you know how the boxing matches have that ā€œDung-dung!ā€ Is there gonna be a dung-dung?

I have a Wut. [wut?]

Okay. But is there like a start, like ā€“ okay, itā€™s fine. Iā€™m gonna stay quiet now. Iā€™ll let you press the buttons.

Alright. Yeah, Iā€™ll make some sounds up as we go, and Iā€™m sure Jerod can fix it in post. [beep]

[08:02] So weā€™ve kind of reached this point in tech where React is more or less the default choice for any given project. Itā€™s reached that critical mass where it feels like the safe default for everythingā€¦ But thereā€™s any number of criteria, from performance, to bundle size, to onboarding, to just complexity, dev experienceā€¦ All of these things are areas in which React doesnā€™t really win on its own, generally speaking, in which there are better options. And when you kind of zoom out and look at the big picture, you kind of realize React is pretty mediocre at just about every given category, and the only category it really excels in is just being the thing. Just being the popular thing. The one that we all know, and the one that people hire for, because itā€™s what they teach, because itā€™s what they hire for.

So whether itā€™s performance, React is not coming out on top. Bundle size - probably not. It is certainly far more complex to use, it has a lot more gotchas to learn than the other frameworks doā€¦ Some people point to the unopinionated nature of it as a benefit, and thatā€™s a little more subjective, I guess. For me, that leads to a lot of fragmentation, and spending a lot of time looking for a solution, when I just wish ā€œMan, there should just be a solution. It should just be handled for me already. I shouldnā€™t be spending my afternoon looking at ten different libraries and reading comments on the internet. Donā€™t make me read comments on the internet to choose things. I donā€™t like doing that. I do enough shopping onlineā€¦ā€

So I guess thatā€™s kind of my summary of where Iā€™m coming from with all this. Weā€™ve crowned a winner, but the winner doesnā€™t actually win at anything.

{wut?] Perfect. I played the sound three seconds early. That was a perfect opening statement, so nice job, Josh. Alright, now, on team Nope - thatā€™s Amelia and Kball. Amelia, would you like to pick which one of you goes first?

Yeah, Iā€™d love to. I feel like Kball is a really solid opening act for us.

Sounds good. Kball, take it away. [beep]

Alright, so weā€™re gonna talk about a little bit of this, but Iā€™m gonna talk about one of the things thatā€™s downstream of popularity. When you are popular, you have to handle all the different cases. So you cannot necessarily focus on one thing to the exclusion of others. You highlighted all these different categories you might be considering as a point; and if all I care about was absolute performance, Iā€™m gonna ship static HTML. The problem is that only works so far. It works for a few problems, and each of the frameworks that youā€™re talking about may excel on one dimension. But when youā€™re building an application to sell, youā€™re gonna have to take into account all those different dimensions.

So I would posit that being above average - which I think calling React mediocre on these factors is really pretty pitiful. They may not be the top on very many of these factors, but they are above average for your choices along every factor that youā€™re going to have to consider as a developer. And for that reason, when Iā€™m looking at the future and trying to preserve my options, they are a top choice.

I would like to highlight a couple of thingsā€¦ In your article you looked at State of JS survey. I also looked at the Stack Overflow survey, and I would note that React has an 84% satisfaction, which is higher than Vue, almost two times higher than Angular, not far behind Svelte, with way more usage. Like, two times more usage to almost 25 times more usage across these. So if React were only being used because everyone is doing it, youā€™d expect with 80% of people in the survey you reference using it, it would be getting way lower scores.

Now, Iā€™m gonna highlight a couple particular features. So hooks are one. Hooks are genuinely great. And sure, most frameworks now have hooks, or hook-like features; I love the Composition API in Vue, donā€™t get me wrongā€¦ But letā€™s be honest, none of that would have happened without the React team paving the way. Hooks was still first, and the implementation in React is still pretty amazing.

[12:04] Thereā€™s also the factor of stability guarantees. So other than possibly Ember, whichā€¦ [wut?] What?! Iā€™m like a third of the way done. Okayā€¦ Weā€™re gonna have another couple of rounds of this going on, soā€¦

Oh, yeah.

ā€¦you have only begun to witness the ways in which React is far more powerful than just being popular. [laughter]

Objection. I think the court should overrule that. We have to retract the statement. Anything after the first wut should be removed from this transcript, or whateverā€¦ I donā€™t knowā€¦

It shall be stricken from the record at the editorā€™s behest. [laughs]

Thank you, thank you. No, itā€™s fineā€¦

Which means itā€™ll probably still be there.

Itā€™ll probably still be there, yeah. So, okayā€¦

Yeah, now it is your turn, Amal.

It is my turn? Ding-dingā€¦

[beep]

Okay, you have to start the clock from now, okay? Iā€™m losing timeā€¦ Okay. Well, you know what, Kball - that was a very interesting take, and Iā€™d say the word ā€œmediocreā€ is subjectiveā€¦ And I would say React has done a phenomenal job of paving the way, and I think pushing us forward as a community to think about components. And those are all great things. However, 2013 is when it came out; and in JavaScript years - you know, weā€™re in 2022, so React might as well be going into its grave, right? So weā€™re the community of innovation on the webā€¦ Youā€™re either moving forward or youā€™re dead in JavaScript, right? So we are the innovators, and quite frankly, React has been over-innovating in some areas, and under-innovating in othersā€¦ I think by trying to kind of have this API - like you said, itā€™s this wide reach, itā€™s used and itā€™s popular etc. Well, guess what happens when youā€™re trying to appease everyone, and when you have one core library thatā€™s the base for so much? It means youā€™re doing lots of things in a mediocre way. And some things well, most things not so well, right?

So when youā€™re thinking about your API design, you have to be intentional, and as a library author you have to kind of resist the temptation; like, do one thing, and one thing well. And I think React kind of lost the story when it tried to reinvent JavaScript engines in the browser, quite frankly. Thread management, scheduling, concur, this, that and the other thing. I think when they first rolled out some of those features, Facebook.com had bugs. Every abstraction in the web has a cost, and React for me is just too much of a cost at this point. I canā€™t justify their cost. The only kind of case where I would consider using React in 2022 for a new applicationā€¦ [wut?]

Iā€™m gonna cut you off right there, right at the perfect cliffhangerā€¦

I was trying to target multi-platform users, you know? Thatā€™s about it. [laughter]

You didnā€™t hear that. You didnā€™t hear her perfect case for itā€¦ Stopped right thereā€¦ [laughs]

Alrightā€¦

So, we have one more, and that is Amelia. Amelia, do you wanna have your Nope opening statements? [beep]

Yes. So first of all, Nope. Second of all - so we always talk about how React is super-unopinionated. And as a veteran of the framework wars of 2015, I just wanna say we donā€™t want to go back there. It was exhausting having a new framework every single week. Life is much better under the benevolent monarchy of React. Like, isnā€™t it nice to have one framework that works pretty much everywhere? And thereā€™s a libraryā€¦ Hey, I want a library that has a 3D rotating globe with lines on it. You know what? You jsut google it, itā€™s there. You pull it in. Pretty easy. Life is good. Do we really wanna go back to life before React?

[15:52] Another argument is if weā€™re gonna have one ruling framework, donā€™t we want it to be unopinionated? So React is really nice, because itā€™s basically just a rendering library with a minimal state management solution. Thereā€™s so many other things that build on React, that kind of make it equivalent to other frameworks. So even if you think about meta-frameworks, there have been so many popular ones. I think when it came out, there wasnā€™t one, and then there was Create React App, and Next, and Remixā€¦ And there are ways to have a more opinionated React ecosystem, but youā€™re not really forced into any of them. So if, say, Svelte or Vue or Angular were the benevolent kind, would that really be better?

And then the other thing I wanna say is if you look at the State of JS, the chart we keep mentioning, I think the X axis is satisfaction, and the Y axis is popularity or their ver- [wut?] Dang it! Iā€™ll get back to thatā€¦

Thatā€™s kind of like the remix to that song ā€œI canā€™t get noā€¦ Doo-doo-dooā€¦ā€ You knowā€¦ I thought that there was gonna be like a remix of thatā€¦ But anyways, thatā€™s fine.

Satis-wut-ctionsā€¦

Speaking of Remix, you yourself are making React references here, talking about Remixā€¦ You talk about React being down, but youā€™re bringing up Remix!

Oh, please. Iā€™m talking about musical remixes, not frameworks that think theyā€™re DJ songs. No. No. [laughs]

Well, speaking of remixes, we are going to remix this argument in the next section. But first, we have to close out this one. So weā€™ve heard the opening statements of all four of our contestants, and honestly, theyā€™re all really compelling arguments. I was told that I have to assign points though, and so Iā€™m doing my collating right nowā€¦ And yes, the winner of the first round is Jerod, because heā€™s not here. So congratulations, Jerod. [laughter] Weā€™ll see you in the next roundā€¦

Such a Swiss man, Nickā€¦

[laughs] He wins every one of these, and so we have to continue thatā€¦ [laughs] Alright, weā€™ll see you in the next round for more rapid-fire discussion.

Alright, so weā€™ve heard the opening arguments of each of our contestants. Weā€™ve made our preliminary decisions about whoā€™s right in this premise, ā€œIs React only great at being popular?ā€ What do you think, audience? Be sure to write us and let us know. Stop right here, write in. Donā€™t wait till the end of the episode to come to a conclusion. We want your hot take right now. Speaking of hot takesā€¦

Changelog Slack! Come into the Changelog Slack.

Thatā€™s true.

If youā€™re watching on YouTube, Changelog Slack! Hot takes, right now, in the JS Party channel.

Kball is way better at doing these plugs than I am, so I appreciate that, Kball. Alright, speaking of hot takes - weā€™re going to continue this discussion with a rapid-fire round. Weā€™re going to go and do a one-minute round each, and at the end of the minute, if you have tagged someone, or if you have called someoneā€™s argument out, they will get a chance to rebut it as well. So weā€™re going to do this ā€“ weā€™ll start with one minute, andā€¦ Where should we start? I donā€™t know that thereā€™s a specific place to start hereā€¦ But letā€™s start with Kball. Kball seems to be chomping at the bit.

Yes. I want to call out Amal, with her ā€œWe are the innovatorsā€ approach. On the one hand, your argument, ā€œWe should be moving to more innovative frameworksā€, and on the other hand youā€™re arguing the fact that React is trying to push us forward in some of the biggest gaps around web development. Like, how to handle asynchronous data fetching, and interactions with your rendering pipelines. Lack of threads and prioritization. These are the things that we need innovation on, and React is the framework that is doing it.

And sure, if you donā€™t need that function now, use something that doesnā€™t deal with it. If you donā€™t need interactivity, build something with raw HTML. If you donā€™t need to worry about data fetching ā€“ oh, waitā€¦ What are you building where you donā€™t need to worry about data fetching? We all need to worry about data fetching if weā€™re working in a JavaScript framework. And yes, I agree, suspense is weird. Iā€™m deeply skeptical of throwing promises and all of that stuffā€¦

Theyā€™re weird, tooā€¦

ā€¦and yet, it is attacking a very real problem that every single one of us has, where most other frameworks have just kind of thrown up their hands and said ā€œHey, itā€™s the userā€™s problem.ā€ So Iā€™m withholding judgment about whether Suspense in particular, as itā€™s implemented, will be the solution, but this is another place where again React is pushing the world of frontend development forwardā€¦

Objection!

ā€¦making things better for developersā€¦ [wut?] And we are the innovators!

I object! [laughter] Okay, Iā€™m gonna go ā€“ and I want a bonus 30 seconds, becauseā€¦ Okay? Bonus 30 seconds starts nowā€¦ Kball, I appreciate that rebuttal. So I have to remind you, that innovation should not be happening in JavaScript land. We need to push browser engines and JavaScript engines and rendering engines to be better. However, we also need to curb our enthusiasm for JavaScript. I donā€™t know, weā€™re shipping tons of JavaScript. I know, letā€™s just use JavaScript to manage JavaScript. No. Like, how about we just ship less JavaScript? ā€¦which is where all of the thought leaders within JavaScript are pushing us towards. Astro, Svelte, Vue.

[24:15] Secondly, I wanna go to Ameliaā€™s point from earlierā€¦ Amelia, you said ā€œOh, I really love this land where I have interoperability, and things just workā€¦ā€ And yes, I get it, weā€™re in the golden age of not having to change our framework every week. Thatā€™s exciting. But guess what - you also just donā€™t have to change your framework every week if you use web primitives. I donā€™t knowā€¦ Like, Web Components. Maybe all of our reusable thingsā€¦ Maybe that button, and that dropdown list, and that calendar icon, or calendar date picker thing that we have to reinvent every time thereā€™s a new framework - maybe that should just be written in the base primitive.

So I think we need to rethink the way our APIs are shaped. We need to rethink about whatā€™s reusable, whatā€™s composable, whatā€™s something that I should write once, for real, only onceā€¦ And we need to rethink what is it that weā€™re using our JavaScript frameworks for. [wut?] And frankly, React is just a confusing API now. Itā€™s lost its luster, and for me itā€™s just way too much complication, and I can get more bang for my buck anywhere else.

Mic dropped.

Mic dropped, yes. Mic drop sound.

Yeah. That was a fantastic rebuttal.

Itā€™s also about thisā€¦ [Web Lovers] Okay? Iā€™m a web lover. I love the web. I have to think, is React really good for the arc and the health of the web? I donā€™t know, kids. I donā€™t know. Do you really wanna come back to a React application in ten years and have to figure out how the hell to run all those build tools and how to updateā€¦? No. Simple is good.

My grep file is doing just fine, thank you.

Yeah. Well, Iā€™m just saying, you know? We have lost our taste for simplicity, because I think people are hungry to solve problems, and they donā€™t realize that weā€™re over-engineering the wrong things. Iā€™m just putting it mildly and simply.

Amelia, your response.

Alrightyā€¦ So my first response is that one of the beauties of React is that it has a really low floor, and a really high ceiling. So with the low floor - you donā€™t need to ship JavaScript just because youā€™re building something with React. You can ship a static HTML page; itā€™s just that your developer experience is way nicer than just writing HTML. And then with the high ceiling, going back to ā€œShould we be experimenting within the core web functionality?ā€, which Iā€™m not sure I totally buy that. I feel like if weā€™re gonna be innovating and experimenting, it should be on a framework that people put on top of web technology, instead of in the coreā€¦ Because we know, first of all, thatā€™s really slow; second of all, it has to all be backwards-compatible, so if you add something to browser engines you canā€™t take it out really, so youā€™re stuck with it. So if youā€™re gonna be experimenting, then Iā€™d say it should be in React instead of the browserā€¦ Iā€™ll leave it at that.

Youā€™re so polite, Amelia.

You can continue if you want.

Nick wants to get his wut out.

I was gonna go back to this stupid thing I was mentioning earlier, with the ā€“

[laughs] Gloves offā€¦

ā€¦the popularity versus satisfaction cycleā€¦ And I was just gonna finish itā€¦ [laughs] Donā€™t wut me.

Itā€™s just that ā€“ itā€™s just like a cyclical thing, right? When something isnā€™t super-popular, the people using it donā€™t have to use it, and so it goes up in satisfaction. And then it gets more popular because more people are satisfied with it, and theyā€™re talking about it. And then it starts going down in satisfaction, because everyone has to use it at work. And thatā€™s usually one hypecycle. And I feel like because React has been around since ā€“ did you say 2013? Itā€™s amazingā€¦

React is like corporate enterprise JavaScript now. Itā€™s like the base stack for every new companyā€™s thingā€¦

It is.

Right. But if itā€™s at that point of the hypecycle, itā€™s amazing that itā€™s still so high up in satisfaction, as opposed to all these other new frameworks.

Preach.

[28:07] Very well said. We have one more guest to get their hot take onā€¦ So Josh, do you wannaā€¦?

Alright, Iā€™m gonna go all-in on this one.

Good, because the timer is just up in the airā€¦ You just go.

Do you know why React is so high in satisfaction? Because itā€™s so complicated to use it makes you feel like youā€™re a total ninja when youā€™re using itā€¦

I feel called out.

ā€¦when really all youā€™re doing is using ten lines to solve a two-line problem. It makes you jump through so many hoops that you feel like youā€™re on American Ninja Warrior, reaching the top of that giant thing, just for writing a little bit of codeā€¦ When really, they made you do this; this was just solving a web problem.

I also wanna call out the ā€œWe donā€™t need to go back to whatever bad time beforeā€¦ā€ We donā€™t want to go back. Nobody says weā€™re going back. Thatā€™s the opposite of what we want. We want to move forward. React is firmly entrenched in the past. All of those decisions that were made nearly a decade ago are still in place, they are still having reverberations, and we have moved long since past then at this point. We donā€™t need JSX for anything, letā€™s just be honest.

[singing] We donā€™t need JSX when weā€™ve got HTMLā€¦ Or string templates in JavaScript!

Give me a chance to rebut this one, pleaseā€¦

Go for it.

It is a kludge. It is clumsyā€¦ It is just a way to shoehorn HTML somewhere that HTML should not be

Label fourā€¦

Yeah, HTML 4, classnameā€¦ I donā€™t know the difference between props and attributes..

Whatā€™s a classnameā€¦?

Iā€™ve gotta have a synthetic event systemā€¦

Iā€™ve gotta jump in hereā€¦

Jump in.

[laughs]

ā€¦because people love to hate on JSX. And there are real trade-offs between templates and templating languages and JSX. But letā€™s talk a little bit about the benefits that JSX brings you. So JSX is ā€“

Iā€™m sorry, do you just get a new turn now? What is happening? [laughter]

Abso-freakin-lutely, because you brought out the JSX. Now, JSX is a domain-specific language for generating HTML. And if there is one programming concept that is under-utilized in the industry, it is writing DSLs. Domain-specific languages. You can get so much freakinā€™ productivity and communicatibility by moving into a domain-specific language. And what this does is it allows you to bring the full power of JavaScript to bear on your problem, as well as domain-specfic sugar, and help, and a way to talk about and think about things that make sense for rendering HTML. And as much as I do love templates, and I do love templating languages, and I love writing bare HTML, there is a real cognitive load to jumping back and forth between mental models and programming languagesā€¦ While JSX essentially lets you stay in the JavaScript mental model throughout. And you can write it in all the different ways you write JavaScript. So if you like writing imperative, stateful JavaScript, you can write imperative, stateful JSX. If you prepare pure functions and composition, and really clean, and beautiful, functional architectures, you can do the same thing with JSX. And this is a huge reduction in cognitive load as you move through parts of the application. This was the key initial insight of React, was you put these things that are conceptually together, together in a place where you can work on them without having to jump context, without having to jump mental models, without having to do all of these different mental gymnastics, and itā€™s a dramatic unlock in terms of productivity and being able to think about it this way.

So you mean if I wanna write an if statement, I can just write on in JSX? Is that what youā€™re saying?

If you really want to, you can. So yes, there is enough rope to hang yourself, or whateverā€¦

I can just do just a JavaScript loop?

Yeah, absolutely. The more power you get, the more footguns you can get.

With great powerā€¦

You know what my favorite - and when I say ā€œfavoriteā€, I mean favorite-not - feature of JSX is? [singing] Dangerously set inner HTMLā€¦ Whatā€™s so dangerous about HTMLā€™s inner parts? I donā€™t knowā€¦ [laughter] But theyā€™re dangerous on the internetā€¦ Of React. Reactā€™s internet, of course.

[32:09] Because clearly, injecting unsanitized data is not dangerous to anyoneā€¦

Well, you know what? I donā€™t really think SQL injection or whatever else is whatā€™s happening most of the time here.

Cross-site scripting is not a problem anymore, andā€¦

You know what - this is its own debate, right? Iā€™m just saying, React basically makes it difficult to do anything with the HTML. You have to use JavaScript for everything. JavaScript gets in the way of ā€“ thereā€™s no direct communication between the developer and their HTML.

Itā€™s Atwoodā€™s Law.

Everything is created by React. Like, whatā€™s up with that? React generates my HTML?

Iā€™d also like to point out, since weā€™re just sticking on this forever now, I guessā€¦ 90% of that argument was not specific to JSX. It was just specific to domain-specific languages.

Show me another domain-specific language for rendering HTML.

There are far less clunky ways to do it.

Show me another domain-specific language for rendering HTML.

[laughs]

Mustache? Handlebars? I donā€™t knowā€¦ [laughs]

Liquidā€¦

Thatā€™s a templating language. Once again ā€“

Is this library vs. framework for how we put HTML on the page?

Rightā€¦ I would say, to be honest with you, I like ā€“ whatā€™s his face? It has a nameā€¦ PX-somethingā€¦ Something-PXā€¦

So markup languages are useful. Generating a templating language with markup - that is useful, and then you have a separated compiler and integration. But you end up doing a totally different set of thingsā€¦ Which - there is a taste aspect there. And there are definitely benefits to templates. The thing you just picked on - dangerouslyā€¦

Set inner HTML.

ā€¦set inner HTML - that is an example where in a templating language you can actually do a lot easier stuff because of the world youā€™re in; you donā€™t have as much flexibility, so you donā€™t need to put as many controls in place to keep yourself safe. So a benefit of a templating language is you can actually be much more careful about how youā€™re doing sanitization, and all that, much simpler. But you lose a lot as well. Thereā€™s a lot of things that you might wanna do that are much harder to express in a templating language.

Like the expressiveness stuff, right?

That sounds way too nuanced for this part.

Would dangerously set inner HTML be as controversial if it were just three open curly braces?

[laughs] Oh, I like that. Look at you, Nick Nisi, and your nice API designā€¦ I see an RFC coming. Yeah, three curly braces is ā€“

If I remember correctly, thatā€™s the Handlebarā€™s way of ā€“ just render whatever; just drop what I put in here, and do it.

Just do it! #nike

Yeah. At least the dangerously partā€¦ Like, itā€™s called out.

Trust me, I know this content is goodā€¦ [laughter]

Trust me, I know what Iā€™m doingā€¦

I think it should just be called ā€œTrust me. Do itā€ HTML.

Do it! Right. Right.

Yeah, the JustDoIt.

I just wanna highlight how good of a point it is that in your article, Josh, you talk about the learning curve for React. And there is quite a learning curve. But at the heart of it, if you know JavaScript, you know pretty much all of React. Like, if weā€™re using JavaScript instead of a templating language with JSX, you donā€™t have to look up like ā€œOh, is it ā€˜If#If or ngIfā€™ If you know JavaScript, you know how to conditionally render some HTML, or loop over something. Youā€™re not going back and forth to the docs and to your text editorā€¦ Iā€™m a little bit afraid of the looks youā€™re giving me. [laughs]

[35:51] Yeah, that was always my argument for React over Angular. I remember thinking ā€œWow, I donā€™t have to learn about all these pipes and filters, and all these mystical things that are very domain-specific to Angular, for example. JavaScript and React - they are one and the sameā€, right? That part was awesome. You kind of have to squinch your eyes a little bit at JSX. Itā€™s like, ā€œI donā€™t know what the hell is going on thereā€, right? And then for me, the hooks ā€“ I mean, I actually really donā€™t mind JSX, but the hooks API is really where Iā€¦ For me, that was the beginning of the end for me. Itā€™s just a very clunky API. I feel like itā€™s difficult to use. People think they know it, but they really donā€™t.

And for me, this really ties into your point earlier, Amelia and Kball, around learning React. I think Amelia especiallyā€¦ So the reason why hooks is a thing - or one of the main reasons - is because people were really confused about this, and the this keyword in JavaScript with React. That was a huge driving factor, because there was constantly community support questions about ā€œWhy is this not working?ā€ So binding, and managing the this pointerā€¦ Classes just were a little confusing for folks. And for me, I wish we could have just kind of really redirected folks towards good fundamentals courses, because I think ā€“ itā€™s one of those things where like, yeah, I really doā€¦ I have a hard time saying this, because it feels a little gatekeepy, but I do really think itā€™s important for you to understand the fundamentals of a language, especially if youā€™re gonna be using it every dayā€¦ I think hooks kind of bypassed the need for that.

And yeah, youā€™ve got a lot of other powerful things too, but I donā€™t knowā€¦ Iā€™m not into React anymore. I havenā€™t been in it ā€“ it feels good to be able to say that out loud, becauseā€¦ [laughter] No, because you know, for a while it was hard. It was hard to say that.

Yeah.

We could go on forever here, but I donā€™t think classes and this was the reason for hooks. I think itā€™s about composability and reuse of statefulā€¦

It was a primary driver, from my understanding.

Iā€™m gonna pretend to be the moderator again, and pretend like this was allā€¦

Planned?

ā€¦controlled very well. Sorry, Jerodā€¦ [laughter] So I think that weā€™ve all made great pointsā€¦ I donā€™t even know where weā€™re at anymore with thatā€¦ But to get us back on track, and now that Iā€™ve sufficiently filled the quota for time on this segment, letā€™s go ahead and do a quick 30-second closing statement from each of you, and then weā€™ll move on to the next round, where we can speak freely. Josh, you were about to say somethingā€¦ Do you wanna kick us off with a closing statement?

Sure. Iā€™ll just say, the argument was made itā€™s easier for beginners to get into this, because itā€™s JavaScript, whatsoeverā€¦ I think thatā€™s a little bit of a stretch maybe. If I see those double N percents, or that map instead of a loop, I donā€™t know if that necessarily intuitively makes sense to me as a beginnerā€¦ But I also wanna point out, we should be careful how much we assign to a beginnerā€™s perspective, and we should be talking to the actual beginners. And in a lot of cases, the beginners do find that that templating is much more intuitive for them, and much more simple and delightful to use, dare I use the wordā€¦ [wut?]

Very well said. Kball, do you wanna give your closing statement?

Sure. I will give a closing statement. So I think at this point weā€™ve covered all of the infinitely many ways that React is more than just popular, but I wanna talk very quickly as a closing statement of something thatā€™s downstream from popular; something that popularity enables, but itā€™s not just about popularity, which is the incredible ecosystem you have around React, in terms of documentation, learning resources, plugins, libraries, componentsā€¦ You know, if youā€™re trying to accomplish something in React, thereā€™s gonna be something out there thatā€™s gonna help you do it. [wut?] And that is something that is related to popularity but it is not a guarantee, and it is a distinct and unique benefit that you get with React.

Well said. Alright, Amelia.

[39:49] Alright, so I just wanna point out that I feel like the Yep team has kind of tied themselves in circles and a little bit contradicted themselvesā€¦ And I think thatā€™s just due to the tough position that theyā€™ve been placed in, where React is unopinionated, but also itā€™s hard to use, orā€¦ I think the fact that itā€™s unopinionated makes it a really, really good majority used framework, where weā€™ve been building on it, itā€™s iteratedā€¦ This was really confusing early on, and so they moved to a more functional component type of solution. So weā€™re not using this and getting confused about it anymoreā€¦ So I just wanna say that React is a benevolent dictator; I guess itā€™s changed from a monarchy, but itā€™s okay.

And on that, we will end this segment - well, this debate. Iā€™m really not sure who wonā€¦ Jerod did, again. Congratulations for not participatingā€¦ And yes, I think that we will all show how we, by our own admission, when we all pretty much go back to our dayjobs of writing React, weā€™ll figure out who won. So yeah, stick with us through the break, and weā€™ll talk about real thoughts on this.

Wait, those werenā€™t our real thoughts?

They could have beenā€¦

Just kiddingā€¦ [laughter] I mean, they were mostly mine, butā€¦

Yeah.

So that was our debate, Yep/Nope on React only being good at being popular. And of course, as we mentioned in the beginning, Josh and Amal were assigned to team Yep, and even though Josh wrote the article that this whole is based off of, he might have different thoughts on thatā€¦ And then on the other side, team Nope, Amelia and Kball were arguing that no, thatā€™s not all that React is popular at. So where do yā€™all really stand on this?

I feel like I wanna hear from Josh first, because he wrote that articleā€¦

[laughs] Yeah, obviously, I wrote the articleā€¦ The piece has a lot more nuance than I think you probably heard from me today; I hope that comes through there. And I readily admit that although Iā€™m not a fan or React, I will gladly take it, in many circumstances, if thatā€™s my option.

Well, you use it at your dayjob at Shopify, right?

I doā€¦ And Iā€™m very happy at my job, in case any of my bosses are listening.

Back to that corporate severance JavaScript, you knowā€¦

If Iā€™m picking, Iā€™m not picking it. I do think that it has probably aged more poorly than a lot of people realize. I do still admit that it is very good, and I think Kball honestly made a great point about the things that popularity bringsā€¦ Even if I would rebut by saying thereā€™s a point of diminishing returns with what popularity gets youā€¦ But yeah, somebody said weā€™re in the golden age of frontend, or something like that, and I do kind of feel like that. Itā€™s great that we have these choices, itā€™s great that we have a solid default, even if it isnā€™t one that I particularly enjoy.

Yeah. And from that default we got into a big tangent about JSX. And kind of calling back to previous Yep/Nope episodes, specifically with Kball, where heā€™s appealing to authority, and specifically appealing to Laurie Voss talking about these ideas that transcend the user land, or transcend the frontendā€¦ Well, JSX in a lot of ways has kind of transcended React. Itā€™s used in other places than just React. And my opinion is - I was there in 2013, when Facebook announced it at JSConf, and I laughed at it, and I have a tweet out there that is ā€“

Not aged well.

ā€¦the silliest thingā€¦ Yeah. [laughs] And now I really like writing JSXā€¦ Specifically TSX, but thatā€™s a different story.

Oh, wowā€¦ Oh, my God. Oh, my Godā€¦

Iā€™m obligated ā€“

Like you needed to say itā€¦

You cannot get through one freakinā€™ show with Nick Nisi without bringing up his beloved TypeScriptā€¦

[laughs] Thatā€™s right.

I will say that TypeScript support is another driving factor for moving to functional models for state handlingā€¦ And I have gone from being a place where I was a little skeptical of that level of typing, to I donā€™t know how I ever lived without it, soā€¦

[47:35] Sorryā€¦ [laughter]

Nickā€™s the only winner today.

Yeah. To go back to that point though, Kball - from my understanding, that was a huge driver for hooks. Like, people just didnā€™t ā€“ the this context was hard. And then there was also the boilerplate problem, right? Lots of boilerplate. So itā€™s like, okay, how do we take that and allow for more reuse? And so the hooks API was born. But for me, itā€™s a clunky API. Iā€™m sorry. Thereā€™s too many leaky abstractions. Thereā€™s too many implementation details. Iā€™m like, ā€œWhy are you exposing this to end users?ā€ I feel like I have to really have a deep understanding of the framework internals in order to really not footgun with hooks. And thatā€™s saying something, right? Thatā€™s saying something about your API.

[48:21] Yeah.

And Iā€™m a seasoned user of React. Iā€™ve been using it since 2013, early days; very early adopter. So if Iā€™m coming here and saying ā€œThis feels weird. This is unnatural and unintuitiveā€¦ā€ For a very long time I felt like the only person in the room that felt that way. And itā€™s hard, you know? It was very hard to be that person. And itā€™s getting less hard.

I will say that I agree with that. It took a long time to wrap my head around hooks. I like them now. I feel like theyā€™re powerful, and you can do a lot with themā€¦ But also, Iā€™ve never used Svelte, for anything, but I have looked at the Svelte homepage, and they just say ā€˜let counter=1,ā€™ and then they say ā€˜counter=counter+1ā€™ later on and theyā€™re not doing a ā€˜useStateā€™ and then calling a setter to specifically set thatā€¦ I like that, but also that kind of scares me, because itā€™s magic.

And have a magical callback array, andā€¦

Yeah, there are so many trade-offs involvedā€¦ So if Iā€™m gonna step back, if I were doing a personal project right now, it would not be in React.

What would it be in?

If Iā€™m picking a language for a company, it probably is React. But the Svelte compiled ā€“ like, having it basically go through a compile phase gives you so many nice ways that you can get some of the benefits that you get with hooks, without some of the cognitive overhead of an awkward API. I also love, if Iā€™m honest ā€“ like, the Vue Composition API feels to me like a much more beautiful implementation of the same concepts of hooks. Now, it comes with some its own drawbacks, because you have things wrapped in different ways, and you canā€™t access valuesā€¦ Everything in this has pros and cons, but yeah, hooks is not the most beautiful implementation of the hook concept.

You were highlighting the this conflict again, and I feel like thereā€™s more than just trouble with like the syntax in thisā€¦ Because I think where you really run into trouble ā€“ like, I guess React didnā€™t ever really have this concept of mixins, but trying to compose logicā€¦

Very early days it did.

ā€¦and reuse it in the class-based model - I ran into that a lot in Vueā€¦ It was a nightmare to keep track of whatā€™s going and understand how things are gonna relate with each other, and compose with each other, and all of that, and it was so easy to footgun, and it was just like a really hard mental model. And the hooks model and the composition API in Vue just makes it so much easier to reason about that, and move things around, and compose them. So you were right that thereā€™s an awkwardness to it, and youā€™re right that part of it was a hang-up with the previous model, but I think that it goes a little deeper than familiarity with the language, and I think it has to do with how do you bring together reusable concepts that interact with state.

I think itā€™s worth mentioning, to that point - for as unopinionated as React is, it is extremely opinionated about how you handle data and immutability. And I think that has roots in its Facebook origins, andā€¦

The Flux architectureā€¦

ā€¦how they were trying to create something that would help them wrangle the unthinkable complexity of this highly interactive application. And if thatā€™s where youā€™re at, then maybe that system where you literally canā€™t touch a variable unless youā€™ve gone through the proper steps first - even that makes a lot more sense for you.

Oh my God, Josh, Iā€™ve never heard thatā€¦ Thatā€™s so cool.

I was just gonna say, a hundred percent to Kballā€™s argument, and also to what youā€™ve just said, Josh. I feel like Iā€™m still jetlagged from the Svelte Summit, which was a wonderful conference. I personally really, really love Svelte; for side projects I will 100% use Svelte. Itā€™s just so much fun. Thereā€™s way less boilerplate. Reactivity is so, so nice, and they have built in animationsā€¦

[52:14] That just means thereā€™s way more magic, right?

Magicā€™s not a bad thing, Nickā€¦

I mean, Magic is the opposite of leaky abstractions, you know?

I think a little bit of magic is niceā€¦ But not like Angular.js levels of magic; that got a little bit painful. And I think that kind of gets back to - if at my dayjob we need a project weā€™re gonna hand off, or that needs to be maintained for a long time, I feel like React scales a little bit higher, a little bit more easily. Itā€™s harder upfront, but then if you have the data immutability and ā€“ I think hooks scale a little bit higher. If you had a really large codebase, I feel like it can be a little bit neater in React, especially because all of those things yā€™all were talking about.

Yeah, thatā€™s a really interesting perspective. I think for me, if I was starting up something for a company, if I had to pick, Iā€™d probably be like Vue at this point. Vue, and then Angular. Angular is very much kind of like a platform, and I feel like itā€™s very good for large enterprises, with lots and lots of developers contributingā€¦ Because thereā€™s really good conventionsā€¦ You know what I mean? Thereā€™s that kind of batteries-included feel with Angular. Also Vue, a little bit. So I think for me those would be the two. But yeah, definitely not React at this point.

I was just thinking, one other interesting thing was that at Svelte Summit there was some talk of how Svelte isnā€™t the biggest, and how it doesnā€™t want to be the biggestā€¦ Success for a framework isnā€™t necessarily more and more usage. Iā€™m kind of really happy, selfishly, with the way things are, with React having such a large market share, and Svelte being this fun thing that I do for projects that are more enjoyableā€¦

Yeah. That brings up a question that I wanted to ask in this section, and that is - do you think that this would be the fate of any of these frameworks? If Svelte had come out first maybe, and gotten to the popularity level that React is at, would we all be hating on it just as much? Especially if it was Facebook-backed.

According to the hype cycle that Amelia was talking about, I would say probablyā€¦

I think itā€™s reasonable to assume that it takes time for something to become the majorly adopted choice, and in order for it to have been around that long, itā€™s probably just going to necessarily have some baggage from the past, that newer things are not gonna have. So to a certain extent, this is a cycle, and thatā€™s one thing I really wonder about, is what does that next iteration look like? Does React just have a very long tail? It doesnā€™t seem likely that anything is going to overtake it and be the thing at any point in the foreseeable future, so itā€™s interesting to wonder what does the next era look like, what is the next iterationā€¦

Yeah, I couldnā€™t agree with you more. Hopefully, itā€™s React adopting more from other people, other librariesā€¦ But yeah.

I think itā€™s worth thinking a little bit also about the organizational structure that results in these frameworks. Many of both the places where React excels and some of the places where weā€™re running into friction with it are tied to the fact that it is built still by Facebook, and the focus and optimization choices that theyā€™re making are for solving the problems that Facebook has. And those problems have a reasonable match with the problems that many corporations have when theyā€™re building JavaScript applications, but they are definitely off on one hand. And actually, I think you run into some of the same things with Angular. Angular is still primarily driven by what Google wants and what Google needs. So I think that if Angular hit this level ā€“ well, early Angular kind of was really popular, and then went through a lot of this. Now, if you look at the satisfaction, people are deeply dissatisfied with Angular, even though thereā€™s a lot of people using it. React has thatā€¦

[56:11] Vue feels at this point much more community-driven. I get the impression Svelte is going that way as well, even the both of those started with a benevolent dictator approach. Theyā€™ve both kind of embraced a broader community, rather than sort of going along the needs of a single corporationā€¦ So if they were to get there, they might do better. That being said, that may also make it harder for them to get there.

Going back, old-school frameworks ā€“ like, Ember was one of the first ones here, and they did so many things so well, and were also not backed by a single corporation, and they never got much adoption relatively speaking. Theyā€™ve stayed very, very niche.

Very good point.

Yeah. I think, Kball, your point about Facebook solving problems for Facebook - it really ties back to what Josh was talking about a little earlier too, around like even the strictness and the heavy opinions around data mutation is somewhat inherited from Facebook trying to wrangle its eventing architecture, right? There are so many things happening, having that downward flow, and being really strictā€¦ That was something that Facebook needed.

This is something that weā€™ve talked about on the show even recently, Amelia and Nick, in our tech interview discussion we had a few weeks agoā€¦ I brought this up, around how these ideas and tools and problems within big tech are kind of proliferated throughout our community, where itā€™s like people donā€™t contextualize it. Itā€™s like, okay, the problems that Netflix engineers have, and the reason why theyā€™ve created this library - they have problems that are unique to Netflix. Netflix in particular is a company that ā€“ you know, before the Disney Pluses of the world, they were a very unique kind of streaming service that was operating at this scale. They were very alone in that bubble. Lots of people have joined them now, but they were solving problems that are unique to Netflix. Facebook - the same thing, when Facebook was scaling in that way. I mean, come on; itā€™s like the biggest website outside of Google.com. And Google.com is one input box and a list view. Facebook was so ā€“ you know, all these interactive elements, and really a fantastic place. If you look ā€“ I donā€™t know, for me anyway, I have to close my eyes on the product; if I donā€™t think about what theyā€™re doing, like, itā€™d be a fantastic place to work as a frontend engineer, to work at that scale, and have to think about all of those elementsā€¦ Itā€™s a huge website.

[58:35] So I think we just really donā€™t contextualize that enough, and I think for me a bigger concern that I have is the corporatization of all of our open source projects that we love and care about. Quite frankly, everything is coming supported by Microsoft now, or Google, or Meta, or Netflix, or Airbnbā€¦ You name it. And these community-driven grassroots projects, like Vue, and Svelte, Astro - theyā€™re just kind of fewer and in between these days. I just wanted to point that out as just the kind of general smell that I see, thatā€™s happening within our community right now.

I donā€™t know, corporate projects are great. Theyā€™re stable, they usually have less bugs, lots of upsides, but at the same time, we donā€™t really have open governance around the roadmap, at any point they can drop it and stop caring about itā€¦ All kinds of reasons why I like community-driven open source; itā€™s usually a better bet. But of course, that also has its trade-offs, right? So I donā€™t know, it feel like weā€™re stuck between decisions that itā€™s like ā€œHereā€™s a bad decision, and hereā€™s a less bad decision.ā€ Whereā€™s the good decisions right now? Itā€™s hard to really make that, I think, for frontendā€¦ Seriouslyā€¦

Is there anything that React could do to save itself? Like, some kind of reinvention, like Angular to Angular 2. Or would it suffer the same fate?

I think Angular to Angular 2 would destroy a lot of the good will that itā€™s built up by being one of the most stable options out there.

Yeah, agreed. Theyā€™re too big to fail, in many ways now. Theyā€™re literally too big to fail, right?

I mean, classes and hooks are not fully interoperable already, right? I mean, I guess you can use either one, soā€¦

Thatā€™s true. Wasnā€™t there like major changesā€¦?

Yeah, you do not have to rewrite your apps to upgrade. I did a React upgrade recently, and it was seamless.

Thatā€™s a tremendous benefit.

So thatā€™s a bit of a different thing, I guess.

Yeah.

I donā€™t knowā€¦ I feel like Iā€™ve heard rumors that maybe there is some kind of new exploration being done in the hooks realm, to make hooks maybe a little more performantā€¦ I donā€™t know if thatā€™s going to change the syntax, or whatā€™s gonna happen thereā€¦

I hear theyā€™re gonna throw promises nowā€¦ [laughter] Iā€™m kidding.

My opinion is that React is never gonna stop being React. I think itā€™s too far down the road for the things that make it what it is to change at this point. Itā€™s built upon a foundation that you canā€™t really just shift. So I donā€™t foresee it undergoing a major change, so I donā€™t think itā€™s ā€“ as much as I hate to use the phrase, I think it sort of is what it is at this point. Iā€™m sure it will continue to improve; itā€™s got a very strong team of incredibly smart people behind itā€¦ But I think the core foundation itā€™s built on is bound to stay there.

I think thatā€™s a good place to end it. Thank you so much, Josh, for coming on. Weā€™ll have a link to your blog post in the show notes for people to check out. Congratulations to Jerod for winningā€¦

Awesome blog post.

Yeah, definitely.

Thank you for having me.

Yeah, thank you so much for coming on, and thank you to Amelia, Kball and Amal for joining as well and for viciously debating and supporting the sides that were assigned to you. We appreciate it. And we will catch you next time!

Changelog

Our transcripts are open source on GitHub. Improvements are welcome. šŸ’š

Player art
  0:00 / 0:00