Open Source Drama, Streaming Productivity, and the State of JavaScript

Speaker 1:

Before this doesn't count for the podcast. Chris, just all this just cut all this out.

Speaker 2:

Whenever you say that, he just doesn't cut it out

Speaker 1:

every time.

Speaker 2:

Have you not learned

Speaker 1:

I know. It's fine. It's fine.

Speaker 2:

It's a signal from the included.

Speaker 1:

But this is different. It's not like I I want you to cut it out because it's sensitive. It's like, it's gonna be super boring. Let's just not put this at the beginning of our podcast because it's just it's been a week off and, like, this is not entertaining. But I just had to set up everything to do this.

Speaker 1:

I'm not I'm not prepared to record our podcast on my stream. And I did it. 1st try. Just wanted you to be proud of me for something, because you're not proud of me for a lot of other things. I just nailed it.

Speaker 1:

1st try.

Speaker 2:

Did you? There's no audio.

Speaker 1:

There's no audio? Are you serious? Double DAX? Oh, jeez. Hang on.

Speaker 1:

Okay. Let's

Speaker 2:

Your haircut does does look good. Hey, Seth.

Speaker 1:

I appreciate compliments from you because I don't always get them.

Speaker 2:

No. It looks really good. It looks way better than whatever the hell was going on yesterday.

Speaker 1:

Ouch. I I intentionally, like, went out of my way to try to be way more personable with my haircutter, my barber, to the point that he probably thought, like, something was wrong with me. Like, what's going on with this guy? Because I also had him change my haircut. Like, I was this is the first time in year.

Speaker 1:

I've never tried something new, and I was like, let's do the 0 fade. And he's probably thinking, like, I just got divorced. I just something major just happened. My dog died or something because I'm, like, talking to him all chatty, and I'm, like, changing my head completely. It didn't go the best.

Speaker 1:

He did not seem to wanna talk. I think it's his side. I think that's not my fault. I think he actually doesn't wanna talk to me, for whatever reason. But then I started talking about movies, and he kinda perked up.

Speaker 1:

That's just my little update on haircut talking. I'm done.

Speaker 2:

And how did you feel afterward? Were you were you glad that you, you tried? I

Speaker 1:

mean, the whole time, it was very meta in my brain. I was just thinking about how Dax is gonna be so proud of me when I tell him about this. Like like, that's all I could think about. So maybe that was maybe that's why he didn't wanna talk to me. You could tell I wasn't really paying attention.

Speaker 1:

I was just, like, trying to get points for being social.

Speaker 2:

So I had an interesting experience as well at the barber. So I was in Maine this past week. I was a little nervous. I was in New Jersey and New York.

Speaker 1:

We'll get to it.

Speaker 2:

And in Maine. You jerk. And I was like, one morning I was like, oh, let me just go get my head, get like a head trim, get my head shaved. Yeah. So I just go to the most random place, just like the most random local, like super cheap place.

Speaker 2:

And the person that weighs me over because they have a slot open is an extremely, extremely old man. Like, I wouldn't be surprised if he was in his, like, eighties. Like, he was he was quite old. What? Okay.

Speaker 2:

And his hands

Speaker 1:

No. Were shaking.

Speaker 2:

Shaking the whole time. But it was fine because he was just using the electric trimmer, and so he he did that.

Speaker 1:

He didn't have a straight blade? He wasn't, like, razoring your head?

Speaker 2:

At first, he didn't have a straight blade.

Speaker 1:

Oh, no. He got out a straight blade.

Speaker 2:

And then he finished, and then he was like and then he pulls out the straight blade to do stuff, and he's like his hands are shaking. And, like, I was extremely, extremely nervous the whole time. But it was fine. I think it's weird, like, his hands got stable when he used it. Stable ish.

Speaker 1:

Once the adrenaline got flowing, once he gets into the zone, he's into the flow state, and he's like, I got

Speaker 2:

this now. But it wasn't a good result. Like, the head texture of my head felt super weird, and it made me really appreciate the people I go to here. I don't go to a barber all the time, but when I do go, like, they like they spend time just getting like every little, like, strand of hair out. And then when I'm done, I have like a completely smooth head.

Speaker 2:

And when I'm if I'm super rich one day, I think what like, the one unique thing I'm gonna spend my money on is I want someone to come to my house every morning and shave my head that closely.

Speaker 1:

Fresh cut every day?

Speaker 2:

Yeah. So I can have a smooth head every single day.

Speaker 1:

That'd be actually a pretty great routine. Like, I bet that'd be very therapeutic. You just have, like, a routine where you sit there and you think about whatever that morning, what's going on for the day, and you're getting your head shaved.

Speaker 2:

No. I have to talk to the person. We we always

Speaker 1:

Oh, you have to talk to them. That's right. Yeah. If if you hire them to come to your house, you really have to talk to him at that point. I feel like at that point, there's kind of an established pecking order here.

Speaker 1:

Like,

Speaker 2:

I hired you

Speaker 1:

I hired you to come to my house and shave my head. I'm not gonna talk too. That's just too much.

Speaker 2:

I I think that's kind of the relationship where you wanna have that person in your life for a long time. So I think it's actually the opposite, if anything. It's not as anonymous.

Speaker 1:

I could see that.

Speaker 2:

But I always think about how, like, The Rock when does he ever have hair that's, like, kinda growing? It never.

Speaker 1:

Good

Speaker 2:

point. His head is perfectly smooth every single day. I don't know how because it looks very, very, very, very, very good. And maybe he does get it done every single day. I kinda wanted to, like, laser all the hair off my head because it's, like, kinda but the half state is pointless.

Speaker 1:

So is that a thing? Can you actually go, like, laser away hair that'll never grow back? Like, if I just wanna stop if I just wanna lock in this facial hair, can I just laser all around it and it'll just stay growing in this spot? I don't ever have to shave my cheeks again. Is that a thing?

Speaker 1:

That sounded so weird, shave my cheeks. My face cheeks.

Speaker 2:

I think so. It it is like a it is a painful thing, and it's it's like semi permanent. Like, it'll eventually like, after years years. So it's probably maybe worth it. But I think lasering your face area is

Speaker 1:

Yeah. That's what I was gonna say. How does it kill the hair follicle and not, like, damage your skin in some way?

Speaker 2:

I think it does slightly damage your skin because when you when you get when you get it done, you can't go out in the sun for a little bit.

Speaker 1:

Oh. But

Speaker 2:

I think your skin is damaged. Speaking of damaged skin, did you see that video that was floating around, like, explaining how a tattoo works?

Speaker 1:

No. But I'm very curious now. You got me.

Speaker 2:

It is the craziest thing ever. It's like the most it's so much more violent of a process than than you would think.

Speaker 1:

Yeah. I'm just realizing, I just know it's a needle, and it, like it's like is it like a sewing machine? That's all I know about tattoos. I've never really understood how the ink stays there, how it, like, I don't I don't understand.

Speaker 2:

So here's what's wild. You think of it as entirely a physical process where, like, they just shove ink under your skin Yep.

Speaker 1:

Yep.

Speaker 2:

And it just stays there. But it actually only works because of how our immune system works, And it's really, really wild. So when the immune system I would not have guessed. The needle goes goes in and, like, super fast. Right?

Speaker 2:

It's, like, I think, like, 4 times a second or something. It's, like, basically blasting holes into your skin all the way to, like, the layer right below it and it's depositing these giant things of these giant, like, molecules of ink. Yep. And your body sees that as, like, a traumatic event. So it sends a bunch of white blood cells to try to, like, you know, get rid of all the bacteria and stuff that that was pulled in.

Speaker 1:

Mhmm.

Speaker 2:

In that process, it keeps it tries to figure out what to do with the ink, and it it hits a point where it gives up because it it doesn't know how to, like, defeat the ink.

Speaker 1:

Yeah.

Speaker 2:

And it basically, like, surrounds it and locks the ink in place to prevent it from going into the rest of your body. So your body identifies it as, like, a threat, and your white blood cells, like, sacrifice themselves to to keep it trapped there. And that's why it, like, it stays there and it stays still. And over time, obviously, some of it breaks apart and, like, you know, gets flushed through your body, and that's why it gets a little bit blurry over time.

Speaker 1:

Yeah. Fades a little bit.

Speaker 2:

Yeah. If it wasn't for your immune system, it would just kinda, like, dissipate through

Speaker 1:

your body like an Really? I never considered that, like, why the ink stays in the spot that it stays. I guess I I probably just thought it was, like, dying the cells. Like, I just coloring the cells or something. But I guess your cells are constantly replacing themselves, so that doesn't make sense.

Speaker 2:

Well, the skin layer is, like, it's constantly, like, rising. Like, the Yeah. Yeah. It pushes dead things to the top, and then it, like, you know, you're shedding, like, millions of them every minute or something crazy like that. So it needs to go below the skin, and then something needs to kinda hold it in place.

Speaker 1:

That is wild. So your skin is just translucent enough to kinda see the ink Yep. Through the oh, yeah. You have a tattoo. We've talked about this.

Speaker 2:

Yeah. Right here.

Speaker 1:

Yeah. So that's now you know how it all works. Does it make you feel differently about your tattoo?

Speaker 2:

Yeah. Because the video really, like, dramatizes drama Drama. Dramatize

Speaker 1:

it. Yeah. Yeah. I had the same thought. Like, wait, drama's

Speaker 2:

It's just like this horrible moment for your body and all these, like, white blood cells sacrifice themselves so that you can you can have a tattoo. And now I understand why when people get big tattoos, they get really tired or almost, like, sick for a couple days.

Speaker 1:

Mhmm.

Speaker 2:

Because you're getting some big work and hard. Response.

Speaker 1:

Yeah. Yeah. Interesting. Yeah. Now I definitely don't want a tattoo.

Speaker 1:

I was kind of on the fence. To say that. I was kind of on the fence now just knowing that, like, my immune system gets involved. Nah. I'm good.

Speaker 2:

Well, you got your new haircut. I feel like a tattoo would go. Honestly, if you got the exact same tattoo as me with that haircut, I think you would look great.

Speaker 1:

So that'd be kinda cool, actually. That'd be like locking in our friendship that is now dead. Is our friendship dead? Could we could we go over that a little bit? We haven't, just been on the 2 of us in, like, 4 or 5 weeks.

Speaker 1:

It's been a while. I feel like we've lost that dialogue. We used to talk a lot, and then you travel constantly. And I'm a little bothered, and then you watch me stream and you're bothered. So do we just not like each other anymore?

Speaker 1:

Is that the deal? Are we just over each other?

Speaker 2:

I think that's what happened. We stopped talking a couple weeks, and we realized it's actually better that we don't talk at

Speaker 1:

all. Okay. Is that what we realized? Oh, jeez. That was the conclusion you came to.

Speaker 1:

Okay. Feels good.

Speaker 2:

No. I'm just kidding.

Speaker 1:

Why were you so frustrated? You just is it for context? The podcast listeners are not necessarily stream watchers. You joined my stream this morning. I've been streaming again the last couple weeks.

Speaker 1:

And, you just sometimes you watch me, and you just can't handle it. You're like, this guy's too dumb. I can't watch this guy program for another second, and you just start screaming in chat with all caps. What was it specifically this morning? Because, like, most times I know, like, yeah, that part was refreshing.

Speaker 1:

This morning, I I don't know. I didn't figure out exactly what you're frustrated by.

Speaker 2:

It just it was just like any other time. Like, I see what the problem is, and I'm having a hard time communicating it. And it's it's like then there's, like, the lag. Like, I say something, and you're looking at something else. You know, looking at chat.

Speaker 1:

Takes a while for you.

Speaker 2:

Time you come look at it, like, the context is totally lost. And you're just like, what the hell is he talking about? Yeah. There's still a lot of frustrating back and forth. And I was in the shower when I was watching.

Speaker 1:

Which is totally normal to watch Twitch.

Speaker 2:

I'm not even gonna I'm not even gonna try to explain that. Yeah. That's fine. And my phone was getting wet, so I couldn't even type properly. So half of those messages of me screaming were just me trying to actually just type, and it was just the water was and then and then I got so annoyed that I got out of the shower, and I, like, went to my computer to type it out.

Speaker 1:

You you said you had a theory about, why I'm so slow on Twitch. Is that real, or were you just messing with me?

Speaker 2:

I've, like, made, like, this kind of implicit assumption where I'm like because I know you get a lot of stuff done. You definitely get a lot of stuff done. I would say, like, an above average amount of stuff. You you get together. But you would never know that watching your stream.

Speaker 1:

I've heard this.

Speaker 2:

So I'm like, Adam must be, like, really good off stream, like, by comparison because he has to

Speaker 1:

To make up for it?

Speaker 2:

Yeah. Once it does make up for the little time and and, yeah, just to, like, get as much done as you do. But so now I was thinking the other day, like, okay. Like, what is actually going wrong? Because it's not of course, everyone on Twitch, like, you start reading chat and you get distracted.

Speaker 2:

It's like a pure time thing. But I swear, when you're on Twitch, there's this other thing that happens where you just, like, zoom in way too far just

Speaker 1:

to, like,

Speaker 2:

the next step.

Speaker 1:

Uh-huh.

Speaker 2:

And I'm like, there's there's and then so, like, sometimes you're doing things and you're like not like, why am I doing this? It's almost like part of your brain turns off and you just, like, do whatever chat says.

Speaker 1:

It really it is. There's something because I I've tried. When I came back to streaming, I knew I have to actually be productive or I won't keep doing it. Like, at some point, I realized, like, I'm not really getting anything done. I gotta stop streaming.

Speaker 1:

And I wanna stream. It's so fun to have friends on the Internet that you interact with. You know the fun parts of streaming. Like, they're very fun. Yes.

Speaker 1:

So I wanna keep it, like, as this long term thing that I do just a little bit every day, maybe just a little bit every week, whatever. So I consciously came into it saying, I'm gonna stay focused, and I'm gonna actually get stuff done. And I feel like I've done a much better job of actually staying focused on my screen and actually in my text editor and not just talking. I've done that part, but there's there's something different. And I my theory was that, like, you know how you're different around certain people?

Speaker 1:

You just have, like, a certain not like intentionally, but you're just you're a different person around every individual. Like, you have a different personality that comes out. I feel like something about the Twitch chat community, like, my friends on Twitch and Twitter. I mean, they're they're on Twitter too. But I feel like when I'm around that group, I'm just a totally different person, and I can't quite describe it.

Speaker 1:

But that person is not very good at programming. We're not very good at, like it's not programming. It's not very good at like you're saying, like, seeing the whole picture and just, like, being effective and getting things done on a schedule. It's like I do. I obsess over stupid little things that I don't need to spend time on, and then I spend 45 minutes on it.

Speaker 1:

And, like, I wouldn't do that just sitting here alone, and I don't I don't know exactly what it is. It's not like I think it's good content. It's not like I'm, like, I'm gonna wow them with me staring at this padding issue for 45 minutes. I don't actually think that's entertaining, but for some reason, I feel like I'm that different person. I don't know.

Speaker 1:

I gotta figure it out. Or just stop streaming.

Speaker 2:

Yeah. I actually I actually don't think I mean, the focusing on details part, like, I'm yeah. I think that's fine. Like, I don't think that's that's weird. I think that's

Speaker 1:

Oh, and I'm I'm super into details, like, when I'm off stream. I mean, I I very much care to get all the little things right. I just can't figure out what it is about being on Twitch that I I think I focus I do focus on the wrong things. I don't know. I don't like it.

Speaker 2:

Yeah. I mean, I kinda get it too because I think when you work normally, you have, like I don't know. I feel like you have you have, like, this larger not you, just people in general, like myself too, have this larger sense of what you're trying to do. And maybe on Twitch, it kinda feels like you're trying to figure out the next thing you're gonna do. I don't know.

Speaker 2:

It it it just feels like there's, like, a larger context missing.

Speaker 1:

Yeah. There's definitely something missing. I don't know. Yeah. Twitch chat says maybe, I'm anxious or nervous.

Speaker 1:

I don't think so. I mean, I don't think I get nervous being on Twitch.

Speaker 2:

It's it's not that. It feels totally random to me. It feels like you're just behaving in this completely random other way.

Speaker 1:

Yeah. Yeah. It's just a different I just feel like a different person. But I I feel that way, like, I've had this thought. This kinda branches out into other stuff.

Speaker 1:

I've had this thought in terms of, like, if I'm just talking with you. I feel like this is as much me, just myself, as I can be. Like, I'm like you or with you like I am with Casey. Like, my closest friends, I feel like I'm I'm just me. But, like, go React Miami.

Speaker 1:

In, like, a small group of, like, 4 or 5 people where it's you plus other people, I'm just not me, and I'm a different person. And then I start feeling like I have this different identity. Do you feel that way? Do you feel like you have different identities, like, completely different personhoods depending on who's around?

Speaker 2:

Yeah. I definitely have that, but it's not that's not, like, what trips it. I think for me and this is, like, a very normal thing. It's, when I meet someone new, it takes me, like, a couple weeks of, like, meeting them a few times for, like, my actual personality to come out. And more and more lately, I'm like, that first personality is so fake or, like, it's just like it's I hate it.

Speaker 2:

I hate it so much. And I don't know how it it just comes out every single time. Mhmm. And Chan had this funny tweet. I don't think you saw it because you were talking about the same dynamic in a different way where he was, like, a trick for that is when you meet someone new, just try to figure out who they remind you most of and just pretend that that's who they are.

Speaker 2:

Yeah. And, like, that actually

Speaker 1:

I remember this tweet.

Speaker 2:

Yeah. And, like, that seems like that could help me because that's my exact problem. Like, I I need to I just wish I could pretend whatever initial layer I need to get over. Like, I I wish that would happen right away.

Speaker 1:

Yeah. I remember that tweet because I responded because I don't do it intentionally, but certain people and I don't do it with everybody. Maybe if I did it with everybody, it would help me, like, if I were intentional about it. But there are certain people that remind me so much of somebody that I just am that person. Like, I go back.

Speaker 1:

So for instance, Prime is my college friend, Rob, like, to a t. I mean, their voice is the same. Like, to literally, like, they're the same in my mind, they're the same person.

Speaker 2:

Mhmm.

Speaker 1:

So when I'm around Prime, I find myself it's like, that's Rob, and I feel like I'm I'm thinking how I was with Rob in college, and that's just not that's not prime. It's a different human being. He doesn't have any of that context. So then I, like, try and not be that, and it's just even harder. There's people like that that just remind me so much of somebody that was I was close to at some time, and then I just become the person that I was.

Speaker 1:

It's effective in, like, getting over that initial hurdle until it's very distracting, and you you're constantly thinking about it when you're around that person.

Speaker 2:

Yeah. I think your thing with groups, do you feel like your personality is different, or do you just feel like you are quieter? Like, because that's what I've

Speaker 1:

been doing. Lose my personality. Yeah. I just don't have one. Like, I've become completely a shell of a person.

Speaker 1:

I just kinda walk around and stare. Is that autism? What is that? I I blame everything on autism.

Speaker 2:

I will say that if you're specifically talking about Hangout React Miami so this is always a thing. Right? When groups of people hang out, sometimes it's hard to, like, get a word in. Yeah. Especially if, like, the dynamic is new.

Speaker 2:

Yeah. And on top of that, we're, like we're hanging out with professional talkers. You know?

Speaker 1:

That's true. So Yeah. Our group is kind of good at talking. So true.

Speaker 2:

Yeah. It just becomes like it's I think it's extra more in that direction.

Speaker 1:

Mhmm. So you you've gotta be really, like, you've gotta be, like, really practiced or really wanting to say something to, like, say a lot in those contexts. Is that what you're saying?

Speaker 2:

Yeah. I mean, I I felt this way when I first started to meet Liz's friend like, Liz's friends from high school. Like, they're all married, but even their husbands have been part of that group for a very long time. Yeah. And when I first started hanging out with them, I was super quiet because there's just a rhythm to things and I couldn't, like, I couldn't think fast enough and I couldn't, you know, whatever.

Speaker 2:

But over time it got a lot better just through practice. Liz had this funny thing. So the reason I was in Maine is Alan is getting married. So his wife was having or his fiancee was having a bachelorette type of thing. So Liz went and they spent basically, like, 4 days in a cabin in Maine, and me and Alan hung out at his apartment.

Speaker 2:

And Liz came back and she's like, wow. I feel smarter because I just spent 4 days, like, socializing for 12 hours a day, and my brain just feels faster. I feel less slow. And, yeah, she's like, I think after COVID, all that stuff, that part of her life just reduced a lot. And she thinks it's literally making her dumber because it's like a part of your brain you you need to exercise.

Speaker 2:

And, yeah, she just felt like like just I don't know. She just felt I can tell, I guess, like, from her energy. Like, she just literally seemed smarter just from talking every single day for

Speaker 1:

Being in that situation, having to interact with other people.

Speaker 2:

Yeah. I definitely feel slow if I do them do that for a while.

Speaker 1:

It feels to me like I think I'm having thoughts in those moments, in those settings, where it's like I'm trying to figure out what I bring to the converse or to the to the you know what I mean? The what I bring to the conversation, what I bring to the group. What do I, like, what do I have to offer here? Because I don't really, like things don't just pop in my head that I wanna say out loud. Like, I it's like I lose that ability.

Speaker 1:

And I guess when I'm with people I'm really close with, things pop in my head constantly. But when I'm in a group like that, even a small group of people I would call friends, it feels like I don't have things popping in my head. It's like instead, I just think, what would I even wanna talk about right now?

Speaker 2:

Yeah. Exactly. No. I I totally get it. I think that is normal.

Speaker 2:

It feels like you're watching TV all of a sudden. You're just there to, like, observe.

Speaker 1:

Yes. That's a perfect description.

Speaker 2:

Yeah. But I think it's just practice.

Speaker 1:

It's just practice. Yeah. I think I'm more talkative when I'm really, I think I'm really confident in where I belong or my my place in a setting. Like, if if I go back to school or, like, any groups where I'm established, and it's not like I can only have one friend where I talk 1 on 1. I I know I can be in groups and be myself, but I think it's like I had to establish some kind of a a bearing.

Speaker 1:

Like, this is how I fit into this. Or maybe it's just repetition. I've just been around them enough, and now it's totally natural. I'm describing, like, very normal basic stuff, just like socialization 101. And I'm acting like I have insights here, but I'm learning things.

Speaker 1:

I'm 38. I'm learning.

Speaker 2:

Those are insightful. What it's not is autism.

Speaker 1:

Okay. It's not autism. I gotta stop saying everything is just autism. I'm like, man, I'm bad at everything. I'm probably just autistic.

Speaker 1:

I actually think autism is better than being normal, so I don't wanna shame anyone who's autistic. Just saying. Yeah.

Speaker 2:

You're claiming it. It's like you're not

Speaker 1:

claiming it. Yeah. No. I'm saying I wanna be autistic. I

Speaker 2:

hope I'm autistic. Social stuff is hard.

Speaker 1:

It's so hard. Let's talk about, so there's a ton of stuff that's happened, I guess, since we last talked so we could pick our pick of the litter. But I wanna talk about this whole open source thing, the Node 0.4. I I I it's just it's so fascinating, just to get this little window into a world that has existed for years in terms of, like, established open source maintainer, maintains lots of projects. Everyone in open source has interacted with this person and has opinions, but then something pops up that kinda, like, takes over the zeitgeist on Twitter, and everybody gets a peek all at once into this dynamic that's existed for a while.

Speaker 1:

Do you have thoughts on the whole situation? Had you bumped into this individual? Did you have already? Okay.

Speaker 2:

No. Okay. So so just yeah. Just for context, there was a, GitHub issue. There was actually 2 GitHub issues, I think, from what I saw, where this person who is, like, well well known, I guess, in the community, was adding a bunch of packages as dependencies, that were quite large.

Speaker 2:

Very, very large complicated packages that depended on a bunch of other packages to a project to make it support node 0.4, which I don't even know how old that is. Like

Speaker 1:

I have no idea.

Speaker 2:

10 years old. I gotta know. That that's forever ago. 0.4. And everyone's like, why are you doing this?

Speaker 2:

Nobody literally nobody has asked for this at all. And he kept, you know, explaining his reasons why, like, you know, backwards compatibility, blah blah blah. What cracked me up was Rich Harris was in there a bunch because it was a project that Svelte uses. And he was just like, like, what are you talking about? Like, why why are you doing this?

Speaker 2:

And I was very, very confused. And I I just found it really funny because, like, you know, Richard, his time is worth a lot in terms of, like, what he could be doing. Yeah. Looking at that, he probably spent, like, at least 2 hours, like, probably in the way of replying to this. And I'm like, this is so funny that someone could just, like, monopolize his his time like that.

Speaker 1:

Yeah. Yeah.

Speaker 2:

Yeah. And then it got posted on Twitter, and then a bunch of people started piling on. And then the the thread started being locked. And I think the interesting bit was there was some accusation of something because he seemed to be basically just for, like, very little reason, just taking default things and wrapping them in his own packages and then using that as a dependency. And people pointed out that he was part of some there's some company, Tide Lift, that, pays OSS developers to, like, follow certain security practices.

Speaker 2:

And based off of how much your package is used, you get you get paid more. So people were like, is that is that what because this makes no sense. Is that is that what's motivating you? So, yeah, that that situation

Speaker 1:

is pretty funny. I have I have so many different thoughts around the whole thing. Yeah. Just in rapid fire random order. First of all, why 0.4?

Speaker 1:

If you're gonna go back and you're gonna be all purist about it, why not 0.1?

Speaker 2:

I don't know.

Speaker 1:

What was the first node version? Like, why'd you stop? What was the change between 0.4 and 0.1 that you were like, can't support that. Those guys, they're in the cold. But 0.4, you're good.

Speaker 1:

That's just random to me that it's 0.4. Yeah. The other thing, I guess, like, the incentives thing, it's, like, clearly I mean, I I don't understand where the money's coming from for this Tide Lift thing. I don't understand that old business model. I don't get it.

Speaker 1:

But just assuming Just

Speaker 2:

assume it makes no sense.

Speaker 1:

It makes no sense, but you get money based on package downloads. Then, like, whether it's not, like I I don't like trying to, like, guess people's motives because you just can't. You can't know why someone's motivated to do something. But you're clearly incentivized. Whether it's your motive or not, you are incentivized to get more package downloads.

Speaker 1:

So it is kinda fishy on that angle. But the biggest thing for me is just, like, if the whole world, like, all of the Twitter mob is angry at you, there's probably something to that. It's not like, just Twitter being Twitter. Like, if everybody in GitHub and everybody on Twitter disagrees with you, I don't know. Maybe you're wrong.

Speaker 1:

And, like, also, why are we all using these packages? Why can't we just, like, not use them, fork them, use something else? Like, what I don't understand how this person has maintained so much power within the open source community, maintaining 400 packages. Why do people keep handing this person maintainership when he's already got 400 packages under his name? Like, maybe maybe not.

Speaker 1:

Maybe he finds someone else.

Speaker 2:

Yeah.

Speaker 1:

I don't understand that dynamic.

Speaker 2:

Yeah. It's it's weird, but I have seen this type of thing before. To me, it's almost like a hoarding. Like, I feel like there's this weird obsession to doing these things, of just, like, hoarding these very low value packages, to be honest. Like, it's just a there's, like, a history there, which is why they package it exists.

Speaker 2:

And, like, if you're building something new, you would never use any of this stuff. So it's just like this historical kind of clusterfuck of of stuff. Like, 400 packages is what I mean, I don't know what the actual number is, but 400 if it's 400 packages, that's like I don't use anywhere near that many across all my projects, like, nowhere near that many. And I probably don't even use a single one of those packages either. Yeah.

Speaker 2:

So yeah. It's it's just it's a Well,

Speaker 1:

directly or do you think you use them does SST depend on any of them transitively or otherwise? Have you done the check thing? There's, like, a check.

Speaker 2:

Yeah. I know. But I don't think I don't think we do because we

Speaker 1:

Well, now I just have to know.

Speaker 2:

Maybe not through Pulumi. We haven't checked well, because Pulumi might bring in a bunch of stuff. But Do

Speaker 1:

you remember what the thing was? Volta it was like Voldemort.

Speaker 2:

You see any of this fact.

Speaker 1:

Voldemort, open sourced the library.

Speaker 2:

What was even crazier is somebody in there linked some kind of solution to this specific person. I don't know if you saw that. Somebody built, like, a project that just swaps all of his stuff out.

Speaker 1:

Oh, really?

Speaker 2:

And it wasn't something so I was like, oh, did they just build this in React? No. They built this a while ago because this I guess, they they this has been a problem for a while.

Speaker 1:

This is like a whole subculture of people who know about this guy, hate this guy. And there then there's, like, the human element of this, because I I've now seen him on Twitter. I didn't know at first that he wasn't just on GitHub. And it's like, I don't know. He's got I'm sure he's got, like, a family and he's whatever.

Speaker 1:

He's a human. But, like, it doesn't matter if you're human. We're all humans. So, like, don't be a dick online. I don't know.

Speaker 1:

Don't be such a whatever he's being. Like, if he he's upset or, like, you're patronizing me or whatever and he's saying stuff on Twitter, like, everyone disagrees with you. So maybe just, like, bow down.

Speaker 2:

That's what's weird. It was, like, it wasn't a debate. It was, like,

Speaker 1:

a 100% person. Right? It

Speaker 2:

was like

Speaker 1:

Is there one person? That's what I'd love to know. If anyone listening to this knows a person who who sides with this individual and says, yes, this stuff is important because I'm on TC 39 or whatever, I would love to hear it. Because I haven't seen a single person come out and defend, and I'd love to know, like, is this person literally on an island? And then why?

Speaker 1:

Why be so staunch?

Speaker 2:

I have, like, a bigger thought about this backwards compatibility thing. I have, like, a very strong thought on this. I think that a lot of engineers obsess over backwards compatibility, and they hold it to, like, as, like, some kind of shrine. And it holds, like, a ton of things back, and you're actually a bad engineer if you're just, like, obsessively focused on it. It's like one of those things where it's technically correct.

Speaker 2:

Right? Everyone can agree it's good to be backwards compatible. It's easy to tell whether you're being backwards compatible or not. And because it's just obvious in those ways, people just a 100% optimized for it. It's like getting a 100% test coverage or something.

Speaker 2:

Yep. And it's seen as this, like, thing that you can't violate or you're bad if you break it. But there's so much like, it's like everything else in engineering. It's about judgment. Being infinitely backwards compatible is horrible.

Speaker 2:

And we have so many problems in the ecosystem because Yeah. There's just this engineering bias towards backwards compatibility. Like, yeah, it sucks when things break, but the world changes. And there's new ideas. There's new things that, can exist.

Speaker 2:

And if you're just constantly focused on backwards compatibility, what you end up creating are these you think that, oh, if we're backwards compatible forever, that means like we're bringing people along forever. But what actually happens is you have some kind of thing that's working and the world changes, and it needs to make this jump. It never makes that jump. So you end up just trapping all these people in this little bubble that can never make the jump to the next thing. And you end up someone else that ends up having to create a new thing instead of just, like, iterating on the old thing because the old thing is not evolving enough, and they get stuck in this, like, local local maxima.

Speaker 1:

Mhmm.

Speaker 2:

So, yeah, you see this with the CJS, ESM thing. Everyone is like Which

Speaker 1:

he commented on. Have you seen I don't know if you've seen his comments on that.

Speaker 2:

No. What did he say?

Speaker 1:

Somebody dug up some of his comments about it should like, ESM was a mistake, and it should everything just be CJS. That's the only way you can be safe and, like, accepting of all users. ESM's hostile. Yeah.

Speaker 2:

Yeah. Exactly. So so ignoring whether or not ESM should have existed, period. Let's say let's just take that for granted. Like, there's this new thing that ESM makes sense as a concept.

Speaker 2:

People keep shipping ESM plus CJS packages.

Speaker 1:

Mhmm.

Speaker 2:

And that, like, mode leads to so many, so many, so many issues because it's very hard to ship both of them together correctly. And tools will handle them well, and there's, like, confusion. And people keep just trying to ship both over and over instead of just being, like, we're not supporting CJS anymore. We're just moving forward to ESM. It's gonna be 1 or 2 painful years, but it's better than, like, 10 years of being stuck on both.

Speaker 2:

And some packages have done that switch, to be fair.

Speaker 1:

Well, yeah. Didn't, what's his name? Syndrome or the really famous other

Speaker 2:

big Synthes.

Speaker 1:

Didn't he do that? The first one. Yeah. I thought did he go ESM only?

Speaker 2:

I think so. I think he made some some shift and a lot of people were were upset. But what I don't get is there's older versions of the library you can still use that.

Speaker 1:

You can just still use it. Yeah. I don't get it. I don't get that. It's just the practical it's the lack of, like, touch with reality because the I think Rich Harris, somebody on the salt side of that PR discussion mentioned that they released this breaking chain where they didn't support all node versions, like, a year ago, and no one has raised a single issue

Speaker 2:

saying Yes. Yes. Exactly. Yeah.

Speaker 1:

Like, a year and nobody has an issue, then, like, practically speaking, you can stand on your correctness, like, the everything has to be more correct or that's the most important thing. And that I think that's the way this person I haven't said the name. I just don't wanna I don't know. I think everyone could figure out who this person is, but they sort of try to frame the conversation in the PR as like, yeah. I get that you're frustrated.

Speaker 1:

It's frustrating when someone values something and somebody values another. But it's not about who values what because there's there's, like, objective, you're not making good judgment. You can say I value correctness more than you and you value whatever more than me, but it's not that. It's you you just don't have good judgment, and that's okay, but you shouldn't be in charge of 400 NPM packages if you have that bad a judgment. And as an ecosystem, I'm not saying he should do something.

Speaker 1:

I'm just saying as a community, why do we keep handing this person more packages to maintain? And, also, why do we keep using these packages? Why can't we just I don't understand the simple question, like, why have we not moved off of some of these dependencies? And just fork them and maintain. I know that's, like, work.

Speaker 1:

Somebody has to maintain them.

Speaker 2:

Yeah.

Speaker 1:

Is that the problem? Is that all it boils down to is, like, nobody stepped up to just do the work?

Speaker 2:

Yeah. It's tedious, boring work, like, forking it and updating everything and then, you know, just just say MCI. It's all of that just stupid Yeah. Trivial, like, logistical work. It's better to not have to do that.

Speaker 2:

And, like, the the yeah. It's just weird. Like, I don't I just it's all this is so alien to me. Why would I want to maintain 400 packages? Like, not Right.

Speaker 2:

New stuff that's being worked on, just 400 packages that, like, barely are relevant and nobody should be using anymore.

Speaker 1:

Yeah. That that's when I start to, like, guess. I don't say it publicly, but that's when I start to guess at Motives. Like, I know the incentives are there for the the Tide Lift thing, but when when I learned that there's 400 packages under this person's direct maintainership, that's when I start assuming some things about you. I'm not gonna say it here because it's just I don't know.

Speaker 1:

I don't need to, like, attack somebody's character. But, like, there's a certain type of personality that would be like, I want to have as much control or as much whatever responsibility or ownership or surface area in this ecosystem as possible. I don't think that's just like I I don't know how to frame that in, like, a, charitable light, I guess, is how I would say it.

Speaker 2:

Yeah. I guess to go deeper into it like, I did have some other thoughts on some of it. Because, again, like, we're just judging based off of random messages that this person's posted. So we could be reading into this too much. But Yeah.

Speaker 1:

And I and, literally, I've only known of this person for, like, 3 days. So what do I know? Like, I Yeah. I'm sure I'm oversimplifying everything here, and I don't have all the back history. This person sets on the TC 39 committee or whatever.

Speaker 1:

He chaired it. I don't know. Stuff that's way over my head that I don't understand how browsers work or JavaScript.

Speaker 2:

Oh, you know what? What? Let let's talk about t 39. They're they're another example of what I'm just so tired of. Like, it's just the most bureaucratic

Speaker 1:

It sounds like.

Speaker 2:

That I get again, these things are framed as just objectively good. Oh, it's like an open committee with, like, everyone collaborating and, like, we're all deciding on a future. It sounds good, but what what it is at the end of the day is it's a committee that lacks any vision. If you look at certain proposals, I've just been stuck forever for the dumbest reasons. Like, great example is the the pipe operator, in JavaScript.

Speaker 2:

Mhmm. Clearly, a lot of people want it. I'm someone that extremely wants the pipe operator. I think there's, there's there's a lot of value in it. There's just been endless discussion and debate over how exactly to implement it when other languages have it in every flavor that you can look at, and they're all fine.

Speaker 2:

Just pick 1. But it's just like it's infinite because it it's a type of thing where there's, like, room for discussions, then infinite discussion happens. Yeah. Yeah. And then nobody, like, makes a call.

Speaker 1:

Fills the container like a liquid. Yeah.

Speaker 2:

Yeah. Exactly. Exactly. Exactly. So it's like, yeah, you can't make the wrong decision because not a lot of these things are permanent.

Speaker 2:

But you also need to have some kind of judgment. Like, literally, any one of these proposals would have been fine. I'm okay with literally any any one of them. And other languages there's a language that's successful with each each implementation. So you just you literally can't go completely wrong.

Speaker 1:

Yeah. The only thing wrong is just, like, waffling and making it drag out forever. Like, that's the only way you can screw it up.

Speaker 2:

It's been literal years for now. Yeah. So what That yeah. Go ahead.

Speaker 1:

Oh, I was just gonna say, what is an example? You mentioned other languages. What's an example of an ecosystem that gets this right? And how can the JavaScript community learn from that, and what would it take? Is it even possible?

Speaker 1:

Is it, like, voting for politicians? It just feels, like, pointless. It's never gonna change.

Speaker 2:

Other languages have BDFLs. That's really what it comes down to.

Speaker 1:

Big I don't know. What is BDFL? I was gonna try and guess.

Speaker 2:

Oh, benevolent dictator for life.

Speaker 1:

Oh, yeah. Yeah. Yeah.

Speaker 2:

Like, you take things like, like Python or Elixir or

Speaker 1:

And that works out. That's the best approach, is to have a individual.

Speaker 2:

It's the best approach when you're fortunate enough to have a talented individual. That's, like, rare.

Speaker 1:

Yeah. And then it's the worst approach when they're not necessarily

Speaker 2:

person moves on or, like, someone else takes over. Yeah. It's yeah. It's it's just like it's like a lottery. Like, some things in the world we're lucky enough that that lined up.

Speaker 1:

So is there any hope for JavaScript to, like, move towards something more like that or just less committee, death by committee stuff?

Speaker 2:

No. There isn't. But the the only thing I'm really complaining about here is the attitude around this stuff. We don't have a BDFL, but we have a committee. No one should be proud that we have a committee.

Speaker 2:

We're settling for a committee because we don't have a BDFL. But there's just so much, like, pride over all this bureaucratic stuff where it's like nobody wants that actually. We're so

Speaker 1:

There's like an air of, like, respect you must bestow upon the TC 39. Like

Speaker 2:

Yeah. Exactly.

Speaker 1:

That is, and I don't care. Like, I I'm sorry. I this just seems I feel like that that's not gonna make it through the generations. Like, I just feel like there's a generation coming up even more detached than I am that's just gonna be like, who cares? And how did they get around it?

Speaker 1:

I don't know how they get around it because they like browsers and stuff. Like, the TC 30 9 has a lot of power, right, in the sense that this influences browser road maps, I guess? Like, the teams on these browsers.

Speaker 2:

And he here's like a okay. We have an even worse situation. We actually have a we have a committee stacked on top of a committee because there's also this winter CG Mhmm. Group, which is not so t z 39 is working on JavaScript, and, primarily, they're concerned about the browser. And winter CG is all the server runtimes that are banding together.

Speaker 2:

So Cloudflare Workers, Bun is on there. I think Deno is on there. There's a bunch of them being like and and their idea is we wanna use web APIs for everything. Even though we're on the server, we wanna, like, take web APIs that TC39 puts out and, like, make sure that they work on the server. And we wanna all be compatible with each other so that it's not confusing for You

Speaker 1:

didn't say Node. Was that intentional? Is Node part of winter CG?

Speaker 2:

I I don't know if Node is part of winter CG. They might be. I just don't know. And what sucks about this is, they've arbitrarily attached themselves to another committee. T c 39 does not care about winter CG at all.

Speaker 2:

They don't care about JavaScript on the server. So they come up with APIs that are just stupid. Like, like, all the crypto all the new crypto APIs are async for some reason. And that makes sense in the browser where, like, literally everything is async because you want nothing to block the UI thread. Yeah.

Speaker 2:

This causes so much stupid stuff on the back end for the the fact that it's async. Like, everything from performance is just practical issues. It, like, pollutes your whole code base where everything has to be async, even things that like, crypto on the back end does not need to be async. But Winter CG's, their guiding philosophy is web APIs everywhere so developers can just learn one thing and use it everywhere, which I get, but it's stupid. Like, it's just not gonna work.

Speaker 2:

You're just not like, practically, you just can't build APIs that are good for browser and to the server. And on top of that, t z39 does not care about you. They don't care about your needs at all. So, yeah, it is always committees.

Speaker 1:

It sucks. And I guess, somebody in chat called out Jared Sumner with Bun. They they've definitely been, like Yep. Yeah. Some hope.

Speaker 1:

Well, I mean, just, like, his approach is, like, f at all, like, doing my own thing, but I'm gonna make it work everywhere. He's it's like the very free market approach I feel like Jared has taken. It's like, I'm gonna make something so good that it makes an impact. Is that is that accurate? Did I sum that up?

Speaker 2:

Yeah. And and he's part of TC 39, and he's always, like, yeah. I don't like, we're part of it, but, like, you know Yeah. They're renegades

Speaker 1:

of a bunch. They're not

Speaker 2:

really, like, betting their future on that. And and they do, like, they, like, try crazy things, and sometimes some of those ideas are bad and maybe cause pain across the industry. But

Speaker 1:

But it feels very anti bureaucratic. He feels like the opposite of, like, bureaucracy. Yeah.

Speaker 2:

Yeah. He he, like, just want his his thing is things should be simple. Things should be easy. Everything you can, like, rationalize your way out of that through all this, like, smart ways of thinking on paper. Yeah.

Speaker 2:

But if it results of things being stupid for the end user, like, it doesn't matter how smart it sounds. Like, it was just you did a bad job. Yeah. Yeah. Yeah.

Speaker 2:

I think that a good guiding principle to have is you want your stuff not to surprise people. Like, you don't want any behavior that's surprising. Like, when someone tries to use something, it should behave in a certain way. Even if their expectations are technically wrong, if the expectations are generally applied generally, people a lot of people have that expectation, you should just make it work. It doesn't matter that their expectations are off.

Speaker 2:

And it's very hard as an engineer like, it's hard to find engineers that think that way, especially engineers working on, like, systems level stuff like BUN. So I'm I'm hopeful for that because they're they're at least shaking things up, and they're like this counterforce.

Speaker 1:

Yeah. Could can we bring can we bring up the can we bring up the thing you've talked about doing for years? And I know you're not gonna be I'm not trying to put the pressure on you to be, like, the chosen one and be the BDFL of JavaScript. But you have talked about this idea of, like, stamping like, having a a body that, like, stamps not a body. That sounds way too bureaucratic.

Speaker 1:

Just having, like, a company or an official stamp on packages that are good with a capital g, and all the Yeah. The bad ones cannot have that stamp. And it would just help the ecosystem say, oh, this package I'm comparing 2 packages. 1 of them has the stamp from smart people who looked at it and understand that it's packaged correctly. It doesn't do stupid stuff like the AWS SDKs.

Speaker 1:

And, like, it's gonna generally be a better choice than the non stamped one, like the seal of approval, the DAX seal of approval, for lack of a better word. Do you still consider doing this? Because I would love it. It sounds so nice.

Speaker 2:

Yeah. Yeah. I think this is something that I still want to do. And what's funny about this is, it'll upset people because someone is, like, claiming something. And I'll get a bunch of technical, probably, arguments about these things.

Speaker 2:

But the fun part is it's not about technical details. It's actually all about taste.

Speaker 1:

Yeah. It's taste. You have good taste.

Speaker 2:

That's all it is.

Speaker 1:

So I already do this. I already come to you when it's like I need a a package for this. What's the best what's the right one? Sometimes I don't have to come to you. I just look at your repos.

Speaker 1:

It's like, oh, he uses, what's the one for time that you use?

Speaker 2:

Luxon.

Speaker 1:

Luxon. So, like, I just assume that's the best one. If DAX uses it, it's probably the best one. That's I already do that because I know you have good taste. You're good at figuring this stuff out.

Speaker 1:

You're a taste maker. You saw Drizzle very early. You're you just you know when something is, like, this team knows what they're doing, and you can kinda, like, look at a repo and I I don't know what you're looking at, but you can, like, figure out really quick, looking at their package JSON and all their other stuff, that they either get it or don't, and that's good taste. And that's such a good point. So few people have good taste.

Speaker 1:

So we need someone, you, with good taste to do this thing for us as a community.

Speaker 2:

Yeah. I I would definitely like to do that. I think I see a pathway to to start doing more of that stuff, especially with how the ecosystems evolved. I think, yeah, it's funny because, like, the the taste thing is it's interesting because, like, it sticks out when you, like, run into another team that fits fits. Like, the thing I was describing about the BUN team, they're so user focused, and certain teams are that way.

Speaker 2:

There's a lot of projects where when you start talking to the maintainers and you're like, hey, I ran into this issue, they start to give you they start to talk about, like, some grand theory Mhmm. The, like, grand unified theory about why it is that way. Yeah. Versus being embarrassed. Nice.

Speaker 2:

And there are certain teams that are just just always embarrassed, and they're like, we gotta figure that out. And that's, like, 90% of it. The packages speak for themselves when they when they operate that way.

Speaker 1:

Yeah. Okay. Well, I'm gonna I'm gonna keep checking in with you. Maybe next year. We'll just every year or so, we'll see how the DAX bandwidth is looking.

Speaker 2:

You know what? Another example of this is, Remeta. I don't know if you saw that. You said everywhere.

Speaker 1:

I use it everywhere now too because I saw you use it everywhere. It's like a lodash replacement. Right?

Speaker 2:

It only needs to exist because the stupid pipe operator that is not getting passed. Is

Speaker 1:

that t c 39? Is that where is that Yeah. Fit into the bureaucracy picture? T c 39?

Speaker 2:

Slowly, slowly, slowly inching forward in t c 39. And, yeah, there's just been years of pain because we don't we don't have that. And it it there's just so many cascading issues. I talked about this the other day where in JavaScript, we just keep attaching methods to prototypes. We're like, oh, let's add, like, a group by to array.

Speaker 2:

Oh, let's add, like, a sort by to array. Let's add a min. Let's add a max. And then it's all of a sudden we're like, oh, shit. We forgot to add it to iterators.

Speaker 2:

Okay. We need a new proposal. Let's add group by iterators. Let's add sort by oh, no. Like, object objects are iteratable too.

Speaker 2:

Like, how do we it's it's just like we're, like, slowly just adding more and more it's like it's like end things. Right? Like, you add one thing, you have to add in places, and it's just like this infinite slog. And each time you go through the whole bureaucratic loop. Elixir works completely differently in this specific zone.

Speaker 2:

Because they have a pipe operator, your functions are independent of the thing that they operate on. So if you implement a sort function, that's standalone. You can pipe an object into it. You can pipe an array into it. You can pipe an iterator into it.

Speaker 2:

Anything that's iteratable, this sort function can do. So you just have this nice standalone collection of functions that can operate on these things, and it works for everything. It's because of the pipe operator. It's a lot more natural to do it there. So, so short of that, I use Remeta.

Speaker 2:

Everyone else uses Lodash. Like, Lodash, Lodash, Lodash, blah blah blah.

Speaker 1:

Yeah. Yeah.

Speaker 2:

Why do I use Remeta?

Speaker 1:

Why do you

Speaker 2:

For two reasons. 1st, Lodash's ESM story was a mess for a very long time. It did not tree shake properly. They have a separate lodash.es dashes package now. But, like, they're, again, straddling that weird, we're trying to do both thing.

Speaker 1:

Mhmm.

Speaker 2:

2nd, Remeta is lazy for all operations. So when you do if you have, like, a chain of things where it's like, I have an array, filter map take 3, If you, like, do that do that set of things, it'll just do those it'll iterate 1 by 1 till it meets your final condition. It won't go through the whole array multiple times. Yeah. So and just little details like that, like, I only just spend a lot of time being like, I'm gonna spend a week looking for a good utility library like this.

Speaker 2:

You're just not gonna arrive at that level of decision. Yeah. Most people just don't have time to do that, which is why this kind of stamp of approval thing can help.

Speaker 1:

Yeah. It would be great. Just picture in a little badge on the repo where it's, like, it got a little seal. You just know it's a good option. It would help me it'll save me a ton of time.

Speaker 1:

I mean, I can already just look at your repos, so I guess I should

Speaker 2:

at least maintain the list of good packages.

Speaker 1:

Just just have a page. Just literally a web like, a page on your that's, like, here's

Speaker 2:

a list of good packages.

Speaker 1:

Yes. Just do that, and then I can just go to that page every time if you keep it up to date. We could even put we could push pull requests to it as a community. People could be like, look, Bax keeps using this.

Speaker 2:

I can reject them.

Speaker 1:

Yeah. And you could reject them. That's funny.

Speaker 2:

Did you see the state of JavaScript stuff?

Speaker 1:

A little. I don't I don't keep up to it enough. Like, every year, it kinda comes and go. It's like advent of code. I always think, like, I'm gonna get into it this year, and I'm gonna really read it and do the survey or whatever, but it's just never a priority at the moment.

Speaker 1:

I don't know. What tell me, what what came out of it? What were the big takeaways?

Speaker 2:

I have a little quote in there, actually. They asked me to submit, I just plug Replicash as if I don't do that enough.

Speaker 1:

You famous. Oh, did you also plug linear or just Replicash?

Speaker 2:

No. Just Replicash because it helps you build things like linear.

Speaker 1:

Oh, yeah. Yeah. Right. Oh,

Speaker 2:

that's funny. Like, who

Speaker 1:

did the the state of JS chancellor reach out to you? Like, how did you get a quote in there? Yeah. Yeah? Yeah?

Speaker 1:

Yeah. They're just like, hey, Dax. Like the

Speaker 2:

There's there's, like, several quotes on every page just asking people, like, what's your favorite package this year or something. And some interesting things

Speaker 1:

to Can you DM me this? I wanna see it. Or I can just go looking for it, I guess. But Native JS. We'll see your files.

Speaker 2:

I think the Go ahead. The main it's fine. Every time someone this happens, like, all the framework authors post, like, a little snippet being, like, we're doing so great. Because they they find, like there's always something in there that

Speaker 1:

There's some positive angle. Yeah. Yeah.

Speaker 2:

But overall to me Alexa Gatsby. Sorry.

Speaker 1:

There's no positive spin.

Speaker 2:

Overall, it felt very negative. Like, zoomed in, like, there were certain thing. Like, I think Astro had some pretty positive results, but not like crazy positive. Right? And Solid, like, pretty much stayed where it was.

Speaker 2:

Overall, it seems pretty negative. Like, everyone seems, like, really down on the ecosystem. A lot of stuff things people were interested in before and no longer interested in.

Speaker 1:

Really?

Speaker 2:

The tension's not looking good. Like, when frameworks are young, they just tend to do well every year just because they're, like, growing. Some of them already seem like they're past that just within 1 or 2 years. React like, the interest in React is so far down. There's definitely a moment that started a couple years ago where we're like, okay.

Speaker 2:

A bunch of disruption and innovation is gonna happen. Obviously, those are chaotic periods. Yeah. It's the sentiment I get is everyone's sick of how long it's taking, and they just wanna, like, go back to, like, getting stuff done with something stable and stuff not changing.

Speaker 1:

Does does the does the state of JS kinda reflect just, like, more React sticking with React Homerism or something or no?

Speaker 2:

Not exactly because React is also part of all this change. Right? Like, with how much Nexus changed and how

Speaker 1:

Oh, yeah. The new React stuff. Yeah. Sure.

Speaker 2:

Everything is just in this, like, half state. Like, app router is still, like, so broken and so many things don't work. And people are, like, now even questioning, like, is this all worth it? You know? Like, we have promises will be worth it.

Speaker 2:

You only have a certain amount of time to deliver on that promise. Right? Like, people can only stay in limbo for so long. So that that's the feeling I've gotten. And other frameworks, like, Solidstar has taken a very long time, and it's, like, just just finally released, and it's still very early.

Speaker 2:

So Yeah. Yeah. I think everyone's taking everything's taking way longer than expected.

Speaker 1:

Well, now I actually wanna read the report. I wanna see I wanna see if this is like a jaded Dax point of view and, like, you're just seeing everything a certain way or if if I see the same thing, if it feels that way reading it?

Speaker 2:

It wasn't just in the report. So I kinda felt that way from the report, and I talked to Fred and Ryan Carnado Carnado about it. And everyone just feels like this these aren't, like, good numbers. Yeah. People aren't support.

Speaker 1:

People aren't, like, super enthused this year like they were in years past. Yeah. There's some hope dwindling and optimism fading. Yeah. Interesting.

Speaker 2:

And it's it's funny because there are it's almost like there's a industry wide mood, And Yeah. There's moods where people are open to certain things. There's moods where people are, like, more closed off, and you have to, like, deliver your your thing

Speaker 1:

Yeah.

Speaker 2:

To line up with that. And sometimes you just get unlucky.

Speaker 1:

It's interesting, like, when you say all this, and it makes me think of some of the Twitter sentiment shifting towards the DHH and Rails, kind of like, Rails is back. Rails was never gone. Why'd you all get so complicated? That's kind of been the mood on Twitter, which I just largely ignore as, like, it comes and goes. The mood does.

Speaker 1:

But if it's something like this, if it's showing up in the state of JS, I feel like that's a little more significant. If, like, somehow, this, like, we're tired of all the, quote, unquote, innovation and complexity, If that's kind of, like, seeping into this broader I I would assume this survey kinda hits a larger swath than just the Twitter crowd. Right? Or is it largely still

Speaker 2:

Yeah. No. It it I'm sure it hits a large I mean, I think I think there was maybe one question there that was, like, how did you end up on the survey? Oh, yeah. And a large percentage, like, Theo was, like, number 2 or something.

Speaker 2:

So it it might it might still be biased just, like, in the small bubble. But, yeah, I mean, just if you if you just assume that it it's a larger swath, I I do think it is,

Speaker 1:

Yeah. Do do you feel like that's kinda lines up with the Twitter sentiment of, like, a shift toward going back to old times and simpler times? And that all sounds familiar.

Speaker 2:

Yeah. And, like, I think rotating back to rails is, like, a little bit extreme, but just take, like, your own experience. Remember pages? Oh, yeah. Router?

Speaker 1:

The pages. Yeah. Pages? Mhmm.

Speaker 2:

Like, you you built a lot of stuff on there. I don't think you ever really had a bad time. No. Yeah. Even today, you can still use it, and it's probably one of the better ways to build something like that, in JavaScript.

Speaker 2:

So Yeah.

Speaker 1:

I've I've actually had real experiences with the AppRider now that I can speak intelligibly about, like, the pains. Yeah. And, like, the promise. I mean, I see the the pitch. Like, I see, like, it'd be nice if but there's just implementation of it and the reality of it today is is pretty painful, which I don't wanna go into all of it right now.

Speaker 2:

Do you see web dev Cody's tweet about, the comp the composition tweet? No. You know how, like, RFCs are all about composition and React's like, we're always about composition? So he tweeted, like, you don't understand Next and React. They're all about composition.

Speaker 2:

Oh, wait. You can't export a reaction. Oh, wait. You can't export anything. Oh, wait.

Speaker 2:

So he's got, like, all of these just things where, like, it's yeah, if you look at the one narrow lens, it looks composable. But in practice, it, like, is the opposite in a lot of ways.

Speaker 1:

Yeah.

Speaker 2:

So I think this is reflective of the sentiment. I think and actually has pages. They got to a pretty good place earlier than everyone else, And that kinda remakes came to that setup later.

Speaker 1:

Yeah.

Speaker 2:

And I think that was, like, peak that was at the peak of something. And ever since then, it's just been downhill. It's been 2 years of there's a weird weird zone. And, yeah, I think people are tired of it.

Speaker 1:

Yeah. Interesting. I'm definitely tired of something. I'm tired of something. It's like, I think the the, like, the Local First stuff, super interesting the way you build, like, productivity apps.

Speaker 1:

I'm I'm finding myself, like, wanting to build something that would use that paradigm, but I just end up building all these things where it doesn't make sense. Like statmuse, it doesn't make sense for us. And I just wish there were such a clear picture. I feel like it's such a clear picture in 2024 how to build an app, like, that way

Speaker 2:

Yeah.

Speaker 1:

With Replicash or something else. It just feels so, like, well, like, defined. You don't have a million options. It's like Yeah. There's a way to do it.

Speaker 1:

Do it. And I feel like on the other side with sites or more, like, page driven apps or websites, whatever. Like, the other side, like, stat means where it's like Wikipedia, it feels so up in the air. Like, you should be server generating this part. You should be not server generating this part.

Speaker 1:

So I don't know. It's just a it's a lot.

Speaker 2:

It's funny. Someone in the in the chat was like, I'm surprised Zach didn't mention 0. I was just about to mention 0.

Speaker 1:

Oh, yeah. Replication 0. Yeah.

Speaker 2:

I am so excited for this. It's gonna like this stack that we're gonna put together with 0 is gonna look so simple and easy compared to whatever the hell is going on in the other side of the world. Yeah. And it's gonna be able to do almost all the same things. Things are gonna be server rendered, and then once they're on the client, everything's gonna take over.

Speaker 2:

Yeah.

Speaker 1:

Is this is there a world where that's just for everything, where we don't have to make a decision and it's like that

Speaker 2:

works for everything? I think

Speaker 1:

so. Okay.

Speaker 2:

That's my goal. It's it's so crazy. Like, you can basically, the idea with 0, like, specifically with React, is you stop passing stuff around in props. Like, every, component just writes a query that it needs. So if you have, like, like, a component that renders a user, you don't, like, pass in the whole user object as a prop.

Speaker 2:

You just write, like, a query. Like, you pass in the ID, and you just write a level 0 query. Yeah. And it doesn't matter if it's all local. So it's just gonna fetch it locally instantly, and it's just gonna work.

Speaker 2:

So every component is super self contained.

Speaker 1:

This was the promise of the RSC stuff. Right?

Speaker 2:

Right. Exactly. But you need a really good data layer to actually deliver on that promise of RSCs because your data layer probably can't handle, like, these granular queries

Speaker 1:

Yeah.

Speaker 2:

Or Replicash can. Yep. When it's being rendered on a server, those queries just hit your database, but they get rolled up. They get hoisted properly Yeah. Into, like, a into, like, a batched efficient query.

Speaker 2:

So everything gets server rendered. You just define your data right next to where you use it, and then it's all local first after. Like, that's that's freaking crazy. Like, it's gonna be it's gonna be so good.

Speaker 1:

That's the dream. When when is this available? Is it available now? Can we start using it? When is the DAX repo example gonna be out there?

Speaker 2:

Probably in the fall.

Speaker 1:

Okay. So you'll have something out there that what are you gonna what are you gonna are you gonna do it with Radiant? Or what are you gonna do? Yeah. Yeah.

Speaker 1:

Okay. Yeah.

Speaker 2:

Cool. So so we're working on radiant in a way where we're assuming 0 Will be ready.

Speaker 1:

Yeah.

Speaker 2:

Yeah. But there's some little trade offs with it that I didn't like making, but whatever, it's worth it for this bigger thing. But yeah, like, I'm really excited about that. So the guy that makes, Tomaguie I don't know if you've seen that library. Mhmm.

Speaker 2:

But he's working on, like, a meta framework basically with 0 at the core of it. And it's not only gonna be for web, it's gonna work across web, React Native, and everything. So you're literally gonna get, like, server rendered, local first, web app. Also, all that stuff will work in React Native. Like, it's like the ultimate thing to do everything.

Speaker 1:

It sounds amazing and ambitious.

Speaker 2:

Yeah. That

Speaker 1:

sounds big, but awesome. I mean, I'm very excited. Tomaguie was successful. Right? I mean, like, that was a big project.

Speaker 1:

Yeah. Because clearly this guy knows how to ship stuff.

Speaker 2:

And and he worked at Verso, and he's, like, been very he, like, left in a pretty salty way. He's been, like, not into everything he's been doing.

Speaker 1:

Interesting. So that makes you like him a lot? Of course.

Speaker 2:

Because he

Speaker 1:

I have to pee really bad. So this could be a super abrupt ending. There's no way to, like, trail this off. I just have to pee, and it's been an hour, so I feel like we should end the podcast. Is that too abrupt for you, Dax?

Speaker 1:

Are you okay with this arrangement?

Speaker 2:

No. I want you to pee your pants.

Speaker 1:

Okay. Yeah. That sounds great. It's been it's been good. Alright.

Speaker 1:

Alright. See you, Dax. See you.

Creators and Guests

Adam Elmore
Host
Adam Elmore
AWS DevTools Hero and co-founder @statmuse. Husband. Father. Brother. Sister?? Pet?!?
Dax Raad
Host
Dax Raad
building @SST_dev and @withbumi
Open Source Drama, Streaming Productivity, and the State of JavaScript
Broadcast by