Brian: PodRocket is sponsored by LogRocket, a front end monitoring and product analytics solution, which is to say, it's not really sponsored by anyone. It's sponsored by us, LogRocket, and we're giving it away for free. The podcast is free. The product is not free. There's a free trial. We could split hairs about whether or not that's free to you, but anyway, that's it. There are no more ads. If you're interested and you want us to know that you came from the podcast, please go to logrocket.com/podrocket. If you don't care, logrocket.com works just fine. Thanks. Brian: Today, Ben and I talk to Shawn Wang, better known as Swyx, about all kinds of stuff on this episode. It's kind of difficult to summarize. It's just a conversation, but I asked him things like, "How would you describe what you do?" His answer was infinite learning and infinite building. We talked about his time and experience as moderator of the React JS subreddit. We talked a little bit about Medium and why we don't like it. Developer relations, how you scale that. Just really all kinds of stuff. I really enjoyed the conversation and I hope he comes back. I hope you enjoy this episode. So let's get started. Brian: Hey, with me is Swyx, Shawn Wang. We're going to call him Swyx because that's his name. How are you? Swyx: That's how I roll. Brian: That's how you roll. Swyx: Thanks for having me. Brian: It's great to have you we're psyched for you to break the news on PodRocket. Swyx: Yes, I got the scoop. Brian: You did get the scoop and you said nice things about it. It was doubly pleasant. Swyx: You actually made a really good couple of interviews and I was very impressed. I was like, "Wow, this is quality that I come to expect of LogRocket's blog, and now you're bringing it to podcasting. That's great. Brian: Thank you. We are by no means professionals. Maybe talented amateurs. I feel like we're getting better as we do it, but that's really not that uncommon. Also, is it 2:00 in the morning where you are? Have you just switched your schedule altogether? Swyx: It is 2:00 in the morning, but I am working East coast, not West coast hours out of Singapore. And that means I start work at roundabout midnight and go till 8:00 AM. It is what it is. Brian: So you'd have switched to your whole... How is sleeping? That seems like... Swyx: Yeah, I sleep during the day. I don't know what the sun is anymore. I actually just did a workout at 9:00 AM, which made me feel like a high achiever, because I'm in there with like all the really committed fit people, and then there's me. I'm doing a workout at the end of my day. Ben: Honestly, you probably get more hours of daylight than we do because... I get up. It's kind of dark. I work all day. And then by the time I'm ready to take a break from working, it's already darker, but I feel like at least you probably get a couple hours after you're done working at 8:00 AM [crosstalk 00:02:37]. Swyx: We're at one degree North of the equator, so we get just by default more hours of daylight, especially during the winter, than you than you do. So I think we should normalize, especially because of all working from home, just taking a walk in the middle of the work day. If you got nothing on, just go take a walk, get some air. It's healthy. Ben: It's probably easier when I imagine it's a bit warmer where you are than the [crosstalk 00:02:59]. Swyx: It is. I forgot. Yeah, it is cold. Ben: But yes, it's still a good idea. Brian: I just stick my head out the window and that's good. Oh, it's 20 degrees Fahrenheit. I don't know what that is in Celsius. It's cold. There's a million places we could start. I guess my first question is if someone asks you, what do you do, how do you describe yourself? Because you do a lot. It's not that I'm unclear on the things that you do, but I don't know a word for it. Swyx: Yeah. I call it infinite building, and it's somewhat of an aspirational term. It's a twist from Reid Hoffman's term of infinite learner, someone who's never done learning. My only problem with the infinite learner moniker is that what's the point of learning if you don't put it to practice? So actually it's more about the putting things to practice than it is about learning for me and you'll learn on the job. That's what I think about. And then the domains that I'm currently thinking about is developer tooling and developer communities, because I think those two make up the developer experience that wraps around any products, language, framework, company, whatever. And it so happens that my career has fallen into working on these things. So I think that it's my thing for now. Brian: So when you start thinking about saying like Clubhouse, for example, is this just a personal interest that you're just interested in how that technology develops or where does that fit in in the model that you just described? Swyx: Clubhouse is a narrative violation in the sense that it doesn't fit the trends that I thought made sense. So when something is successful and it doesn't make sense, I'm very obsessed by it. Some people would just outright dismiss it, ignore it, or hate on it publicly. Those are fair reactions, but then I'm always open to thinking that I'm wrong or I could be wrong. So that actually made me write a blog post about this. So the context of this is I actually wrote a blog post basically saying why Clubhouse will fail, and I listed the reasons, and then I saw my reasons once I wrote them down, and I took a walk. Again, very good for health. Swyx: And came back and decided that all my reasons were crap. Then I did a complete 180 and said Clubhouse will be successful for the reasons that I stated. So I'm very interested in products. I'm interested in startups. These are all just hypotheses on how humans behave, and the closer a mental map we can have on how humans behave, the more successful we will be generically in life. And I just think it's an interesting thing to study in general. Like sometimes we behave counter to things that make sense. We are more emotional sometimes than rational and that's a legitimate behavior, and we should respect that. Brian: But I feel like at least at LogRocket and probably a lot of other similar companies, we're super logical. And that makes sense. That's how you build products quickly and build good products. As the person who's thinking the most about content, for example, I tend to think emotionally a lot. Does the audience care about this? Is it going to annoy a significant subset of the population, and do I want it to? Sometimes I do, but there is room for it. I guess the question is what are the percentages. Is it a 50/50 split between emotion and logic? Suddenly we got really Star Trek very quickly and that's not [crosstalk 00:05:58]. Swyx: Very Star Trek, yes. So just to riff off that. I definitely run myself on like a very improvisational thing. Someone says something and now I'll key off of it rather than stick to any plan. I don't know if you've heard of Thinking Fast and Slow by Dan Kahneman, but he definitely divides things up into system one and system two thinking, where one's the subliminal fast reflex, instinctive emotional element, and then the other is the logical brain, the one where you actually process all the reasons, the pros and cons, and weigh them rationally and then arrive at a decision. And actually it turns out that it's probably closer to that 80/20. 80%. a lot of the things that we decide, that we think we know, we actually decide on a very emotional reactive basis. And then we're very good at back filling, back rationalization. We'll make up a reason why we believe what we believe rather than weigh the pros and cons and then arrive at our conclusions. Swyx: By the way, that's exactly what I did for my Clubhouse essay. I decided that I didn't like Clubhouse. I therefore decided that it would fail. And then I made up a bunch of reasons. And it took a lot of effort and a little bit of self humiliation because I publicly committed to saying I'm going to publish this post saying why Clubhouse will fail, and I tweeted that. And then two hours later, I was like, "No, I'm wrong." That's a very minor public commitment, but even that, that took me a while to come to terms with it, to contradict myself and change my mind in public. I think it's a good exercise, and I just think it's a way people behave. We should respect that. Even the way we make tech choices, it's a lot of non-conscious stuff going on in our heads. Brian: For me, when I looked into Clubhouse, I decided that... You said you didn't like it and you said it would fail. I decided that I didn't like it so that probably means it's going to succeed. That's usually how it goes. And then you're right, then I started to go looking for reasons why. And I found a lot of GDPR issues. Lots has been written about that in Clubhouse and how it's perhaps not great. I don't know the veracity because I haven't gotten an invite for Clubhouse and I haven't sought one out. So maybe I don't know. But you know what, the other thing is that for sure, when we get, say articles submitted that are supposed to be persuasive, lots of times it's clear that they've come up with the argument before they've come up with the evidence. Brian: I'm interested in talking about content for developers. You're an interesting case, because you spend time making content for developers, obviously. You've spent time moderating content for developers, which I'm super interested in that. You're not still a moderator for the React subreddit, right? Swyx: No. I served as a moderator for the r/reactjs subreddit going from about 40,000 people to about 220,000. And then I stepped down. That was about two years. It was a fun ride. But for me, my interest moved away from React and I didn't feel like it was genuine for me to keep hogging the spot when I could give it up for others. So my last act as a moderator was to appoint 40 moderators and add a bit more diversity to the mod team because it was all Asian and white guys living in the East Coast. So we added a bit more diversity there. Brian: When you scaled that subreddit, and I already... I know some of it because I watched it happen, but what are some of the policies that you put in intentionally to help guide that community outside of maybe just the standard Reddit rules? Swyx: I actually was reviewing the rules that I made. The moderation powers are very limited on Reddit. You can only remove content. You can't really positively promote something. Your vote counts the same as anyone else's vote. There's no super vote. You can pin stuff, but that's a very limited functionality and there's a lot of competing space for that. So really it's more about just keeping hate out, and developers can get really, really upset when you do that. But then you can also get in really inane arguments about frameworks, and we were are framework subreddit, and the biggest one. So it was a challenge. Actually the whole reason I got the moderator job was because there was a framework war going on inside the comments and Dan Abramov from the React team saw it, and he was like, "Hey, next time you see this, you should lock it down." And I was like, "I can't, I'm not a moderator." Swyx: And then he just goes away for like five minutes and he says, "Now you are." That's how got it. It wasn't an application or anything. But he trusted my judgment. So reducing framework bashing, and then also deciding things... Weird policies, like what happens when someone posts not safe for work apps, but made in React to the React subreddit. What happens then? Because this is a professional setting, but also not 100% professional because of social media, and it is legitimate technology made... It was like open source that you could go see the source code and everything. It just happened that the content used to be not safe for work. And that was a weird call. Swyx: We get that once a year. And for those interested, the call that I made was that we treat everyone like adults. Reddit has functionality for flagging not safe for work posts, so just flag your post is not safe for work, and if you don't like it, turn that filter on and you won't see it. And those who don't mind can see it. So we try to be a little bit sex positive in that way that we're not prudes. But I got some flack for that. You're going to make some people upset when it's 200,000 plus people. And by the way, 200,000 plus is the people who are actively subscribed. There's probably two to three times more who are completely passive who just happen by on any given day. I have the stat somewhere, but it's in the millions, the monthly active visits. It's a tough challenge. Swyx: I think that's the negative stuff. The rules that you make is do not do X, do not do Y. And then the positive stuff is all the initiatives that you can take. So I started the monthly job board, the monthly reverse job board, who's available. And then I also started at the beginner Q&A. And the whole goal of that was to have a central space because the problem with a large community as well, you get a lot of beginners and some experts, and the experts are what makes the community really compelling for the people who are beginners and intermediate, because they show you some depth to what's being learned. But just the sheer number of beginners are always going to outnumber everyone else. Swyx: So how do you contain and figure out the balance? You only have top 20 posts every day and it's going to be a mix of beginner and advanced content. You need a way to contain the beginner questions. So basically I just made the beginner thread and just said... It was very obvious where to put your questions if you're a beginner. I made it when I was not so certain in React. So I basically just made the promise that I would answer every single question. Some months that would work out to about 500 questions and answers in that thread. But in the process, you get really good at answering everything, and you also get a lot of content ideas, because you can see the same questions pop up every time. So you actually see a lot of instructors snooping around in a thread and going like, "Here's my answer to that," and it's a blog post or a course or whatever, and that's great, because [crosstalk 00:12:39]- Brian: All of us are nodding our heads as a podcast. We're all like, "Yes, that is correct." Swyx: I like it. It's part of my whole philosophy on learning in public and I try to encourage others to do it as well, but most people don't take me up on it. That's just the way things are. But the ones that do, I really support them. Brian: I remember when that particular subreddit was clearly growing and I was thinking like, "Okay, now I'm seeing fewer articles show up on the front page and maybe more discussions or more questions," which seemed like a better balance. From a selfish I my publication started suffering because we see less posts. They would either get removed or... Swyx: Why? Brian: I don't know. I never understand why. In each subreddit, and this actually will lead up to my next question about niche communities, but each subreddit has its own moderators and therefore its own rules, but it would drive me crazy. I would see, and it wouldn't necessarily be me submitting, especially... Maybe in the early days, but now that we thankfully... I'm so grateful that the people come and read our blog. But when we were trying to sort of get out there, we'd get a post that would get like 50 up votes and then it would get taken down because we submitted it. Technically it's against the rules and I understand that, but on the other hand, the community found it really useful and up voted it a lot. So you're stuck in a weird spot. Swyx: I'm not sure it's against the rules at all, even. I've been generally pretty supportive of that stuff because the rules actually read that it's not okay to be a company accounts that doesn't participate in the community. This is what it actually says. It's okay to post your own links, but it's not okay to only post your own links and not interact, because the whole point is to have a community rather than just have a bunch of bots posting things automatically from an RSS feed. Brian: No, I get it. It is a little tricky and there's no... You and I can talk about this now, but there's no way to engage Reddit in that way, because I might say, at least in LogRocket's case, the authors are the community. They're the ones writing it. They're the ones writing these posts, and we don't... We weren't spamming every post. But I have since moved on that. I'm at peace with it. Because again, it's so hard to talk to each different one. However, I'll move on. Brian: Kate and I talked to Cassidy Williams a few weeks ago and I asked her where do you think things are going in terms of... I don't know that I actually brought up communities. I'm sure she did because I think she's smarter than I am. She was talking about, I think, what's really important or what will happen this year is niche communities. And this is my interpretation that maybe some of these communities can get unwieldy and maybe the React subreddit was like that. If it's 200,000 people... I mean, it is the most popular framework, so... The questions I'm leading up to is do you agree that niche communities are on the up or they just are supplemental? I don't mean to pit the two of you together, sorry. Swyx: No, I mean we're friends and I appreciate everything that she does. I just don't think it's a new thing. It's always been a thing. Niche has always been a part of the internet. Ever since, I don't know, IRC or Usenet groups. We're just inventing different forms of niche communities, but they always exist and there's always a need for them, and there'll always be a need for broader broadcast social media. And the reference that I will send people to on this topic is Ben Thompson, who writes Stratechery. He wrote a post about this called Social Media 2.0 where he actually made a case for why both of these things should co-exist. Why there is a broadcasting like Twitter, and then there are focused communities like Reddit or WhatsApp groups or Telegram groups. Those are niche communities too. I have my own discord group for my book and that's a niche community and people are more free to express themselves in a niche community. Swyx: This is the pitch. On the broadcast medium, you're your whole person. Everyone can see what you say. There's no topic categorizing. It's just a feed of everything. So it's up to you on like who you present yourself to be. Whereas a niche community, everyone's there for a certain purpose. And I don't care your political alignment, your religion in that niche community. I should not care [inaudible 00:16:37] in other contexts, but we can be completely opposite in every aspect of the spectrum in a niche community. But as long as we're all fans of football or whatever, we can talk football in that niche community, and that's great. There's a strong place for that. I think both should co-exist. I don't think that this year is anything special to that. There are a new breed of community promoters online on Twitter, but they've always existed. And I think companies should leverage niche communities. I think more companies should be building and intentionally focusing on community. But it's nothing new. Brian: I want to double click on a new breed of community promoter. I don't know what that is, and I want to hear you say it. Swyx: It's people who are selling you the idea that you should build a community, and here's my $3,000 course on that. That's what it is. Brian: I'm going, "Yeah, that actually checks out." Swyx: Did you know that people want connection? This is a new thing. Oh my goodness. We're discovering courses. Wow. Brian: I see it in Slack groups too, where it starts small and then there's the monthly subscription and then suddenly you get access to office hours and there's a whole business model just for that. Swyx: That's fine. You're paying for time and these people have valuable expertise and it's a way to monetize for sure. All I'm saying is this is not new. It has existed. It's useful. It's valuable. It's just not new. Brian: Checks out. I think I mentioned Dev.to as certainly not a niche community, but a great place to launch a niche community or at least to find one depending on the technology that you're interested in. But I guess now that I think about it, you could have done that before on a different site. You could have done that on Reddit. You could have done that anywhere else. Swyx: Dev.to made it really easy to blog and fill the space that Medium was not serving well. A lot of developers were actually blogging on Medium, and no self-respecting developer would blog on Medium today. That's my point of view. Very strong. Yes, I know. But it's just, they clearly have no respect for the reader, so let's actually move to a site that does. I use them for my blogging as well. My beef with Dev.to Is that they are two brutalist in their design, and I don't like it. I don't like reading my own stuff on Dev.to, but other people do, so I guess I'll stick with them, but it's a weird aesthetic choice. Brian: I don't often hear people describe brutalist architecture about websites and I appreciate it. There are a couple of different options that you could have a company page, for example, on Dev.to, and then you could do that. It's tricky [crosstalk 00:18:59]. It's tricky. But I agree with you 100% on Medium. And in fact, I don't remember if I've mentioned it on the podcast already, but when... I guess it was HackerNoon and freeCodeCamp... Ben: I think freeCodeCamp, HackerNoon, it was kind of a mass migration of all the big tech publications around the same time. Brian: I wish that we had talked to each other because like all of us had to figure out how to move our stuff by ourselves. And Medium is not designed for export, so we probably could have saved each other all a lot of time had we actually- Swyx: There's just no respect for creators? Oh my God, it's... They started out great and then ran themselves into the ground. Brian: Well, when I saw... In fact I've put it in the LogRocket Slack, is I noticed that Medium, it just purchased a huge backlog of the Pragmatic Programmers. They purchased that entire backlog and then now it's up on Medium. So now they're acting much more like a traditional- Swyx: Publisher. Brian: Yeah, like a traditional publisher or curator where they're either getting exclusive license or whatever. It's a business model, and it also means that it's getting harder to find people to create new stuff. Swyx: Or they couldn't sell subscriptions like Substack is doing, and they seem to be doing fine in helping writers make money. I don't think anyone's made money with Medium the way people are making on Substack, And that's probably a positive thing for writers and anything positive for writers is probably positive for the people who read them. That's my very minimalist take on publishing platforms. Not to say... It is a hard thing to do. And there's all the moderation stuff that they need to handle. I am not saying I would do a better job. I'm just saying other people have done a better job than Medium. Swyx: I'll throw you a couple of other ideas that are floating around in my head. So the reason for companies to invest in communities is that developer relations doesn't really scale very well. This was driven home for me by learning that GitHub serves 50 million developers and has two developer relations people. Just two. And that's because they're focused more on enabling the rest of the GitHub employees to do the developer relations job rather than doing it on their own. And then they're also focused on building community rather than being an individual contributor and being the person on the stage or being the author on the blog. Instead you could hold office hours to help people write their first blogs. You could consult them, make it easier for people to write their slides. Swyx: I've even done ghost writing sessions where I'll get two engineers... this is one of the things that I did at Netlify which is really good. We have a system called feedback letters where, when we do code reviews, we actually grade the level of our feedback. So instead of like nit or not nit, we actually upgraded a bit more than that. This is a blocker, this is something you should review, and you can ignore this, I will not be offended, versus this is something we should handle at some point, but it's not a blocker. Accumulates tech debt, but it's fine. We can ship it for now. So there's a few more gradations for this. And I was like, "This is a really good idea." And then the front end engineers were like, "Yeah, that's how we do things." And I was like, "You should share this. This is really good." And they were like, "Okay." Swyx: So basically I just sat them down and I ghost wrote with them, and then I had their names up on there and they published it and they were really proud of it. And to this day I still get a lot of positive feedback about that post. And it's a way of me as a developer relations person extending my skills to others and then putting them up on stage and going like, "I had nothing to do with this idea, but I helped them put it out there." It helps with the hiring and it helps with the general discussion around code reviews, which we all feel strongly about. So I think there's more opportunities to pursue there, basically enabling others to do developer relations, to create content. Swyx: And then the other thing I was going to talk about was this idea of everyone launching their own university. Angie Jones launched Test Automation University for Applitools, and that was a really fantastic effort. And now everyone's doing the same thing. So Netlify launched Jamstack Explorers, Apollo launched... I don't know what it's called. I think it's Galaxy or something. And then I also see not developer focused companies, but other companies like Lucidcharts, If you check their YouTube, it's just amazing. They teach you how to do ERD diagrams and it's got millions of views because it's nothing strictly to do with Lucidcharts. It just shows you how to do the thing with Lucidcharts. But you can use any tool you want. It just so happens that they're using their tool to teach you the thing. Swyx: And it's just a fantastic way to teach. Webflow University on YouTube as well, it's just fantastic lead gen for Webflow, because they're just like, "Here's a tutorial for HTML and CSS, and it's using this tool," and they don't tell you what tool it is. And all the comments are just like, "What the hell tool is this? This looks so cool." And of course you just come in and reply. "It's Webflow, come try us out." It's great. It's really great organic marketing, and I think there's a startup to be made for basically X university as a service, because this is a generalizable skill that every company is building in-house, and we're all not talking to each other, just like you said about moving off of Medium. We're not talking to each other. We're just like, "Yeah, let's throw a few devs at this thing and build it in-house." Brian: You have just created a cottage industry now where... When this airs, two weeks from that, we'll start a guild, a university guild, which actually wouldn't be that bad. I'm going to trademark that. I think University Guild is not a bad name. Swyx: Take it. I'm not going to do it, but I think it's a great idea that someone should run with, because like people will pay for this. They already are in dev time, in employee time. And they're all building their own learning management system, and they're having to like hire their own video producers. Prismic actually set up a studio inside of their office, and that's great for Prismic, but it's also a big upfront cost that probably could be shared among a few people. You have to hire your own animation people. All that stuff needs to be worked out by someone who actually knows what they're doing, and it's currently being figured out by just someone who had the idea and sees their peer companies doing it. Brian: Yeah, it's either someone like me or someone who is in marketing or whatever. For sure. I wanted to go back and ask about ghost writing. And I'll be devil's advocate for a second. For you, you could go straight for in-house developers, but they were okay with you doing it. Not every engineer, not every person is thrilled with having someone else write for them. Did you ever run into that or not really? Swyx: Well, they get to sign off and make their edits before we publish. So I haven't run into it just because they generally tend to be okay with that. I think people generally have a sense like, yes, they should write more, but then they don't feel like they have the time or they don't feel like they have the skills or they just maybe don't feel like they have their ideas is good enough to write about. And me, having published my fair share of mediocre ideas, can give them that validation and assurance and also just take away the hard parts. You be the technical expert and I'll be the wordsmith or whatever, like workshop it. But nothing gets published without your consent, so I don't think that it's ever an issue. Brian: It is one thing in my time, working with developers and writing, I would say, again, painting with a broad brush, but most web developers are the most receptive to feedback about their writing than any other profession that I've worked with in the past. Nobody, really, has ever argued with me or anyone on my team over the placement of a semi-colon or a particular... Where I've definitely run into that at other places. It's really more about like, "Thank you just for making it look and sound better." Also another universal truth is the people who think they're great writers usually are not. And the people who doubt themselves, say like, "My idea isn't very good, or I just can't really do it justice," they're way better than they think they are, and it just usually requires a little bit of organization, or... It doesn't necessarily need to sing. You just need to get the idea across. It doesn't have to be Shakespeare. And honestly, the audience is probably not looking for Shakespeare. Swyx: Yeah, exactly. I've given up on being great. I think Steph Smith from The Hustle has a post called How to be Great. Just be good consistently. Just seek for good enough, and then just do it enough times. You'll have one or two hits. I have probably one hit a year and that's enough to make my reputation, because by definition, the internet is a max function, not an average function. By definition, most people will not see most of what you see. They only see the best of what you see. So you should just publish more and choose for more volatility rather than mediocre consistency. Just get weird. Just get weird. Indulge in your weird ideas and just put it out there. It's fine. As long as it's not like actively racist or something. It doesn't resonate. It just won't spread. And that's fine. Nobody'll see it. Brian: I always advocate for getting weird as an individual, and as a brand, when we think about what should go on the publication, I'm completely fine with controversy, as long as it is well-reasoned and it's strong opinion. What you don't want is to be nonsensical and screaming on a street corner. That's too far. But as an individual, maybe if you're just trolling, maybe that has some value. Swyx: So I haven't done this yet, but I really want to publish a parody post. So one of the parody posts that does really well is How it Feels Like to Learn JavaScript. I don't know if you've seen that? That went viral a while ago. That's the front end equivalent. So that was a mock conversation between two engineers, basically spelling out back and forth different technologies, and then at the end the person trying to learn JavaScript just gives up and goes back to underwater basket weaving or something. It's pretty funny, because it's true. There is a lot of tech to learn. Swyx: And for those who don't know, there's a backend equivalent called Docker: It's the Future. And it's so great. It's by the founder of Dark Lang, Paul Biggar, actually. He was also the founder of CircleCI. He was just mocking people, like stop pretending this thing is the solution to all your problems. It's not. It's really great. So I want to make fun of developers. I just haven't done it yet. But those tend to do really well. Brian: Well, so Rog Locket, an author on our blog did just that. Swyx: What was it about? Brian: Well, Rog, what was the post about? Ben: Sorry, who? Rog? You just outed me in front of the world, Brian. Brian: I'm sorry. Ben: I think Rog wrote a witty and fabulously humorous piece comparing five different NPM packages for checking if something is an array. Some of the pros and cons of different ones were like, "It's cool because it's the less popular," or like, "95% accuracy for the array.isarray utility." Obviously the whole joke is that you don't need an NPM package to check if something has an array, but I thought it was funny back when I wrote it. Brian: I do think that that's a genre that I would like to see more of. There's a reason, I think, that the programmer humor subreddit routinely appears on the front page. It's funny to most everyone, not just programmers, so there's a lot of opportunity there. Swyx: For those interested in this genre, someone really like who does this quite a bit is David Gilbertson. He writes a lot of parody stuff. I recommend his title I'm Harvesting Credit Card Numbers and Passwords From Your Site, and Here's How. This was published before the NPM hack, which actually stole some coins from some crypto wallet. It's still true, it can still happen today, and no one's doing anything about it. Brian: I will co-sign that. David Gilbertson, he puts out funny stuff, but he puts out really other quality stuff too. He's a great author. He used to be on Medium. I don't know if he's still there or... Swyx: He is, unfortunately, but I'll give him a pass. Brian: We'll send him this and see what he thinks. Hey man, we think you should have your own blog. So let's talk about the things that you are either interested in for this year, or, I don't know, the things that you're frustrated by this year. Let's talk about 2021 and predictions or just how you feel about it. Swyx: So the first thing I'm going to do is not answer the question and talk about the next 10 years, because I'm a big fan of mega trends and playing long-term games. I don't care what happens this year, you know what I mean? I care what's the long arc of history going to do. And part of why I write is to basically write the first draft of history. And I mentioned I have run about one hit a year. My hit last year was this idea of the third age of JavaScript. And basically JavaScript is, depending how you count it, 20 something years old. 25 maybe, depending on when you count the start date. But the first 10 years were about establishing the language, having a spec around it and almost failing because it went into a few dark years with ActionScript and Flash. Swyx: And then the second 10 years was about coming back. In 2009, these three things happened at once. ES5 harmony was agreed upon. The standardization process fell apart for like 10 years, but ES5 came together. NPM was started. And Node JS was announced. All in the same year. And that really established the foundation for everything that we do today. And that was great for 10 years. And now we're seeing some of the problems with that. So I think the next 10 years is driven by two overarching trends. The first is the big move to ES modules, like the first class module system for JavaScript that turns JavaScript from a toy scripting language, and we've just been hacking around it for the past whatever years. It turns JavaScript from a toy scripting language into an actual app ecosystem where with modules that you can import and export. Swyx: And that's also driven by the death of IE11, which started last year with the end of life of mainstream support for Windows. I forget what the version of it was tied to, but it will definitely be over by 2025, and the extended support will be over by 2027. So within this decade IE11 will be done and everyone will be on evergreen browsers, and that means we'll be able to ship a lot less JavaScript because we don't have to [inaudible 00:32:34]. So that would be great. And side tidbit, the US government will drop 11 when the number of visits to US government sites goes below 2%. right now that number is at 2.7, and it's dropping about 0.1% a month. So it could be possible that the US government drops IE11 by this year. It's faster than people think. Microsoft itself is dropping... I have a list on Twitter if you want to look it up. The number of people that have dropped IE11, just to build support in the case internally within your company. Brian: Does that count internal use? Swyx: I don't know about internal. This is just for US government sites like White House or like the social security site, whatever. The rule they have is the 2% rule. So maybe they won't drop it right on the dot of 2%, but that's the rule that they've set for themselves. Brian: That's fair. I'll shut up. Swyx: I mean trust me, people are hounding them for it on GitHub. It's pretty funny. You can actually see the issues and they're very responsive, and I think they all know the reasons why. Anyway, that's the first thing. A simplification of the module ecosystem and shipping less JavaScript. That's always a good thing. The second thing is simplifying tooling and that's something that you talked about off air about one of the pain points that developers have is that essentially JavaScript, we adopted this idea of a Unix philosophy of tooling because we didn't know what tools we needed, and it turns out we needed babel, we needed a bundler, we needed a formatter, and we need type system, we need tests. Swyx: All of these things that we just pieced together and causes a billion config files in your repo, and then the permutations at them, like babel-eslint together with TypeScript. Here's a blog post on how to set that up. And it's super fragile because the moment any other major version change or any of your setups are in a mono repo or something, that just completely breaks. And that's just how things are today because they weren't designed with a holistic system in mind. So I think what we will get to is collapsed layers tooling, where we'll collapse all these jobs into one tool. And that's what Deno and Rome doing. They're actually offering all these things in the same tool. Swyx: And I think the other thing that's becoming pretty obvious is that we used to write JavaScript tools in JavaScript with the idea that if you use the tool, you should be able to contribute to it. I think we're realizing that that has a cost, which is that the hot paths are being run in JavaScript. And that's pretty slow. We're giving up orders of magnitude in terms of how much speed we can be getting out of it. So new tools like esbuild and SWC, and a bunch of other tools are rewriting their core to compiled languages like Go and Rust. And it's fine. You as a user don't have to care, but your tools are a hundred times faster than what it was previously before. So these are all advances that I look forward to in the next 10 years, not the next year. Brian: Now I'm going start asking that question, 25 years. If I asked a year and he just said, "I'm not answering that question." So I'm going to do that. I was like, "When is he going to say Rust? When am I going to hear Rust?" But I heard it. Swyx: I know. I was working up to it. Brian: There it is. Swyx: Yeah, so Deno, Relay, and there's some others I keep on the blog post, a list of people who rewrite the core to Rust, and JavaScript developers all learned Rust to do that. So it's not a hurdle anymore. I used to get so much heat for even suggesting that we move some core part to TypeScript because they're like, "Oh no, but that will raise the barrier of entry to people contributing to our tool." And that's BS. People want to learn TypeScript, and it's not that different. Now people are learning Rust, so that argument's completely gone. Brian: 100%. And just anecdotally, if I ask almost any engineer, but certainly any web dev that I ask, what do you want to learn? It's always Rust. At least now. Well, cool. I think we're out of time, sadly, but I want you to come back. We'll talk about other things. And I appreciate you taking the time this time. Swyx: Yeah. Thank you for having me. Brian: Hey, it's Brian again. So it turns out that running a podcast is maybe harder than we thought. So I want to hear from you. I'm genuinely interested in your feedback. We have to think about new topics, new guests, we have to find them. And don't get me wrong, we can do it, but it's a lot easier if everyone else who's listening helps. So if you'd like to suggest a topic or volunteer to be on PodRocket, we'd like to hear from you. So you can do that by going to podrocket.logrocket.com/contact-us. The hyphen is next to the delete key, if you're curious. If all of that is too long, you can just email me directly brian@logrocket.com. That'd be great. Also, if you're feeling magnanimous, be sure to like and subscribe to PodRocket. Thank you.