skip to content
Podcast cover art for State of JS, Mitosis
Podcast

State of JS, Mitosis

JavaScript Jam hosts discuss Lee Robinson's case for React frameworks, review the 2022 State of JS survey results, and explore AI coding tools like GitHub Copilot.

Open .md

Episode Description

JavaScript Jam hosts discuss Lee Robinson's case for React frameworks, review the 2022 State of JS survey results, and explore AI coding tools like GitHub Copilot.

Episode Summary

This JavaScript Jam open mic episode covers three main threads woven together by the hosts and audience members. The conversation begins with a critique of Lee Robinson's Vercel blog post arguing for React frameworks, where the hosts conclude that most of his points actually justify using any framework rather than specifically a React one, and that the post doesn't directly address the growing competition from Svelte, Solid, and Astro. The discussion pivots when the newly released 2022 State of JS survey results come up, prompting a live walkthrough of the data. The hosts note React's dominant position in continued usage interest, the decline of Eleventy as Astro absorbs its mindshare, the surprisingly high disinterest in newer frameworks like Qwik and Solid despite their technical innovations, and the near-complete shift to TypeScript among respondents. Along the way, audience members raise topics including the Vue and Nuxt ecosystem's underrepresentation in JavaScript conversations, the Component Party tool for comparing framework syntax side by side, and Builder.io's Mitosis project for transpiling components across frameworks. The final segment features Sammy Yaber from Builder.io joining to share his enthusiasm for GitHub Copilot, describing how writing detailed comments as prompts reshapes the developer workflow and dramatically increases coding speed, a sentiment echoed by several other participants who see AI-assisted coding as transformative rather than threatening.

Chapters

00:00:00 - Welcome and Introductions

The JavaScript Jam hosts open the weekly Wednesday open mic session with some lighthearted banter about creating a proper intro for the show. Scott Steinlage, the technical community manager for Edgio, introduces the format and encourages audience participation regardless of experience level.

Co-hosts Ishan Anand (VP of Product at Edgio) and Anthony Campolo (developer advocate at Edgio and co-host of the FSJam podcast) introduce themselves, with Ishan highlighting Anthony's credentials including his work on the RedwoodJS team. The hosts promote the week's newsletter, which Anthony authored, and set the stage for discussing its contents with the audience.

00:06:03 - Debating the Case for React Frameworks

The hosts examine Lee Robinson's Vercel blog post arguing why developers should use a React framework. Ishan contends that roughly 75% of the article's six principles — reducing tool setup, easier onboarding, rendering flexibility, opinionated defaults, and deploy-anywhere support — are arguments for using any framework, not specifically a React one, and that it doesn't address competition from Svelte, Solid, or Astro.

Anthony adds nuance, suggesting the blog post is implicitly about Next.js and aimed at developers already in the React ecosystem who might be eyeing alternatives. The hosts agree that the strongest case for staying with React is its massive ecosystem and established community, rather than the framework-agnostic benefits the article highlights. Eric joins to reinforce that incumbent technologies like React offer strong job security and shouldn't be dismissed just because newer alternatives generate Twitter buzz.

00:16:45 - State of JS 2022 Survey Deep Dive

The conversation shifts to the just-released 2022 State of JS survey results. Anthony's immediate takeaway is the decline of Eleventy, which he attributes to Astro absorbing its audience by offering modern component framework support that Eleventy resisted. He notes that Eleventy's late addition of web components couldn't compete with established alternatives like Lit and Enhance.

The hosts examine the positive-negative split chart for front-end frameworks, observing that React maintains the highest continued usage interest despite vocal criticism. They find it surprising that newer frameworks like Solid and Qwik show high levels of disinterest among respondents, which Ishan interprets as a signal that many developers don't prioritize the performance improvements these frameworks offer. Jen raises the point that Vue and Nuxt are consistently underrepresented in JavaScript community discussions relative to their actual usage and capabilities.

00:27:30 - Vue Ecosystem, Angular, and Framework Comparisons

Anthony and Ishan discuss the Vue ecosystem's strengths, noting Evan Yu's retrospective that previewed Vapor mode as Vue's answer to virtual DOM performance concerns. The hosts express respect for Vue's accomplishments as a community-driven project without major corporate backing, while acknowledging it occupies a parallel track to React that they find hard to monitor closely.

The conversation addresses audience questions about why React doesn't adopt Solid's approach (the answer being React server components represent their own architectural path) and whether Angular will support single-file components (deemed unlikely given Angular's MVC-oriented audience). Daniel shares his personal experience transitioning from traditional MVC frameworks to React, noting the initial culture shock but eventual appreciation, while highlighting that Solid and React serve different use cases rather than being direct competitors.

00:36:08 - Survey Analysis: TypeScript Adoption and Developer Pain Points

Jason highlights the survey's finding that only 8% of respondents write exclusively in JavaScript, signaling TypeScript's near-complete takeover — a milestone the hosts note as significant for a "State of JS" survey. The hosts promote an upcoming TypeScript crash course with Josh Goldberg and a planned live Q&A session.

Ishan walks through the survey's opinion sections, noting that 39% of respondents find JavaScript app development overly complex and that feelings of the ecosystem changing too fast slightly decreased in 2022. The top developer pain points — code architecture, dependency management, and state management — spark a tangent about Replay.io, a debugging tool that Eric describes as a time-travel debugger operating at the browser engine level, distinct from Redux's state-focused approach. The hosts run through the survey's awards, with Vite winning three categories and Astro taking most write-in mentions.

00:49:19 - Component Party and Mitosis

Returning to the newsletter, the hosts spotlight Component Party, a tool that shows how common framework tasks like declaring state or handling click events look across eleven different component frameworks. Ishan highlights how the side-by-side comparison reveals Svelte's conciseness while showing how other frameworks maintain React-like APIs despite different underlying architectures.

Eric introduces Mitosis from Builder.io, a tool that lets developers write components once in a React-like syntax and transpile them to Vue, Angular, Svelte, Solid, and many other frameworks. The hosts are impressed by the playground at mitosis.builder.io, and Nicky T shares a link to his Twitch stream with Sammy Yaber, the tool's developer. The discussion touches on how Builder.io funds innovative open source tools like Mitosis and Qwik through their e-commerce platform revenue.

01:19:32 - AI-Powered Coding Tools and Copilot

The final segment explores AI's growing role in developer workflows, beginning with Anthony describing HTTPie's new AI feature for generating API requests from natural language. The hosts reflect on how this trend of natural language as a programming interface is percolating through every level of development tooling.

Sammy Yaber from Builder.io joins to share his passionate endorsement of GitHub Copilot, explaining how writing detailed comments as prompts generates accurate code roughly 85% of the time and fundamentally reshapes the developer workflow. Daniel and Nicky T reinforce this with their own experiences, noting that providing context through imports and detailed comments dramatically improves Copilot's accuracy. The episode closes with the hosts expressing optimism that AI tools will augment rather than replace developers, with Anthony drawing a distinction between automation that removes humans and tools that make them more effective.

Transcript

00:00:36 - Scott Steinlage

Yo, welcome to JavaScript Jam. Yeah, it's the jam, y'all.

00:00:45 - Ishan Anand

[unclear]

00:00:45 - Scott Steinlage

You know what? I really want to come up with an intro. I really, really want to come up with an intro to what we're doing. I think it'd be so much fun. Have an intro pre-recorded or whatever. I don't know. I think it'd be awesome. With some music maybe, I don't know, it could be fun. Yeah, like, totally. There you go, bro. All right. Yeah, I think we're gonna figure something out with that in the next couple weeks, whatever that might look like,

00:01:18 - Scott Steinlage

Then have a super cool intro. And we already kind of have like an outro, sort of, and I think we just add to that a little bit and then maybe have our own tunes instead of the silly ones that I have on my board that came with it. I think it would be super cool. All right, with that being said, welcome to JavaScript Jam. We do this every Wednesday at 12:00pm Pacific Standard Time, and today is one of those days that we have a very awesome open mic opportunity for everybody to come up. By the way, how do you like it? JavaScript Jam?

00:01:58 - Ishan Anand

I loved it.

00:01:58 - Scott Steinlage

Yeah, Anthony, I give cred to for that one. He came up with the JavaScript Jam.

00:02:04 - Anthony Campolo

Oh yeah. I could come up with something.

00:02:05 - Scott Steinlage

That bad? No, it's awesome. We love it. And Ishan, you know, is a very funny, punny guy. Very funny guy, so I think it's good too. It's great. Invite Daniel up here to speak if he wants. All right. Either way, this is where we talk about everything web development and JavaScript-related. If you are a beginner or even an advanced member of this society of developers, we want to hear from you. It doesn't matter. We don't care. If you don't know much, or you know a ton, let's hear it from everybody. In fact, that's where we get a ton of value from, when folks participate in the audience. So be sure to click on the request to come up and we'll bring you up. By the way, if you get value from anybody during this whole time and you want to do them a favor and yourself a favor, click on their face and follow them because you're probably going to get value from them in other places too. So, yep, let's start the open mic. We have myself, which I don't talk too much during this, but hey, you know what?

00:03:20 - Scott Steinlage

I do like it when I do.

00:03:24 - Ishan Anand

My name is Scott.

00:03:25 - Scott Steinlage

That's so silly. And I am one of the co-hosts here. I work as the technical community manager for Edgio. Then we have Ishan and Anthony and Daniel, and I will let them introduce themselves as well. So welcome.

00:03:47 - Ishan Anand

Yeah, actually, you know Scott, while we're doing the round of intros, you want to put up in the space the link to this week's newsletter.

00:03:55 - Scott Steinlage

Yeah.

00:03:57 - Ishan Anand

Which is our best newsletter yet, thanks to our co-host Anthony here, who we'll let introduce himself. I'm Ishan Anand, VP of product at Edgio. I'll let Anthony introduce himself. Were you going to say something, Scott?

00:04:11 - Scott Steinlage

No, we're good.

00:04:13 - Ishan Anand

Okay. Okay, great.

00:04:15 - Anthony Campolo

Hello, I am Anthony. I'm a developer advocate at Edgio and yeah, got a lot of stuff going on. So exciting.

00:04:23 - Ishan Anand

He's also the co-host of a podcast called FSJam. If you're in the front-end, full-stack developer space, you should check it out as well. And they were nominated for an award at Jamstack.

00:04:36 - Anthony Campolo

That's true. I need to start saying award. I guess you can't really say award nominated.

00:04:43 - Ishan Anand

Yeah, exactly. Emmy-nominated, Emmy-nominated developer advocate Anthony. And then also, he's a member of the RedwoodJS team as well. So he's being a little humble there with just one credential. And, you know, as I was saying earlier, it was our best newsletter yet this week because we handed the reins. It says my name. We're going to fix that so it doesn't say my name in the future. But Anthony, shout-out, created and authored this week's newsletter, and he did such a better job that I'm like, okay, you get to do it in the future.

00:05:22 - Anthony Campolo

How you could tell I wrote it, so that's how I know I did good.

00:05:26 - Ishan Anand

Yeah, I don't know what that says about me, so. But. But it was a really good newsletter. There was a lot in there that I thought is worth discussing. But before we jump into any of that, you know, I want to remind folks we are audience driven. So if anyone in the audience, Jen, you want to raise your hand and raise something that wasn't in the newsletter this week. Happy to talk about whatever you want to chat about, but there is a bunch of stuff that I thought was really cool and interesting in the newsletter. Anthony, is there anything that jumped out at you and you're putting it together that you want to chat about first? I can tell you what I thought was most interesting.

00:06:03 - Anthony Campolo

You should go first. Let me pull it up and remind myself what I put in it.

00:06:08 - Ishan Anand

The first thing you had actually was Lee Robinson from Vercel making the case for why you should use a React framework. It's a really interesting blog post. I feel like the subtext for this is what we talked about last week and hinted at, which is that React is growing in usage. I think it was Bytes who had the best tagline for this: React usage will grow, but so will React hate. At the same time, both are just going to continue, and we definitely see the emergence of more people saying, hey, maybe we should have a post-React world. Maybe React isn't as appropriate for all the things we thought it was. It used to be React for all the things. And it feels like this is a statement of like, whoa, whoa, let's not throw the baby out with the bathwater. Let's call that the subtext. And my quick takeaway is I felt like it didn't directly address the elephant in the room. The people who hate React don't hate it for the reasons that were mentioned.

00:07:31 - Ishan Anand

So it felt like some of the arguments were a straw man. So what he was arguing for is you need a framework, right? You can have opinionated choices that protect against bike-shedding. You want easier onboarding and training of new developers. Now that's actually one that's truly for React, but he's...

00:07:47 - Anthony Campolo

I would say so I think 50%

00:07:48 - Ishan Anand

of it was argued. Yeah.

00:07:51 - Anthony Campolo

Where it connects is that the reason why people have issues with React, I think, tends to stem from people not knowing the best way to use React or using React in suboptimal ways. So I think that if someone uses a framework that does things for them in a way that makes it more performant, then they are addressing one of the more common concerns people have with React. So he doesn't really necessarily say these are the issues and this is why they solve them. I think you can draw a line from one to the other.

00:08:24 - Ishan Anand

See, I think you're actually addressing the React hate better than the blog post. The blog post felt like...

00:08:32 - Anthony Campolo

It's really familiar with React hate, so.

00:08:34 - Ishan Anand

Well, yeah, I mean the blog post is very much, let's go through the six principles. Really to summarize, it said you should use a framework because you'll have less time connecting tools and more time building products. I agree with that. Number two, easier onboarding and training of new developers because they already know what this React thing is. It's a large ecosystem. I agree with that. Number three, flexibility for rendering strategies, server, SSR, or client side. I agree with that. Four, opinionated choices that prevent bike-shedding, so a lot of the key decisions are done for you and you're not reinventing the wheel. So a little bit related to number two. And then number five. And yeah, for folks who are just joining, there's a link to the newsletter where we link to this blog post. It's the first one, the Vercel one. So if you click on that, it'll link to our newsletter. And that first one at the top should be the Vercel article on why you should choose a React framework. Number five is deploy anywhere, incrementally adopt. And then six, is it still just React? I feel like 75% of the arguments weren't actually arguments for why you should use a React framework.

00:09:39 - Ishan Anand

There are arguments for why you should use a framework. It's like the competition here isn't, I'm going to vanilla JavaScript and I'm just writing my own thing. Even those guys are using something like HTMX, right? It's more like the competition is Svelte or Solid, which are themselves frameworks, or SolidStart or Astro, and only like 25%. And the thing about React server components, I felt, really, really targeted the growing hate. Like, it's not like the article... I disagree with like 75%. I agree you should use a framework. I don't think it really helped address what I look at as the subtext of the React discussion. Hey, maybe I'm wrong. Maybe that wasn't the subtext.

00:10:22 - Anthony Campolo

Well, I think for him the subtext is like, this is a blog post ultimately about Next.js. He's not super clear about it. Anyone who knows Lee knows that going into it, you know? Yes, but so I think he's making the case for why you should use Next.js instead of just React by itself. So yeah, I guess it's a question of... I don't think he's trying to convince people to go from vanilla JS to Next.js with this blog post necessarily. That's kind of a different argument to make, and it somewhat intersects with it, but not entirely.

00:10:58 - Ishan Anand

Oh well, okay. Do you think he's trying to make the case. So here's how to phrase the subtext in one sentence. He's trying to make the case for people who actually haven't left yet Next, haven't left next yet and are looking over the bow at, you know, Astro and these other things and saying no, no, no, stay with next. Do you think that's the subtext or no?

00:11:21 - Anthony Campolo

Possibly. I think that would make more sense to try and keep someone from going from Next to Astro than Next to [unclear], because someone who's using Next has already basically said, hey, I want to use an opinionated framework. So maybe it's like, why use a React opinionated framework versus another one?

00:11:41 - Ishan Anand

Okay, so if we're agreed on that, what is the likely competition to that? It's not vanilla JS. It's SolidStart or it's SvelteKit, which is another Vercel... well, not actually a Vercel product. It's Rich, who now works for them. And it's Astro or one of these other frameworks. And I don't feel like it addressed that competition, and maybe I'm wrong. Again, I don't want to rag on the article. The article is actually accurate for the most part, and I think 75%, like I said, is true. Those are all reasons you should use a framework, not even specifically a React framework. Most of it is just: you should use a framework. So that was my takeaway.

00:12:24 - Anthony Campolo

Yeah, that was exactly what I said in the newsletter. I said he emphasizes next. But I think many of the points in this article extend to other projects like Redwood Create, T3 App and Remix, because it's really about the framework part itself. So I guess, you know, why should you use a React framework? Isn't necessarily saying why should you use a React framework instead of this other thing. It's just like here are good reasons to use it. So a rhetorical thing.

00:12:52 - Ishan Anand

You're right, you did call that in the newsletter. So kudos and props on that. I'm going to go further than what you said though. I think many of the points in the article extend to other frameworks. So aside from keeping up with the evolution of React, which I would say keeping up with the evolution of the JavaScript ecosystem which is now post React in some ways so that first point but removing the need to connect tools, easier onboarding opinions like, you know, half of that at least is just a property of any framework. And so I felt like, like I said, 50 to 75% of this is really just why you should use a framework. And you know, most of the other frameworks have it now. They won't have the things that are most crucial for React is I think the things that you brought up in your blog post, in your tweet from last week and your blog post that just got published yesterday. Which is really, I think the best argument for why you should stay with React, which is they're tried and true and they've got the largest ecosystem. That to me was like addressing why you should pick React over other frameworks in a way like this is just.

00:13:59 - Ishan Anand

It felt to me more about frameworks.

00:14:01 - Anthony Campolo

Does that make sense? Yeah, no, you're absolutely right. And that's why it's like, I don't know if necessarily Lee even intended to have it come across as making that kind of case saying use this instead of this, you know, But I think that the, the question of React or something else versus Framework or not framework versus like vanilla JS or Framework. That's a multi dimensional space.

00:14:27 - Ishan Anand

Yeah, it totally is. It looks like we got Eric coming up. So Eric, did you have some thoughts on this or you want to put us on a different topic?

00:14:33 - Eric

I literally just joined, but I, but I heard the React is not dead salute and the. But like today I looked at the state of JavaScript thing. I don't know if you've mentioned that already, but it's, it's so true that you will not go wrong focusing on the incumbent technology. Like if you. There are so many jobs in Java and PHP and Ruby still out there. So just because tech Twitter is talking about some new thing doesn't mean that that's where you need to focus your attention. And if you are curious about new things and you want to explore what might be popular or might not be 10 years from now, then that's kind of interesting. I, I for one picked up React immediately as soon as it was released because it was, it just clicked with me and then in a, in a way that made sense and my career has benefited from it. But, but it's. There are so many jobs for the old incumbent technology. So I guess that's my.

00:16:07 - Ishan Anand

Yeah, that's a. You know, that might be an interesting tangent. You mentioned the. It touches on a lot of things that. And just for context, and we're talking about. If you click at the top of the space, there's a link to this week's newsletter that Anthony wrote. There's an article from Vercel on why you should pick a React framework. And that was what we were debating when you first entered. Okay, but good to see you again. You know, usual JavaScript jam, regular. But you mentioned the Stack Overflow developer survey, which is something that we linked to in A previous newsletter we never got a chance to talk about in the space. And you said you went through it when it came out. I think I'm looking through my notes. Yeah, it was 28 days ago.

00:16:45 - Anthony Campolo

I think you mean state of JS that just came out yesterday.

00:16:48 - Ishan Anand

Oh, the state of JS.

00:16:49 - Eric

Yes.

00:16:50 - Ishan Anand

I have not seen that yet. Okay.

00:16:52 - Anthony Campolo

My hot take was Rest in peace, Eleventy.

00:16:55 - Ishan Anand

Oh, really? Well, let's. Let's talk about that. Let's go through it live. What were yours and Eric's take? I'm really curious.

00:17:05 - Anthony Campolo

Yeah, I mean, I think Qwik and Solid did pretty good. So that was cool. That kind of reinforced the tweet thread I wrote. But I think that it still shows that, for the most part, you got, you know, the stuff most...

00:17:20 - Ishan Anand

Wait, I'm gonna... I'm sorry to interrupt you. I go to the State of JS site. So I knew the survey was being taken. We linked to that one as well. But I don't see... yeah,

00:17:28 - Scott Steinlage

I know it's not there.

00:17:29 - Ishan Anand

It says coming.

00:17:31 - Scott Steinlage

I know, but I found it through Google, so it's 2022stateofjs.com okay, just go there and you will see it. I'm about to reply right now.

00:17:42 - Anthony Campolo

I'm going to reply.

00:17:43 - Eric

That's super tough.

00:17:44 - Ishan Anand

I see it now. Yeah, no, let's reply. So everyone.

00:17:47 - Jason

I got it.

00:17:48 - Scott Steinlage

Boom.

00:17:48 - Ishan Anand

Somebody needs to update.

00:17:49 - Scott Steinlage

I got it in there. Sweet. Okay, now I will post it.

00:17:53 - Ishan Anand

Okay. So Anthony. Yeah, keep going.

00:17:57 - Anthony Campolo

Yeah, but sorry. So you have, you know, your Next and whatever, and React doing well. And some things like Solid and Qwik coming in that are doing pretty well, but are still high interest and high satisfaction, but maybe not necessarily high usage. So that's what I find interesting with these things. You can see what is maybe not being used as much, but people really like. And then you see things that are getting less usage and less interest and maybe being taken over by other competitors. So you see things like Astro and Docusaurus and even Gatsby gaining a little bit back over 11ty. So that was down in many ways. And I had felt that sentiment trending myself just from seeing people in my network, where everyone was talking about Eleventy last year. It was huge.

00:18:54 - Ishan Anand

It was.

00:18:54 - Anthony Campolo

Yeah, it's just. It's gone now, you know, because Astro does so much for you and Eleventy really, really doesn't want to be involved with any modern component framework. And they left Twitter. Yeah, I think that is kind of expected.

00:19:14 - Ishan Anand

So, wait. What do you think drove that? So your answer, then, is really that Astro is stealing market share, so to speak, or mindshare, mostly from Eleventy. That's where most of those people and that attention went. And I know Eleventy is doing some web components. Oh, yes. Okay. Keep going.

00:19:37 - Anthony Campolo

Yeah. So I was saying, you have Enhance, you have Docusaurus, you have Lit, you have more web component frameworks coming out. So it's harder for Eleventy to differentiate itself now that there's a lot of great static site generators that can give you modern component frameworks, and there's also other static site generators that give you actual web component stuff. And Eleventy is still in this old paradigm where it's really best for Nunjucks and Liquid, and no one really wants to do that anymore.

00:20:05 - Ishan Anand

Interesting. Do you think? I know Eleventy recently did something with web components, but I didn't pay detailed attention. Are you familiar with that? Do you think that was a response?

00:20:18 - Anthony Campolo

Oh, absolutely, yeah. No, because it was clear that it was going this way for a while. Everyone wants components, and so whether you need to get those with a framework or with web components, we're going to get there one way or the other. And by the time they added their web component stuff, you already had some other good web component frameworks around already. So they kind of, I think, just didn't get there fast enough. And so people kind of moved on to other things.

00:20:46 - Eric

So just out of curiosity, what are the other good web component frameworks?

00:20:50 - Anthony Campolo

Because, I mean, I don't really use these things, but I know people talk about them a lot. Like Lit, and Enhance is the newer one. I think those are probably the main things that you'll hear people talking about when they're talking about web component stuff.

00:21:03 - Ishan Anand

Okay, well, Astro would be the biggest one, I think that would. I mean, I think we were just saying. Would you extrapolate? That's probably the biggest one that probably gets the most of attention from people.

00:21:14 - Anthony Campolo

I wouldn't consider that. When I say web components, I mean true.

00:21:19 - Ishan Anand

Okay, yeah, I get what you're saying. Because Astro just delegates, so to speak, to either React or Vue for the front end.

00:21:25 - Scott Steinlage

Yeah, we did.

00:21:26 - Anthony Campolo

And this is really important because Slinkity was going the Astro direction with Eleventy. Slinkity was saying, let's take Eleventy. Let's basically turn into an Astro by letting you use React and things like that. And Zach didn't want to do that.

00:21:41 - Ishan Anand

That's interesting, because I know the creator of Slinkity now works for Astro.

00:21:46 - Anthony Campolo

He does? How weird.

00:21:48 - Ishan Anand

Okay, so I'm picking up some subtext here. Very interesting. I'm curious, Anthony, if you have any other thoughts, but, Eric, you also said you ran through. What were your immediate takeaways, or anybody else, by the way, in the audience. Feel free to raise your hand. If you're just joining us. We like to be audience driven as much as possible. And we're taking a tangent on the state of JS survey results which just came out in the last 24 hours. Eric, what were you going to say?

00:22:17 - Eric

No, just that. I don't know. There's a lot of interest in Svelte,

00:22:28 - Eric

The two new kids on the block are obviously Solid and Qwik, and they are gaining momentum. The people that have used them like them and want more of that, which is great. But if you look at the actual used frameworks, there's React, which is the clear king of the kingdom, and then there's Angular, and then there's Vue. And Vue has gone up and down over the past few years, but there are so many people still using Angular and so many people using Vue. And React is the incumbent, and it's going to take a long time to overtake those guys. But like I said before, if you want job security, then go with one of the incumbents. But on your side projects, I would recommend using one of the other ones that is up and coming, because it turns out in five years, when people ask if you have 20 years of Qwik experience, then you can be like, well, actually, let me tell you.

00:24:00 - Ishan Anand

In dog years.

00:24:01 - Eric

Yes, exactly. So, anyway, that was my takeaway. The rest was not surprising to me in any way, really.

00:24:14 - Scott Steinlage

I also added the Twitter Space link to the talk that we had with Enhance as well. So if you ever want to go back and listen to that, it's up here in the chat.

00:24:29 - Ishan Anand

That's a good call out. I noticed Jen came up to the stage. Jen, do you have something on this or a different topic you wanted to add?

00:24:38 - Anthony Campolo

Hello.

00:24:39 - Jen

Hello, beautiful humans. Just curious if you could add into the conversation of Nuxt, especially with Nuxt 3, because, like, talking about all the other ones during Nuxt Nation in November, it was like there was some talk between that and Qwik. And then with Vue Nation coming up at the end of the month, just hearing more about those in the conversation, even if they're in passing, that's a good call-out.

00:25:13 - Ishan Anand

In fact, Anthony had something in the newsletter this week from Evan Yu. So, not technically Nuxt, but in the Vue ecosystem. Reflecting on what happened in the Vue ecosystem in 2022, as well as what to look ahead to in 2023.

00:25:32 - Anthony Campolo

Yeah, I think you can make a strong case for using Nuxt in general and the Vue ecosystem because they're probably not ever going to be bigger than React, but they're big enough. They're at scale for what they are, you know? So Nuxt is going to be every bit as capable as Next, you know, and if you happen to like the Vue syntax more and you want to use that, you're still going to be able to find every single component library that you could want, or a nice component library. You can find lots of tutorials. You can find all sorts of stuff. So I have a hard time focusing on Vue just because it's kind of like it's going to keep growing, it's going to keep getting better, but it's probably not going to overtake React, and it's not really enough of a paradigm shift for me to want to move out of the React ecosystem. But there's lots of people who just like Vue, and I think that's totally fine.

00:26:25 - Ishan Anand

I'll react to that. Pun intended. I have the same perspective. It's harder for me to keep track of the Vue ecosystem, although, you know, you might say there's an overlap there with Vite, which has infiltrated both Vue and React ecosystems.

00:26:45 - Anthony Campolo

That's the Vue Trojan horse. Yeah, that's the Trojan horse in the entire ecosystem.

00:26:50 - Ishan Anand

Yeah. I have a huge amount of respect for the Vue ecosystem. And what jumped out at me in that article from Evan, in his retrospective and prediction for next year, was... I'm very focused on performance, so he starts talking about Vapor mode, which is an alternative to the virtual DOM, clearly influenced by what's happening in the ecosystem with things like Solid. And it definitely seems like, I guess this is back to your larger point, which is like, for everything you want, there is a Vue equivalent. So for React, you'd have to go maybe to Preact or React server components. Those are still pretty bleeding-edge, but he's like, we're going to have our own version of a non-VDOM rendering solution. And it feels like, as a community-organized project that doesn't have the backing of one of the FAANGs like React does, it's pretty impressive what they've been able to accomplish, and it's definitely worth looking at. It feels like it's got this capability coverage in a lot of key areas. Jen, did you have any thoughts you want to add on Nuxt?

00:28:08 - Jen

Not yet. One day. I'll get back to you.

00:28:11 - Alia

I'll get back to you.

00:28:13 - Ishan Anand

Are you? Yeah.

00:28:14 - Jen

Oh, go ahead.

00:28:17 - Ishan Anand

I'm gonna assume you're more of a Nuxt convert, correct?

00:28:21 - Anthony Campolo

It seems like she had the opportunity to MC a Nuxt event, so she's used more React stuff than Vue stuff, actually.

00:28:30 - Jen

Yeah, I definitely will say yeah. It's definitely been more of a React and like some exposure to Qwik and most. The reason I am focusing a lot on Nuxt and Vue is emceeing Next Nation and then also emceeing Vue Nation at the end of the month. So it's been fun learning about it by asking questions in comparison to what I know about. But when I've noticed, and this isn't just here, but in a lot of JavaScript conversations, Nuxt and Vue aren't brought up the same way. All the other frameworks are.

00:29:15 - Ishan Anand

It's a really good point. The ecosystem somehow gets dominated in conversation by React and then the super bleeding-edge things that you were jumping to. Maybe we'll have to look at the State of JS. They have an order of magnitude, maybe, lower actual usage than Nuxt, but are just really interesting because they're paradigm-shifting, and we get all caught up in that when here's this other thing that should definitely be considered and is typically easier for people to get ramped up on than React. And there's a lot of DX advantages. It's definitely a fair point.

00:29:52 - Scott Steinlage

Awesome. With that being said, real quick, I just want to just jump in for a second and thank everybody so much for joining us today on JavaScript Jam Live. Eric, let me let you back up. There we go. I appreciate every single one of you for being here. And by the way, if you've already gotten some value from folks speaking up here on stage, please be sure to click on their face there and follow them. And hey, you know what, if you, if you really feel like you've gotten some value, we wouldn't mind a little share as well on JavaScript. Thank you all so much. We do this every Wednesday, 12pm Pacific Standard Time. We're not done yet. We still have about an hour to go here. We were really excited to do Today with our open mic, we've had a lot of great conversation already talking about React. It's not dead. Yep. Okay. And a little bit of talk about State of JS for 2022. Looking back on that recap. So really fun stuff going on, lots of good conversation and more to come on that. If you are a beginner or if you're an advanced developer, it doesn't matter.

00:30:47 - Scott Steinlage

We love to hear from everybody. So be sure to come on up on stage and take part in the conversation. You know, request to come up. We'll be more than happy to have you up here. State your opinion, ask a question, a fact, whatever it might be, we'd love to hear from you. It just makes this that much more fun. And now back to the show. Thank you so much. Oh, by the way, you know what, real quick, one last thing. If you saw the beautiful newsletter that Anthony just wrote, which by the way, it is linked at the top and you just scroll over a couple shots there, you'll see that post and check it out. If you think it's good and you getting value from that sucker. Hey, you know What? Go to JavaScriptjam.com if you're not already subscribed, subscribe. All right, Love y'.

00:31:27 - Anthony Campolo

All.

00:31:29 - Ishan Anand

So thank you, Scott. And I'm looking at the State of JS survey live as we've been talking. There's one chart that I'm looking at that I think is really relevant to the classic framework debate, and then there's a chart right below it that I just don't know if I'm understanding correctly. So if you go to the library section, if you want to follow along in the menu, and then go to front-end frameworks, there's a section called positive-negative split. It splits, you know, very graphically. The amount of red is people who are not interested or have used it and don't want to use it. And then the green shades are want to learn and would use again. And you can clearly see in this chart that React, despite the level of React hate, it's only at like roughly 20%, more than 60% higher than any other framework, have used it and would use it again or want to learn. It's got clearly the highest level of continued interest. It is the incumbent. And what's really interesting is when I look at Qwik and Solid, the level of people who are not interested or would not use it again...

00:32:44 - Ishan Anand

Well, I guess the level of people not interested is equal to the amount of React haters. The level of people who would not use it again is a lot smaller. I think it's a really interesting way to visualize the nuances of people who are not interested versus people who had a negative reaction to something. But we've had a couple speakers come up, so let me pause. I think Alia was first, correct? Did you have something you wanted to contribute?

00:33:15 - Alia

Yeah, I want to ask a question. I initially was a Vue developer. I loved Vue. I still love Vue. But then I had to switch to React because the company I was working with uses React as its stack, and I kind of lost track of what's going on. And recently I was hearing talk about the Vue 3 Composition API, and I researched it, but I don't really get it. So I want to know if there's someone that can kind of elaborate on what it is to me.

00:33:59 - Ishan Anand

Is there someone who is qualified? If you're in the audience, feel free to raise your hand and I'll bring you up.

00:34:11 - Anthony Campolo

It cut a little bit for me.

00:34:12 - Scott Steinlage

Could you repeat the question

00:34:15 - Ishan Anand

I think she was asking? Yeah. It did seem hard to hear you, but I think she was saying she started out as a Vue developer a while back, then she went to React because she needed it for work. But she's been hearing things about the Vue Composition API, but she doesn't understand it.

00:34:31 - Anthony Campolo

Yes.

00:34:33 - Ishan Anand

In fact, I think it's very similar to React Hooks, but maybe you can jump in more context.

00:34:40 - Anthony Campolo

It can be very confusing. The most important thing is that before the Vue Composition API, and before React Hooks, you're using this.something = something-style patterns. Whereas with Hooks and with the Vue Composition API, you start using functions, and you're passing around these functions that have these pieces of state, and you map over arrays and do that kind of thing. So that's kind of the most similar way that Vue has now become like React Hooks, by using the Composition API. If you kind of just look at the code before and after, you get a sense of what's changing, but they're basically doing the same thing.

00:35:29 - Ishan Anand

Ali, did that help?

00:35:33 - Alia

I'm sorry, it was very hard to hear. I think my network is bad. Everything was breaking up and I didn't really hear.

00:35:41 - Scott Steinlage

Maybe try listening to the recording once it's done. It might come in better for you.

00:35:46 - Anthony Campolo

That's what I was going to say. Yeah. And I'll post a link also related to this that will help you out so just check the Twitter thread from the space.

00:36:01 - Alia

Thank you so much. Thank you. Thanks for your help.

00:36:04 - Ishan Anand

Yeah, thanks for the question. Next up, I think we have. I don't know if Jason was next, is that correct? Or Daniel. Both regulars.

00:36:20 - Jason

I'm not sure who came on first,

00:36:24 - Jason

The chart that you were looking at right before that other question, I guess it's the.

00:36:29 - Anthony Campolo

What, the.

00:36:29 - Jason

Net Promoter Score equivalent chart.

00:36:32 - Ishan Anand

Yeah, in a sense. Yeah, exactly. It's a good way to describe it. Yeah, I guess. Yeah.

00:36:38 - Jason

We were talking last week a lot about, like, the longevity of employment and React, and it looks like this is probably just another data point, given the entrenched nature of React and how it'll probably be around for many, many years to come,

00:37:00 - Ishan Anand

even if it's not the

00:37:00 - Jason

cool, hot thing to play with.

00:37:02 - Ishan Anand

Yeah. So I guess if you look at that chart and you just look at it in terms of the dark red and the dark green, I wasn't surprised. But then if you look at it as the larger shades of red and green, the key insight is that when you look at the people who are not interested, and say let's take Solid or the Qwik line, and you add to it the number of people who have used it and won't use it again, and then do the same thing with React, they're actually about the same. That I wouldn't have predicted, if that makes sense. The amount of disinterest in the other frameworks is the thing that surprised me, and I don't know what's driving that. I'm curious if you have thoughts or theories.

00:37:51 - Jason

Yeah, that is also interesting. I was trying to think about some historical comparisons where there were so many. Usually, like the mature, hot technology, everybody uses it because that's where the install base is, that's where the money is. But everybody hates it.

00:38:11 - Scott Steinlage

Right.

00:38:12 - Jason

And maybe we're seeing some of that with, like, the angular kind of chart there.

00:38:16 - Anthony Campolo

Right.

00:38:17 - Jason

Whereas, you know, everybody hated working on Microsoft tech in the early 2000s, but there were so many jobs there that you kind of just had to do it. Maybe. But it seems like React is, for the moment, bucking that trend, where it's like everybody that's using it kind of mostly likes it. And sure, there's probably some things that you don't like about it, but it's good enough and it's not so painful to use that people are using it only because they're getting paid to use it. That might be the differentiator. Yeah, I'd be interested to know the Ember numbers, given that that's probably one of the oldest frameworks on this chart. I'd be interested in what the... I guess it's just mostly not interested.

00:39:03 - Ishan Anand

Yeah, it is only.

00:39:05 - Jason

Only 7% would not use it again, I'm guessing.

00:39:08 - Ishan Anand

It's like people are like, oh, that thing is super old. It's not the new hotness. It's like framework ageism. If I had to guess what's driving that... I think the part of this that really surprises me is the level of lack of interest in these other frameworks like Preact, Qwik, Solid, even Preact, which bills itself as a faster React with a mostly similar API. It's like, imagine I'm giving you the same thing, very close to the DX you're used to, but people are still not interested. And yet it's even higher than the lack of interest in Solid, which I guess reflects a certain level of awareness. And, you know, I'm very performance-bent in my job and my focus as a developer, and in the use cases that our customers and our platform are focused on. And so I guess the lesson for me is that there are people using these technologies for things like B2E intranet dashboards, where maybe the performance characteristics aren't as important. You know, a lot of our customers are folks where you hit that website and you want an e-commerce site to load as quickly as possible.

00:40:39 - Ishan Anand

And anytime there's, hey, we're coming out with a new framework that's going to solve this hydration problem in a different way, whether it's through islands architecture or whether it's what Qwik is doing with resumability, I'm all ears. So for me, that's why it was eye-opening, because I have such a narrow view. And I think that's what struck me, if that makes sense. I'm using it in some sense as a proxy for how many people care about performance, because that's what I feel like a lot of this is. It's either changes in developer experience or changes in performance. And people are like, the developer experience of React is good enough.

00:41:25 - Jason

Well, you know, maybe a bit of a tangent from the survey, but the market is still very unsettled for that next-generation, edge-optimized JavaScript development environment.

00:41:39 - Ishan Anand

That's true.

00:41:40 - Jason

All these newer runtimes, and then the newer frameworks that are built to take advantage of those runtimes, which React isn't, if we're being honest... that's the thing that'll play out over the next few years. Whereas if you're building a big old enterprise CRUD app, React's the technology to go do it.

00:42:01 - Ishan Anand

Yeah. You know what's interesting is I went and looked a few sections later in the survey. They do have the respondents broken down by sector. If you go to usage, let's see if I can do it by percentage... 33% were programming and technology technical tools. But number two was e-commerce and retail, 21%, and that's definitely an area where performance matters. Number six is news, media, and blogging. It's another 8%. So you're already at 30% of the survey where I'd definitely expect people to care about performance. It's interesting that using the other frameworks as a proxy for interest in performance didn't seem to resonate. I would have expected higher interest.

00:42:54 - Scott Steinlage

Real quick.

00:42:55 - Ishan Anand

Good.

00:42:56 - Scott Steinlage

Yep. Hussein actually asked a couple questions. He said, why is React not going towards SolidJS or something like that? I think, I'm not sure 100% sure what that question was entirely, but I'm pretty sure that's what he meant. And then is there any chance Angular adds support to SFC? Those are the two questions.

00:43:20 - Anthony Campolo

Single file components.

00:43:23 - Ishan Anand

I don't know enough about Angular to know if they're going to go to single-file components. Maybe Anthony has an opinion. I have an opinion on why React is not going the SolidJS way, and Anthony, I'll let you correct me. Here's my impression: React's solution to the same problem of over-rendering and the issues with the virtual DOM is React server components. It is to, let's just say, render less, and we're still going to keep the virtual DOM, and we're just going to take out the things that don't really need to be part of the VDOM, and that's how we're going to optimize it. But we think the VDOM is the right way to organize all this, partially, I'm guessing, for backwards compatibility, and partially because of how the framework is structured. They're trying to solve the problem SolidJS is trying to solve, but in a different way. If they tried to do it the way SolidJS did, it would be, I think, more radical. And I think Vapor, in some ways, if you squint really closely at React server components, says, look, we're going to take part of the...

00:44:28 - Ishan Anand

...DOM, and I think they said any part of your Vue 3 VDOM can now be put in Vapor mode, and it will not have essentially the same performance penalties. It'll be precompiled. So they are trying to react to it, but they can't take the same architectural approach that Solid does. I don't know if you have anything you want to add to that or correct on that, Anthony.

00:44:49 - Anthony Campolo

I would say yeah, I think that was all good. The way I would say is that like it doesn't really make sense to for React to like go the Solid way because then they would just be Solid like is because they're both using JSX. So the, they're both going to approach essentially a very similar API space and they're going to work in very similar ways. There's going to have different internal mechanisms to achieve that. They're going to have different kind of like trade offs. But I don't think React adopting Solid like really makes any sense. So much as it's nice that someone built something different that is Solid and if you like that then use Solid.

00:45:34 - Ishan Anand

Do you have any thoughts on the ang. Oh, go ahead.

00:45:37 - Daniel

I also think that it's why well there Solid and React have really two functional. Like I know that they can do the same thing but when you think about the reason for using Solid versus the reason for using React like React does the job fine and Solid has already like made a display of being a great for building widgets, great for micro front end. It's great for including inside of a React application. Like there's so many good use cases to use Solid for that they don't need to attack one another because they are individualized. Like it's not, it's not like you, you can't do something unique with Solid better than React and React with Solid. So I feel like each has their own use case and a lot of times we're just talking about them in the perspective of like, hey, let's build front end for a general application. Whereas Like Solid is significantly more performant and better for any type of embed or scripts that are included on any generic site because there's less renders, there's Less issues.

00:46:39 - Ishan Anand

If I was to summarize, it's like if Swix had this saying for svelte, he said svelte is for site, React is for apps. It's a different use case. You use one for. For one case. Exactly 100%. Does anyone have any thoughts on the Angular question? That's one I couldn't answer.

00:47:03 - Daniel

I haven't looked in Angular in so long I wouldn't even know.

00:47:07 - Anthony Campolo

I don't see any reason why you can't write a single file component in Angular right now. Because I'm sure Angular would tell you not to do that and we'd yell at you. But you could hack in a way to figure out how to do it. I'm sure. Sure it's just like it's still slinging HTML and CSS like any of these other frameworks.

00:47:25 - Scott Steinlage

Yeah, I think maybe he meant just like support as in are they going to not yell at us for doing this? Right.

00:47:31 - Anthony Campolo

You'd have to ask Brandon Roberts that.

00:47:33 - Daniel

Yeah, I highly doubt it. When you think about like the audience that Angular is appealing to, it's the MVC audience and they're not traditionally working out of single file versus multi file. I don't feel like that's their target customer as a whole.

00:47:53 - Scott Steinlage

Yeah, sounds like Hussein might have a use case. That one. Awesome.

00:47:58 - Daniel

If you're moving from Spring or .NET and you're picking up a front-end framework, Angular is going to be the one that looks the most similar to what you've worked with in the past.

00:48:07 - Ishan Anand

Yeah. And those aren't single file frameworks, if I recall correctly. But yeah, they're kind of the opposite.

00:48:14 - Daniel

I mean everything has individualized model view controller. Like, I mean it's not writing into one.

00:48:19 - Ishan Anand

Yeah, the more files the better. Almost the. So I can understand why somebody with a more modern experience would come to it and be like, can I get something that's a bridge? So I totally understand the need.

00:48:32 - Daniel

Oh yeah. And it's funny because like, as someone who's, who's come from that world to this world, I remember when I first, you know, touched into react, I was like, this is a total shit show. Like, you know, like really thinking about it, like it just was a cluster, like getting into it and it was so different than what I was used to. But you know, you learn to love it. It just takes a lot of time. But I, it took a long time for me to actually accept it from like working with a team or, you know, outside of a side project.

00:49:02 - Ishan Anand

Yeah, it's a good point. So there was a chart which I did not understand. If you go back to where was it Libraries, front end frameworks. We were just talking about the positive negative split.

00:49:19 - Scott Steinlage

Yeah. Anybody who's just joining now, just real quick, we're talking about the 2022 State of JS, so it's linked at the top here. If you scroll through you'll see it, and you can join us in the conversation.

00:49:31 - Ishan Anand

Yeah. There was a thing that said other tools and it has Astro Remix, Next.js Fresh Nuxt, Next.js landing page SvelteKit, HTMX and jQuery. What I thought was odd was Next.js is sitting there and it's labeled as lower in usage than Astro and Remix. That must have been mislabeled. I've got to imagine that doesn't sound right. Maybe they put they meant to say something else there but I'm just. I'm surprised if that's the case that it's usage of Astro is higher than Next.js amongst respondents. So that was the one that confused me. And if anybody has an interpretation of

00:50:14 - Eric

that they must have framed the question in a weird way.

00:50:19 - Ishan Anand

Yeah.

00:50:20 - Eric

My only guess it seems odd.

00:50:23 - Ishan Anand

Like is there anybody who that that chart does not. That part of the chart does not look odd to them. You know, definitely speak up and give me the alternative viewpoint. And the other thing that I thought was interesting was the opinion section where you know, is JavaScript moving in the right direction? Most people felt yes and strongly agreed with that. People saying that building JavaScript apps is overly complex right now basically the. There's about 30. No, 49%. No, sorry, 39% my math was off off by one in the tens place is said that it's overly complex. So it's. It's definitely. We're seeing people are like yeah, this is feeling like it's too complex. A large number of people are saying the ecosystem is changing too fast. It's interesting that the number of people who felt that it's changing too fast slightly trended down in 2022 versus 2021 but it really picked up between 2018 to 2021 and that's when we started getting these post react frameworks it feels like and that might be contributing. And then I think what's also more interesting is the JavaScript pain points. So they asked pick the top three aspects of JavaScript you struggle with the most.

00:51:56 - Ishan Anand

And number one was code architecture, number two was managing dependencies, number three was state management, and then past that it's date management, which we're hopefully going to get the new Temporal API for soon. It's crazy that just using dates is so painful. Debugging, and then finding packages and writing modules. Somebody gonna jump in there? Yeah. Any thoughts? Okay.

00:52:26 - Eric

No, that debugging. Are you guys familiar with Replay? Replay.io? Basically you record doing something on your website and it records all of the lower level JavaScript stuff, such that if anyone on your team, or I guess a customer, but really on your team, can reproduce a bug, they can give you that recording of the replay and then you can. You as the developer trying to debug the problem, can go and like, put in console logs wherever you want and like, and it will show you all of like, it will do that. You don't have to. You don't have to, like, need a screen recording of click here, click there, click there. It will let you like step through the code as it was actually running on that person's computer anyway.

00:53:31 - Scott Steinlage

That's awesome for QA.

00:53:35 - Ishan Anand

Yeah, yeah, yeah.

00:53:36 - Eric

Full disclosure, I'm somewhat friends with the Replay team, but it's pretty amazing. They have Mark Erickson from Redux fame and Brian Vaughn from React DevTools. They have an amazing team. Anyway, you mentioned debugging and I hadn't found that page on the site, but I wanted to share that.

00:54:07 - Ishan Anand

So my first reaction was like, didn't Dan Abramov, you know, demo something like this? Yeah. And this is the whole reason for going with like Redux and the way it works.

00:54:18 - Eric

Yeah.

00:54:19 - Ishan Anand

Does your state management library have to play a part? Yeah. Can you just elaborate a little bit more on that?

00:54:25 - Eric

Yeah, it's like Dan's infamous, or famous, we'll give him the credit, demo of Redux where he showed, oh, you can travel back in time and redo these things. This is different because you can add print statements and ask, what is this variable at this time, and scroll back and forth in a way that the Redux stuff never was. They would show you what the UI looked like at any given time, but it wasn't this granular. This goes all the way down. You can run this for Node. There are people debugging the TypeScript compiler using this tool. So it's very, very, very low-level. Whereas Redux was just like, oh, we're recording the actions that were dispatched at a given time and then what the state looked like. Yeah, but this is down to the low-level JavaScript stuff.

00:55:47 - Ishan Anand

So does it need to instrument within the actual runtime, or can it work purely in the browser?

00:55:57 - Eric

So it is its own browser. They forked Mozilla Firefox at some point. The core of the team came from the Firefox DevTools team, and then they hired the React DevTools guy. So it's low-level in the browser in that way, but they also have hooks into Node, I think, in some way, but don't quote me on that.

00:56:33 - Ishan Anand

Got it. Okay, so now I understand how this is possible and how it might work. Okay, that makes sense. Very interesting. Shout out. I think I remember hearing about it, but I hadn't checked it out. Very cool.

00:56:44 - Eric

When it was described to me, I was like, oh, that's amazing. And then I looked for a nail to hit with that hammer, and it took me a while. Then at one point I had a bug that was confusing me and I jumped on a call with a couple of people on their team, and they walked me through it, because this was like last May and their UI was not so intuitive. I look forward to using it again, but I haven't recently. They walked me through debugging my problem with it, and we found the bug, which was like a stupid React Hook thing.

00:57:32 - Scott Steinlage

But anyway,

00:57:34 - Jason

No, they're pretty well funded from the looks of their investor page.

00:57:40 - Eric

Yeah, as far as like... I think 10 years from now we will look back at Replay as something that we can't live without. But if you can get someone on your QA team to reproduce a bug using their browser, I promise you it will make your life easier solving it, because then you can share it and replay it on different machines, and it doesn't matter whatever account that person was using.

00:58:17 - Ishan Anand

It.

00:58:18 - Eric

Like it mimics all of the API requests and stuff. It's. It's kind of amazing. But anyway, put that in the show notes or whatever.

00:58:28 - Scott Steinlage

Seems legit for sure.

00:58:30 - Jason

Yeah, their AngelList, their list of angels, is the who's who of the Internet these days, including Andreessen, you know, in their seed round. So yeah, they've got some fuel to go figure this problem out.

00:58:47 - Ishan Anand

Indeed.

00:58:48 - Eric

So I think it's going to be a. Going to be a big deal.

00:58:55 - Ishan Anand

I did have one question.

00:58:56 - Jason

Not about the replay thing, but maybe you cover this. I joined 20 minutes late. The shift to TypeScript appears to be nearly complete. If you look at the. What is it? The usage chart.

00:59:12 - Scott Steinlage

You can look forward to. To a podcast coming up on that. We just recorded an intro to type.

00:59:23 - Ishan Anand

Yeah, yeah, that's a great point.

00:59:24 - Eric

Only.

00:59:25 - Jason

Only 8%... was that only 8% of respondents are still 100% in JavaScript, and everyone else is some percentage of TypeScript.

00:59:36 - Ishan Anand

That's.

00:59:37 - Scott Steinlage

That's.

00:59:37 - Jason

That's pretty telling for a state of JS.

00:59:40 - Anthony Campolo

Yeah.

00:59:41 - Eric

Yeah.

00:59:42 - Ishan Anand

In some sense, maybe it's like the least newsworthy, but I think you put it right there. It's like the nail in the coffin. It's pretty clearly cemented. So yeah. And sorry, I had something in the background there. As Scott mentioned, we just recorded a crash course on TypeScript with Josh Goldberg that we'll be releasing soon. So look for that, and then we'll actually release the video of his crash course. And then we're going to have him as a guest, correct me if I'm wrong, February 8th. He'll be, I think, scheduled to be the guest on JavaScript Jam Live to join us for answering questions all about TypeScript, as well as participate in the normal flow of things.

01:00:36 - Scott Steinlage

We did have, real quick, Dev Agrawal up here and then he went back down. I don't know if he still had something to say, but I didn't want to make him feel like we're skipping over him or anything like that. But I'll invite him back up to speak if he wants to ask a question, state a fact, or an opinion, or whatever it might be. I know he's all around Twitter Spaces. I've seen him many, many times. And I think Anthony knows him.

01:01:03 - Anthony Campolo

Oh yeah.

01:01:06 - Eric

I would like to nominate that one of our hosts go to the awards section of the State of JS.

01:01:14 - Ishan Anand

Oh, I was gonna get to that

01:01:15 - Eric

and read them out one by one as you click on them.

01:01:18 - Ishan Anand

Okay, I wasn't gonna do that. Maybe we should get some music.

01:01:21 - Eric

But this is content. Come on.

01:01:23 - Ishan Anand

Dev, do you have. Do you have anything you want to add?

01:01:29 - Scott Steinlage

Yeah, I sent the invite to speak.

01:01:34 - Anthony Campolo

He's still in the listeners now. So we can go on for now, and if he wants to talk...

01:01:38 - Ishan Anand

Oh, he shows up as a speaker for me. So I'm doing awards show music in YouTube. Let's see if I can find something. Okay, here's... let's see what comes up here. Oh, I turned off my sound for searching for... no, that's an ad. Okay, well, I can probably, after this thing loads, go through it. So the first award for most adopted feature goes to top-level await. Anthony, you want to do the next one?

01:02:16 - Anthony Campolo

Sorry, I don't have it in front of me right now.

01:02:18 - Ishan Anand

Maybe you're not on the page. I'll let you catch up, so you're not just listening to me. The award for most adopted technology, the technology with the largest year-over-year would-use-again progression is... hint, we mentioned it earlier in the episode. Okay, it is Vite. Awarded to the technology with the highest percentage of returning users, we have a multiple-award winner, that is Vite. The level of highest interest, so the technology developers are most interested in learning this once they are aware of it, which is interesting. They've normalized by level of awareness. Yet again, the winner is Vite. So, you know, three for Vite already. Hat tip to Evan there. The item with the most write-ins as an answer, again as a framework we mentioned, no surprise, is Astro. The runner-ups are actually the ones that surprised me: Fast Node Manager and Azure Functions. The Azure Functions one is very interesting. Either they neglected to put it in there, but it's odd to see a hyperscaler's offering as a write-in candidate.

01:03:56 - Ishan Anand

Most commented feature award, to the feature which received the most comments, is... oh, I didn't even click this up. Why did that one not show up? Let me go back to it. It is private fields. And then the most commented library is React, with the most comments.

01:04:21 - Scott Steinlage

That was the weirdest experience ever.

01:04:24 - Ishan Anand

Yeah, I.

01:04:25 - Scott Steinlage

No, I saw myself in here and I was in my account, and I was a co-host still, but I had to request to speak, and I couldn't because my account was already still co-host. It was the weirdest thing ever. Anyway, I'm back.

01:04:42 - Ishan Anand

Oh that's. Yeah,

01:04:45 - Anthony Campolo

he found the halting problem embedded within Twitter.

01:04:47 - Scott Steinlage

It was so bad. It was the weirdest thing. I felt like I was in the matrix or something. Anyway,

01:04:56 - Ishan Anand

That's a new product. They're innovating really fast. The halting problem is now embedded. I finally got the awards music. Let's see if this comes up. There we go. That was the awards. Okay, there we go. But I encourage folks to check out the State of JS survey. I always find it interesting to go through. And I remember going through the Stack Overflow developer survey was also really fascinating. Well, let's see. Dev, I think we finally got you back on the speaker stage. Is there something you want?

01:05:33 - Anthony Campolo

He actually said that he requested to speak by accident, but I told him if he wants to just add anything at all, it's all good. It still says listener to me.

01:05:42 - Ishan Anand

Oh, no, I see him as speaker one. That's weird. The other form of the halting problem exists within Twitter spaces.

01:05:49 - Anthony Campolo

Yeah, I think we're good, though. Unless...

01:05:52 - Scott Steinlage

Okay.

01:05:53 - Anthony Campolo

Yeah.

01:05:54 - Ishan Anand

Okay. Well, then let's go back all the way to... if you look at the tweets shared in this space, the very first one is the newsletter. We can leave the developer survey. And again, if you're just joining us, that newsletter was written by Anthony, and you should go to javascriptjam.com and subscribe to the newsletter. It is our best newsletter yet. And you'll see in the newsletter there's a few other things that jumped out at me. The one that I thought was most interesting, and made me smile, was the Component Party, which I thought was very, very cool. Do you want to describe that for folks, Anthony? I thought that was really useful and cool.

01:06:40 - Anthony Campolo

Yeah, the component party, it basically takes every common thing that we do in these component frameworks, so like setting the state or, you know, rendering or on mount and things like that. And then it shows you how to do it in like every single one. So there's like 11 of them or something. And I don't think every example has every single framework, or maybe it does, but they basically give you a way to kind of directly translate from one framework to another, like an idea in terms like where the building blocks and the composables of what this is. And that is common across all of them. And it's just great to explicitly see something that you figure out if you use enough of these things over the course of years. That's why it's very confusing for beginners to pick up any of them and then switch from one to the other. But then once you've done like five of them, they're like, okay, they're all doing the same thing. But this actually makes that explicit?

01:07:38 - Ishan Anand

Yeah. So here's what's interesting to me about it. It took kind of the same task that maybe folks are familiar with, or not familiar with. There's this thing called TodoMVC, which is the same app rewritten in multiple frameworks. I don't know how many frameworks are up there. They're probably, I don't know, 19 or something at this point. Who knows, it could be 100, the way JavaScript frameworks go. And it's the same app rewritten in all those frameworks. But to actually go and understand how you do things in a framework, it's actually about the tasks and not the whole app. It's like, okay, what is it like to declare state in each of these frameworks? What is it like to put a click handler on each of these? What is it like to handle form input in each of those frameworks? And you see the jobs to be done, so to speak. It kind of took TodoMVC and, instead of going app by app, went task by task and asked: what does the DX look like?

01:08:43 - Ishan Anand

I thought it was a really innovative way to compare frameworks, back to this common sort of question we often talk about, which is like, which framework is better and how do you compare them? I thought it was a really interesting way to look at it that I hadn't seen anybody put into such a good UX before. So I highly recommend clicking on the newsletter and clicking through that link to try it. And the interesting comparison for me was like: put up Svelte, React, Solid, and Qwik. That's what I did. And it's really interesting when you look at it that way. Svelte just comes out as such a more succinct way to accomplish so many of the common tasks, in a way that the other ones just seem a lot more verbose. Svelte totally shines in this form of comparison. And then what's really interesting is how much the other ones really try to do their best to give you a React-like API. So if you're used to JSX and React, the other ones are more verbose, but they try to look as much as they can like React, even though under the hood, like in the case of Solid or Qwik, they're doing something very, very different.

01:10:03 - Ishan Anand

So there's a way in which it can be misleading, looking at things this way, because you miss certain subtleties. But you at least get a sense for what the shape of things looks like and how familiar it could be to you. So that's what I really liked about it. I highly recommend checking it out. I thought it was a really innovative way to compare frameworks.

01:10:24 - Eric

Have you guys heard of Mitosis?

01:10:27 - Ishan Anand

Yes. Yeah, go ahead.

01:10:30 - Eric

By the Builder.io people that are making Qwik.

01:10:34 - Anthony Campolo

Yep.

01:10:35 - Eric

Builder.io, sorry. They have this common language that you can write code in, React-y looking code, and then they will transpile it into all the frameworks. They're trying to solve a problem where they want to ship a component to all of their customers, and their customers are using all different types of frameworks, and they want to copy the same code. But it's a really interesting study in what it means to save state in your component or context, and all of those things I find really interesting.

01:11:30 - Eric

It's a really clever and intriguing project.

01:11:36 - Ishan Anand

So can you elaborate? Are you saying that simply comes from looking at the guts of Mitosis, or is it from actually authoring something so it can be transpiled by Mitosis, and then that experience, or looking at all the different forms of the code you wrote cross-compiled to those frameworks? What is the activity using it that led to the insight, so to speak?

01:12:00 - Eric

Yeah, okay, so I got a demo from the guy that is building it, and if you go to Mitosis Builder.io, you can write something that looks sort of like React, but then it's like this playground. They have this pretty simple component when you just go there with no parameters, and it shows how it would output that in Vue and React and Angular and Svelte and React Native and [unclear] and Swift and Solid and Stencil and Marko, which I don't even know what that is.

01:12:49 - Ishan Anand

Oh wow. I'm on it now. Now I get it. Keep going.

01:12:53 - Eric

Yeah, yeah, it's just like if you know one or two of these frameworks, it's a way to get a glimpse of what it, of what your same code looks like in the other frameworks and it's pretty freaking mind blowing. Like I immediately when I saw this I went to, well, how could I. How can I take my framework agnostic form library and like use it in this, in this thing? And yeah, I think it would be pretty easy if I put like 100 hours into, into just generating just components for all these different frameworks. It's wild.

01:13:37 - Anthony Campolo

Yeah. Misko mentioned this just at the end of his interview on FSJam when he was talking about Qwik, and it very much wrinkled my brain.

01:13:49 - Eric

But like if you just play with, if you just play with Mitosis Builder.io you will. It will quickly blow your mind.

01:14:01 - Ishan Anand

Yeah. I mean everyone should just go to it. I'm on it right now. It's really fascinating. And to connect it to what I talked about earlier, it's like earlier I was saying, okay, here's all the tasks you might do, like write a click handler in the different languages. This is like you write it once and it's whatever use case you happen to have gets translated if you start writing it in Mitosis first. Right. Yeah. Very, very interesting. That's really cool. I hadn't seen that. Thank you for suggesting that. Yeah,

01:14:37 - Eric

I did interview with Builder.io, but it did not come to anything.

01:14:42 - Ishan Anand

So whatever.

01:14:44 - Eric

I would have loved to work on this but they have other more,

01:14:52 - Anthony Campolo

more

01:14:52 - Eric

revenue generating projects that are what they want to work on.

01:14:56 - Ishan Anand

Ah, okay. Yeah. So Mitosis is, is probably their open source. They've got a lot of great open source stuff between.

01:15:03 - Eric

They're just playing with this and like. Yeah, like, but internally, like they have a couple of people that are just like let's build some amazing tools internally

01:15:15 - Anthony Campolo

Because Partytown's the other piece of this puzzle. Like everything, every single part of this thing, it's all open source that they have, and then their one platform, Builder.io. It's really awesome, actually.

01:15:28 - Eric

Yeah, they basically build e-commerce sites as their main mission. That's where they get their money. But in doing that, they are innovating on the web in a way that Shopify is not, although they did just buy Remix.

01:15:49 - Scott Steinlage

So

01:15:51 - Ishan Anand

Yeah, I mean just the sheer innovation in the open source libraries is really amazing from that team. But I mean I'm sure there you see the open source projects but you know, it's always the things that need to pay the bills that you don't see sometimes are where you have to find focus.

01:16:12 - Eric

Of course, of course. The underside of the iceberg.

01:16:16 - Ishan Anand

Yeah.

01:16:18 - Scott Steinlage

Nick actually looks like he did... oh yeah, Nicky T did a podcast or something with Mitosis earlier, so maybe he has some insight.

01:16:26 - Anthony Campolo

Yeah, well that's true. Yeah, he did a whole thing.

01:16:28 - Nicky T

Yeah, I, I actually

01:16:31 - Ishan Anand

dropped it in the stage. Love to get your thoughts.

01:16:34 - Nicky T

I dropped it in the chat there.

01:16:37 - Ishan Anand

I mean Speaking of which, you know, while we wait for. For Nick. So was there anything else? Those are the two most interesting, I think.

01:16:44 - Scott Steinlage

Ishan, I think you can't hear Nick for some reason.

01:16:47 - Ishan Anand

Oh, I can't? No. He shows up as a listener. Okay, that's weird.

01:16:50 - Nicky T

I thought you could hear everyone else.

01:16:53 - Ishan Anand

Go ahead, Nick.

01:16:54 - Nicky T

Yeah, no, I was just gonna say, I had a Twitch stream with Sammy Yaber, who's actually in the crowd now because I tagged him.

01:17:04 - Anthony Campolo

I don't know if he's busy, but

01:17:05 - Nicky T

If he wants to say hi and talk about the project. But it's pretty much what Eric was saying. You basically build it once and then you can just generate whatever component you want. And I'll let Sammy speak to it because he's obviously the one that works on it. But I know they had tried web components and it wasn't feasible at the time, and this is kind of what they came up with. The blog post I linked in the tweets associated to the... I can't speak... the Twitter Space.

01:17:37 - Ishan Anand

Sorry.

01:17:37 - Nicky T

I just got back from vacation. It's got like a short summary of Sammy saying what Mitosis is, and then the full stream's there. But yeah, it's a super cool project and Sammy's done a lot of really great work on there. So again, I don't know if Sammy's busy or not. I know he's just listening, but he could be up to something else. So Sammy, if you want to say...

01:17:57 - Anthony Campolo

hi, we should get him on Jam, though. Podcast.

01:18:01 - Scott Steinlage

Yeah, I invited him up and then I also shared your link there at the top, so if anybody wants to check that out, they can. But we should also definitely schedule something for Sammy to come on JavaScript Jam, like Anthony was saying.

01:18:15 - Anthony Campolo

The recorded JavaScript jam.

01:18:17 - Scott Steinlage

Yeah, the video podcast.

01:18:19 - Nicky T

Yeah, yeah. It's just a really super cool project. And the playground they have that Eric was talking about, if you go to... I think it's mitosis.builder.io. I can't remember. And there's another one, I can't remember the name of the other one. But anyway, it's just a super cool project and, you know, leveraging ASTs, and they support a lot of frameworks, so it's...

01:18:44 - Nicky T

And I'm sure maybe more in the future. So it's just really super cool project.

01:18:52 - Eric

ASTs are better than NFTs. That's my...

01:18:59 - Scott Steinlage

Sammy says, how does Twitter Spaces work, laugh out loud. So if you're on desktop, man, you can't come up as a speaker, which maybe is what your issue might be. You have to be on the mobile app to be able to come up as a speaker and speak. That's probably why you're wondering, why the heck isn't this working?

01:19:15 - Nicky T

Well, yeah, if he can't come on now, definitely, definitely have him on the podcast or whatever. It was really great talking with him. So.

01:19:23 - Scott Steinlage

Absolutely, yeah, Sammy, just give us a follow man, and we'll DM each other back and forth. Figure that out. We'd love to hear from you.

01:19:32 - Ishan Anand

Very cool. So we've got about 10 minutes left, maybe. I think if you've been living under a rock, you don't know how AI is now the topic du jour of the moment. Anthony added a relevant one to how we code every day from HTTPie. Do you want to walk folks briefly through that and see what folks think about it?

01:19:57 - Anthony Campolo

Yeah, it's a way to integrate AI into more of a CLI-type environment. So if you ask it a question for doing a curl request, you want to query something, and it will give you that. So I thought this was really interesting because just a little while ago, Warp, the terminal company, also lets you do AI. And so I asked it to write a GraphQL query for me, like a curl command. It was able to do it almost. It messed up on one line break part, which is pretty interesting, because that's where I usually would break it. But if you just fix that one line break, it randomly works. So you could basically use an English-language way to generate basic little code snippets. And we already knew this from Copilot, but now it's more explicit that you just ask these things questions, or you tell it to do something that kind of involves a question. So yeah, it's really interesting. To give the example it was querying, I said, write me a GraphQL query to return a list of characters from the Rick and Morty GraphQL API.

01:21:11 - Anthony Campolo

It does that and gives you the GraphQL query to return a list of characters from Rick and Morty.

01:21:18 - Ishan Anand

What I think is interesting here, as you mentioned, is that in some sense we already knew this from Copilot, and people have examples online of asking ChatGPT to take a piece of code and rewrite it. But this is yet another example where we're seeing natural language as a kind of command line infiltrating how we do code. I think one of the examples on their website was, you know, query the top three starred repos in GitHub, and there's your API request. And it's not going to stop there. Some VC used to say, when we evaluate something, we don't think about whether the idea is crazy or not. We look at what it would be like if the entire world adopted this and how the world changes. And that's what I think is really interesting to think about. We're actually seeing this really start percolating through almost every level of how things get done in various ways. It definitely feels like it's at an inflection point, at a turning point. I have not used Copilot, so as somebody who hadn't really been using it, this kind of caught me by surprise in retrospect. I've watched...

01:22:41 - Ishan Anand

Oh, I know Jason Lengstorf uses it in some of his videos. I had seen him use it and it looked really good, but I just had the visceral.

01:22:49 - Anthony Campolo

I think the problem people made is that they assumed it was like this autocomplete thing or they would start writing code and then it would suggest more of the code, but then it's like, well, the computer can't read your mind. But what people started realizing is you could actually write a comment like saying what it would do, then sometimes it would generate that code and so now it's making that workflow explicit.

01:23:13 - Ishan Anand

You know, you remind me of something else I heard, which is, which was really insightful, which is that, you know, you see this with ChatGPT, for example, it's, it's a very confident BSer. So when it's right, it definitely sounds like it's right and when it's wrong, it sounds like it thinks it's right. And so somebody who worked on Copilot said they thought a lot about the UX and how you could use it in a way that acknowledged that sometimes it will give you the wrong answer and the developer will realize that and be able to correct it. And so they had to do it so that you don't feel the pain of the failure modes. And when it works it comes across entirely as delight. Whereas if you felt the pain of the failures and the, the successes equally, you actually would think the product wasn't as good as it is. And it's worth remembering with, I think AI in general is that it's not always accurate. And that's part of the UX of actually adopting it into a product that can be really important. I mean like when you used it, for example. Right.

01:24:20 - Ishan Anand

It didn't work.

01:24:21 - Anthony Campolo

The thing about this, though, is that's the same thing as humans. Humans don't always write code that works correctly.

01:24:28 - Ishan Anand

That's true.

01:24:30 - Anthony Campolo

If it still writes bugs, but it writes 80, like it's 90% correct and your code would be 80% correct. That's still better.

01:24:38 - Ishan Anand

Yeah, absolutely. It's a valid point. It's like when people talk about self driving cars and the accidents they do. Like, well, would a human have made the same mistake or have statistically done as many accidents in the same amount of miles as humans do? It's like versus what alternative. It's a really good point. Is there anybody, I'm curious who's. Who's actually started playing around with using this in their day to day programming or coding work and if they have any thoughts, I for one welcome our large language model Overlords. What is, what's the name of it? It's called HTTPie. It's an API testing client. They added HTTPie AI. Yeah.

01:25:33 - Anthony Campolo

Here, Liam, link the tweet I made about the warp thing or Sammy had

01:25:41 - Scott Steinlage

to download the Twitter app and it probably has PTSD from it.

01:25:47 - Ishan Anand

I had it until about a few weeks ago and I was like, I'll just use the mobile like PWA app because why the hell would I need this app? And now I have my answer.

01:26:00 - Scott Steinlage

Yeah. Glad you could join us, man.

01:26:04 - Ishan Anand

Yeah.

01:26:05 - Scott Steinlage

And thanks for downloading just to talk to us. Wow, that's awesome.

01:26:08 - Ishan Anand

Yeah, for sure. I mean, I heard. I. I mean, I don't know, I feel like if you hear somebody talking about something you're working on, you get all excited and you want to, you want to be part of the conversation

01:26:17 - Scott Steinlage

and they're like, ah, I have to

01:26:18 - Anthony Campolo

download this thing very quickly.

01:26:20 - Scott Steinlage

Super fomo. The FOMO works. Yeah,

01:26:28 - Ishan Anand

Yeah, welcome, welcome to a social network. But you know, in the last few minutes, Sammy, is there anything you want to add?

01:26:36 - Scott Steinlage

Builder.io is in here anyway.

01:26:39 - Ishan Anand

I mean I obviously told everyone they're talking about us. Yeah, I mean, I don't know, I don't want to derail the conversation. You guys have started talking about Copilot,

01:26:49 - Sammy Yaber

which I can also talk about because

01:26:50 - Ishan Anand

I absolutely love it and I think your mic's glitching.

01:26:54 - Nicky T

Is it?

01:26:56 - Ishan Anand

Let me.

01:26:56 - Anthony Campolo

Yeah, there's like some sort of scratching sound on it. Are you going through your phone right now? Just, like, straight through your, like, phone speaker.

01:27:03 - Sammy Yaber

Is this better?

01:27:05 - Ishan Anand

Oh, yeah.

01:27:06 - Scott Steinlage

Clear.

01:27:06 - Anthony Campolo

Yes.

01:27:07 - Ishan Anand

Yeah, that's a lot better. I'm gonna note, unfortunately, I have a hard stop.

01:27:11 - Anthony Campolo

Yeah. But I can keep going. I don't know about you, Scott.

01:27:13 - Ishan Anand

Yeah, that's great.

01:27:15 - Scott Steinlage

Yeah, I can stick around for about another probably 10, 20 minutes, something.

01:27:19 - Ishan Anand

Okay, great. I'm gonna hand the reins over to you guys. But, Sammy, great to have you here and hear from you. We should definitely do. Maybe have you as a guest in the future, but I'll turn it back over to you.

01:27:30 - Sammy Yaber

Sounds good. For sure.

01:27:32 - Ishan Anand

Yeah.

01:27:33 - Sammy Yaber

Before I talk about anything related to Mitosis, I'll say everyone should be using Copilot all the time. I'm obsessed with it, and I think it is the future. I honestly can't see a future where not everyone's using it all the time, but maybe I've just been absolutely enamored by it and it'll bite me at some point. I don't know if anyone can still hear me. Yeah. But yeah.

01:27:53 - Anthony Campolo

Yeah, you're good.

01:27:54 - Sammy Yaber

I think it's really fascinating how quickly it learns and how it reshapes your mind and how you should be coding and you end up just.

01:28:01 - Sammy Yaber

Developing a different workflow just to satisfy the tool. But then the tool rewards you with code that, in my experience, works, like, 80, 85% of the time. And when it doesn't, it spat out, like, 15 lines of code for you that you didn't have to write by hand. So I think it's. Yeah, it's fascinating.

01:28:20 - Ishan Anand

Can you elaborate on, like, that? That's really fascinating how it reshapes your mind and your flow. I won't be able to stick around for the whole answer, but I'm really curious to hear, like, how that's all different. Like, if you've got an example.

01:28:31 - Nicky T

Yeah.

01:28:32 - Sammy Yaber

I think somebody. I don't know if I'm pronouncing his Twitter handle correctly. Swix wrote something that echoed, kind of how I started using it, about how. I mean, we've complained for ages about how we're not writing enough comments to explain what it is we're writing. And now we have this tool that's effectively telling you if you write a comment, the more detailed the comment is and the more explicit it is, the better. I will generate the following lines of code after it for you.

01:29:01 - Ishan Anand

Very interesting.

01:29:02 - Sammy Yaber

I've been on a pairing call with some coworkers, and you're pairing on one thing or another. I'm like, oh man, okay, so now we need this feature that's going to take a style map and convert it into a CSS string that's concatenated, and I just start typing all of that out in a comment. And so the function below, it's kind of prompt engineering. That's what people talk about when they say prompt engineering. The same way you know how to talk to the people in your life, and you know that you need to talk to them using a certain tone, using the language that they understand, the same goes with this AI tool. So while I was on this pairing call, I was like, oh, you know, it's going to take me too long to write this function that's 15 lines long and does this loop over the style map object and does all this stuff and joins the strings correctly and does some camelCase to snake_case conversion. But I just typed out the comment, and in the past that would have been it. That would have been a to-do comment: write a function that does this.

01:30:02 - Sammy Yaber

But now the to do will get done when you press enter and wait like a second. And yeah, I don't know, it has not been my experience that it's been like only sometimes working. It's like it rarely misses the mark by that much. So, yeah, I mean, at least, at least in my domain and the kind of work that I've had to do. So, yeah, I'm very happy that this tool exists.

01:30:25 - Ishan Anand

Yeah.

01:30:26 - Sammy Yaber

And I can't imagine what you can build on top of it. Like, it's already so good. So if anyone here is not actively using it, I think you're doing yourself a disservice, honestly, because the other software engineers that are using it, they're going to be miles ahead of you because they're able to just bang out so much code so efficiently, and it learns so quickly given the context of the file that it's in and the codebase.

01:30:50 - Anthony Campolo

And this is like the first version of this thing. It's going to get so much better in two, three, five years. Like, it's incredible.

01:30:56 - Nicky T

Yeah.

01:30:56 - Sammy Yaber

Yeah. And it's already mind-boggling — it's gonna reshape what it means to be a software engineer. You can spit out so much code so quickly, and who cares if it's buggy?

01:31:09 - Sammy Yaber

Whenever you write your first draft of a function, it's gonna be buggy. So you're just doing it in a fraction...

01:31:14 - Anthony Campolo

Exactly.

01:31:16 - Ishan Anand

I have to drop. But I'll just say Scott and Anthony, I think Sammy just gave us the quote for next week's newsletter. We always look back and pull out a single quote. I think what you just said we should put as. As the quote. So that's really fascinating and I'll let you continue. Thanks everyone. See you all next week.

01:31:35 - Scott Steinlage

Yeah.

01:31:35 - Sammy Yaber

Oh, happy to provide a quote. I'm not sure which part. I feel like I rambled for about five minutes straight.

01:31:40 - Anthony Campolo

So I'll go back and listen to it and figure out which one he was referring to. Yeah, but yeah, I'm curious. Everything you said.

01:31:46 - Sammy Yaber

Yeah, definitely, you're missing out, whoever you are, who's listening, who's not yet used it. You should try it out. At least try it out and find out if it works for you and give it an honest try. Because in my experience, I was just shocked when I realized what I'd been missing out on.

01:32:02 - Nicky T

Yeah. Same here, to Sammy's point. I think the hit-and-miss stuff, I experienced that initially, but I think it was because when I first got Copilot, I was treating it kind of like Google Docs trying to autocomplete. And it was only once I started to write a detailed comment, like Sammy was saying, you know, do this, give me a kebab case after, blah, blah, blah, that's when it started being pretty much on the money. Potentially not 100% correct all the time, but enough to save you time. And yeah, I definitely think it's going to be a game changer too. I know people always do the Terminator references and Skynet and machines rising, and I don't know, I think maybe some jobs at some point will be lost because of this, but I think overall, as a dev, it's another tool in your tool belt. And I forget where I was reading it the other day, but it's really true: we're not here to code. We're here to improve people's lives through technology.

01:33:15 - Nicky T

And like, code is like, obviously one way of doing it. So like, if we have a tool that just helps us spew out that code, but it's us generating these ideas, you know, I think that's, that's, that's what will make you move faster, you know. And then like, I mean, honestly, who wants to type out a for loop or, you know, like a dot map or something, you know, you've done it like tons of times, you know, let the robots do it, you know.

01:33:38 - Daniel

No, for sure. I think Copilot is probably one of the best innovations, and you're right, it comes down to how you use it. I feel like when I first started using it, I didn't realize all of what was going on. But things that really help it perform... for example, if you're using Next.js and you're using common Next.js patterns and you do imports at the top, and then you do your pseudo-comment, hey, what I'm going to do in this specific component, or whatever it might be, if it has the imports to reference, that creates enough context that it actually is generally always right. It might not be exactly how you want to write it, but it gives you an idea of an accurate way to write it given the context it has. The more you have above the actual prompt itself increases the likelihood that it's going to fit the use case. If you just open up a blank file and start commenting, it will make a general solution. But if you have imports and then comments, it actually creates a pretty accurate instance of it.

01:34:40 - Nicky T

I think one other thing I'd say about it is it can be a really great learning tool. When I stream on Twitch, sometimes it's kind of annoying, because when you're trying to demonstrate something, you don't necessarily want it filling out all the code. But having said that, what if I start learning Go? I'm not familiar with all the syntax. It's kind of a tool to help me pick up the language too, I think, because a lot of times when people switch between languages, syntax is a barrier. And I'm sure there are other applications for learning with this too, in terms of people learning to program. But yeah, it's pretty cool. And for folks who aren't aware, if you work in open source, you're given a Copilot license for free. I mean, I would definitely pay for it, but at the moment it's free for me. And so, if you work in open source, I don't know what the gauge is in terms of how much open-sourceness you do, but there's definitely that too.

01:35:48 - Nicky T

So just another reason to contribute to open source as well, if that's your jam.

01:35:56 - Daniel

My single favorite thing is when you go into someone else's repository you haven't been in before, and you can just go through and it auto-populates comments for the lines so you can see what's going on. Like, if you go into a Go codebase and you haven't used Go, you can at least figure it out without Googling forever. It gives you a breakdown. It's awesome. You're right. It's great for learning.

01:36:32 - Anthony Campolo

Scott, you there?

01:36:36 - Nicky T

That's some good awkward silence, man.

01:36:38 - Scott Steinlage

Hello. Hello. There we go. Oh, my gosh. There we go. I'm telling you, Twitter has been glitching out on me today. I don't know what to do.

01:36:46 - Anthony Campolo

Oh yeah, no, Twitter Spaces, I think, have gotten a little bit more buggy recently, but hopefully they'll get better.

01:36:53 - Scott Steinlage

Yeah, I'm hoping to. You know, like, I was just like thinking about this, like, so this whole debacle, it's like. Or whatever you want to call it, with Sammy trying to come up here and like he was on desktop so he couldn't. It's like, why do they even have the invite to speak option on there if he's on desktop?

01:37:10 - Scott Steinlage

[unclear], come on.

01:37:11 - Anthony Campolo

Well, because they eventually are going to want there, so maybe.

01:37:16 - Scott Steinlage

I don't know, I think they would have done it already, but anywho. Yeah, this has been awesome. Thank you so much for coming up and chatting with us a little bit, Sammy, Nick, and everybody else that's been contributing to this conversation. AI is the way. Yeah, yeah. I'm just really excited for the future of things with how everything's been looking, and obviously so are many other devs. There's a lot of people that also are on the fear side of things. And, you know, sure, I can kind of understand maybe some people. And everybody agrees some people may lose their jobs, but there's also a lot of people not losing their jobs and doing better at their jobs and building faster, better, stronger things. And I'm just really looking forward to the positive things that are going to come out of this, moving forward in the innovation within that. So really excited for that. Does anybody else have anything else they'd like to say or bring up here in the next couple minutes? If not, I think we're going to come to a close. We are about 10 over.

01:38:27 - Scott Steinlage

10 minutes over. I don't know.

01:38:27 - Anthony Campolo

Yeah, I would say just the last point I would make, the last thing you said, that I don't think things like Copilot or ChatGPT will take anyone's jobs. I think they'll actually make many people way more effective at their jobs. AI is not able to take away jobs like taking people out of McDonald's and letting people order through a screen. That's not AI, but that takes people out of their jobs because they've been replaced by point-and-click systems. I get why people make this connection, and I think it's a valid thing for you to bring up, but I think people always have to be clear about where we are removing people and where we are augmenting people.

01:39:12 - Scott Steinlage

You're creating more jobs at the same time. Yeah, and you're also creating more jobs at the same time, and so maybe enabling those people to level up and make even potentially more money than they were before. I don't know. But it takes a certain person, I guess, right? But anybody can learn it. I'm an idiot and I can learn some of this stuff. So it's fun. As long as you put your mind to it, you do it. So yes, great, great way to end this. Big things to come, innovation, exciting things happening in this. And who knew it was going to happen so quickly like this.

01:39:57 - Anthony Campolo

Obviously I was telling people they should pay attention to GPT in 2019.

01:40:03 - Scott Steinlage

Yeah, well, there you go. Anthony called it out, guys. He did it for us in 2019. Yo. But really, like, I mean the effect it's had, it's just mind blowing and the amount of people are utilizing it. I can't wait to see the more and more use cases, you know, and things that are going to come from it. I've heard even things that people won't speak of yet. It's like, it's just, wow, I can't believe that's happening right now. I can't wait to see, you know, that, that scaled and released publicly, you know, stuff like that. I'm just excited for those things. Mind blowing.

01:40:38 - Nicky T

I just discovered I have access to the soundboard.

01:40:47 - Daniel

All right.

01:40:49 - Scott Steinlage

Okay, caller number five, how can I help you? Anyway, thank you guys. Yes, thank you guys so much for joining us today. Remember, we do this every Wednesday at 12pm Pacific Standard Time, and we got soundboards galore. So if you want to hear some noises, come join us. No, really though, if you want to have some fun, talk about web development and JavaScript, and anything really related to that, we would love to have you join us. Thank y'all so, so much. By the way, if you got any value from any of the wonderful faces here, please click on them and follow them, because I guarantee you're going to get value from them in other places as well. You don't want to miss out. And hey, you know what, JavaScript Jam, we wouldn't mind a follow too. Love y'all. Thank you so much. And next week we'll be doing the same thing, so join us. We love you. And Sammy, hey man, if you want to join us, just hit us up in the DMs. All right, y'all, thank you. Appreciate it. See you in the next one. And...

01:42:15 - Scott Steinlage

Thanks guys. See you next time. Peace.

On this pageJump to section