React Native Radio

R258 - Robots coding React Native?!?!

Episode Summary

Jamon, Robin, Mazen, and ChatGPT discuss whether AI coding assistants will take our jobs in the future – and how to deal with it as developers.

Episode Notes

Jamon, Robin, Mazen, and ChatGPT discuss whether AI coding assistants will take our jobs in the future – and how to deal with it as developers.

This episode is brought to you by Infinite Red! Infinite Red is a premier React Native design and development agency located in the USA. With five years of React Native experience and deep roots in the React Native community (hosts of Chain React and the React Native Newsletter), Infinite Red is the best choice for your next React Native app.

Helpful Links:

  1. Jamon’s Copilot article 
  2. Gant’s AI book 

Connect With Us!

Episode Transcription

Todd Werth:

Welcome back to React Native Radio podcast.

Brought to you by the Hit TV show, The Last of Us, from HBO, episode three. I'm not crying, but you're crying. Episode 258, Robots Coding, React Native.

Jamon Holmgren:

I've been signing up for some different social networks and different alternatives just to diverge from... Not diverge. What's the word?

Robin Heinze:

Diversify?

Jamon Holmgren:

Diversify, thank you. From Twitter. And I had to write out a bio. I could have just copied the one from Twitter. But I realized when I was doing that, I was writing out and I was like, Host of React Native Radio. And I was like, I forget that this goes out to people sometimes. Sometimes it just feels like we're just here-

Mazen Chami:

We have an audience?

Jamon Holmgren:

... talking about... What?

Mazen Chami:

We have an audience? I feel like we just talk to ourselves.

Jamon Holmgren:

That's what I think. Yeah, it's like we're just talking on Zoom. We're just having fun talking on Zoom. No problem. We get to listen to it later, because Todd really nicely edits it just for us.

Robin Heinze:

Just for us. Nobody else.

Jamon Holmgren:

Yeah. Nobody else is listening. And then I realize, actually, other people are listening. There's a few, right? We have few out there.

Robin Heinze:

At least 1,000 every episode.

Jamon Holmgren:

No, it's like 2,500 that are-

Robin Heinze:

Subscribed.

Jamon Holmgren:

No it's 5,000 that are subscribed. It's 2,500 that listen. 2000 to 2,500 per episode, something like that.

Mazen Chami:

Wow.

Jamon Holmgren:

And for the bigger episodes, it's way up there.

Robin Heinze:

That's like the chain react auditorium times five.

Mazen Chami:

Thanks, Robin. This is going to be-

Jamon Holmgren:

Hi, everybody.

Mazen Chami:

... a great episode. I am super nervous now, looking at all 2,000 plus people looking at me. If I'm quiet people, that's why.

Robin Heinze:

I just made Mazen super nervous. Imagine them mall like... No, don't imagine them that way. Nevermind.

Mazen Chami:

Yeah, I know where you're going with that. And that was exactly what my wife told me. Don't-

Robin Heinze:

Don't do that.

Jamon Holmgren:

Don't do that. I think there's a website that's actually quite good, it's actually fairly old. I think it's over a decade old. Speaking.io. And it starts off, and I'm just reading, this isn't me. But it starts off, "Speaking.io, because imagine everyone's naked is terrible advice. Thoughts on public speaking by Zack Holman." It's really good though. If you are interested in getting better at public speaking, go to speaking.io and check it out. This is not an ad, it is just something I've used over the years for getting better at my own public speaking.

Robin Heinze:

But this isn't public speaking, we're just talking to each other.

Jamon Holmgren:

We're just talking in Zoom. We're just hanging out.

Mazen Chami:

Maybe putting it that way, this will be fine. Yeah. Thanks, Robin.

Jamon Holmgren:

Or you can just imagine, Mazen, that we're talking to 5,000 robots, that's all. They're just robots.

Robin Heinze:

That's very appropriate for today’s topic. 

Mazen Chami:

But aren't they supposed to take over the world?

Jamon Holmgren:

Yeah, these are our future masters. You know what, let's avoid that topic for right now and do intros. Okay. I'm Jamon Holmgren, your host and friendly CTO of Infinite Red. For now, until a robot takes my spot. I live in the beautiful Pacific Northwest with my wife and four kids. I play hockey. I actually played a doubleheader last weekend, and won both of them. Played pretty well, if I do say so. It's always fun. I'm 41, and being able to still compete, not at a high level.

Robin Heinze:

That's two games in a row, right?

Jamon Holmgren:

Yeah.

Robin Heinze:

In the same day?

Mazen Chami:

That's pretty good endurance.

Jamon Holmgren:

Yeah, two. It was literally right in a row. I just got off the ice, they resurfaced it, and I went back on.

Robin Heinze:

You must have been exhausted.

Jamon Holmgren:

I was a little tired, but the first... It was weird, because the first... I know. Sorry, Mark, that we're talking sports. The first game, this is one I actually participated in, Mark, you have to be okay with it. Mark works for us, he always complains when we talk about sports. He's a representative for the rest of you that don't like sports. But the thing is, I expected the first game to be really bad. I was subbing for another team, because they only had five skaters. They had nobody on the bench. It was just me and five dudes out there.

And somehow they just skated circles around the other team that had 13 people, a bunch on the bench. But we won four to one fairly comfortably. And then we played the next one, and it was my normal team. And I actually had a really good game, and so did the other goalie. So we went to overtime and penalty shots, or shootout as they call it in hockey. And the ref said he'd never seen anything like it, because both me and the other guy, the other goalie stopped 10 shots in a row. And then we finally scored and I stopped the last one, 11. So we won it. But that was ridiculous.

Mazen Chami:

That's pretty cool.

Robin Heinze:

We're not even going to talk about the World Cup. That's the really big news.

Jamon Holmgren:

It is big news. I don't know when this is coming out though.

Mazen Chami:

At that point it'll be the next World Cup maybe. Sorry, Todd.

Jamon Holmgren:

I wasn't going to say that. See I don’t want to piss off the editors. 

Robin Heinze:

I think Mazen has some hard feelings about how the World Cup ended, so we'll just avoid the topic altogether.

Mazen Chami:

Yeah, it's okay.

Jamon Holmgren:

Our audience probably does too, a lot of them. We have a fairly international audience.

Robin Heinze:

Every country except Argentina probably has hard feelings.

Jamon Holmgren:

Spoilers.

Robin Heinze:

He means by the time it comes out in January. 

Jamon Holmgren:

The sports event that already happened.

Mazen Chami:

That was so last year, Jamon.

Jamon Holmgren:

Yeah, happy New Year everybody. I guess. Getting back to my bio, I am joined also by my supreme co-hosts, Robin and Mazen. See supreme is a very good one…

Mazen Chami:

Until robots take over.

Jamon Holmgren:

It also makes me hungry.

Mazen Chami:

Supreme.

Jamon Holmgren:

Like supreme pizza. I don't know.

Robin Heinze:

It does. It's a very food related adjective, like cookie supreme. It is.

Jamon Holmgren:

Doesn't that bring... I don't know, maybe I-

Robin Heinze:

You add supreme to something, and it's top tier. Hm?

Mazen Chami:

I feel like supreme's also a clothing brand. No?

Jamon Holmgren:

It's got to be. All of these are, probably.

Robin Heinze:

We're not original. It's fine.

Jamon Holmgren:

Original, I can use that one next time. Anyway, Robin and Mazen are here. Robin Heinze is a senior software engineer at Infinite Red. She's located west of Portland, Oregon, with her husband and two kids, who are for the moment actually healthy. I think.

Robin Heinze:

At this moment I think they're healthy. Tomorrow's a new day, we'll see.

Jamon Holmgren:

I hear you're sequestering everybody, trying not to-

Robin Heinze:

We are trying to. They're actually at daycare right now because I have to be doing this.

Jamon Holmgren:

That's it. I'm so sorry. She has specialized in React Native and taking care of sick kids for the past five years. Mazen Chami lives in Durham, North Carolina with his wife and baby boy. He's a former pro soccer player and coach, and is a senior React Native engineer also here at Infinite Red. Does it bother you when I say soccer instead of football, Mazen?

Mazen Chami:

It's okay. I'll get over it.

Jamon Holmgren:

You'll get over it.

Mazen Chami:

Yeah.

Jamon Holmgren:

Wait, well how do you think of it though? You're pretty Americanized at this point.

Mazen Chami:

Yeah, I say soccer at this point. And when I say it, in the back of my head I'm like, hmm, why'd you do that? But, yeah.

Jamon Holmgren:

But saying football just results in way too much confusion.

Mazen Chami:

Yeah, it's then I have to be like, football, wait, not the American one. And then it's like, blah, blah, blah. And, no.

Jamon Holmgren:

You're bowing to convenience there. This episode is sponsored by Chain React 2023. Chain React is the React Native conference in the US, so you definitely need to come and join us. Go buy a ticket, chainreactconf.com. You're going to see me, Robin, Mazen. We're all going to be there. We might even do something cool there with React Native Radio, hopefully. All right, let's get into our topic for today. We're going to be talking about AI and its role in React Native development. Probably a little more focused on AI in general, AI coding in general, I guess. Less so about the React Native side of it, but we're going to try. I think it's going to be a little more general just because it's going to impact so many parts and pieces of what we do. And most of our audience doesn't just do React Native, they do other types of coding as well.

I think I saw, when GitHub Copilot came out and I started using it, I proclaimed to my team, you two can confirm this, it was a year ago. That it was the biggest innovation in coding that I could ever remember. I've been doing this since I was 12, and nothing that I tried, nothing I've done. I don't care if you're talking static analysis, TypeScript, prettier, various editors, different programming languages. Nothing is as big of an innovation, in my opinion, as GitHub Copilot. It just blew my mind completely. And it's continually doing that still to this day.

Robin Heinze:

I can confirm that you did say that, and you pretty much haven't stopped saying it for the last year.

Jamon Holmgren:

Yeah, you're all getting pretty annoyed. Of course, then you tried it and then you're like, okay, this is pretty amazing.

Robin Heinze:

It's true.

Mazen Chami:

Even from day one. Usually at the beginning you're like, eh, some kinks here and there. I feel like didn't really run into that at the beginning. There was some aspect of where the code that came out maybe didn't fit exactly what you were talking about, but it was still pretty good. It got you there. I remember at one point I had to do APR in Native. This was Mercari. Robin, I think you were on leave at this point. I had to dive into Native and then after I read the code and came back, it was almost like it was watching my eyes, what I was doing. And then when I came back and I put my comment in, and I started tapping and was like, it knew exactly what I was trying to get to.

Robin Heinze:

Yeah, sometimes I swear it's a mind reader. And then I'm like, I realize it's not actually a mind reader, I'm just not really having any original thoughts.

Jamon Holmgren:

You're too predictable.

Robin Heinze:

Exactly.

Jamon Holmgren:

It's a little jarring to realize just how predictable we are as humans. You can see where things are going. I guess it's a useful trait, in some ways, being predictable as a human.

Robin Heinze:

I guess if you're trying to use AI tools like this, and they really never seem like they read your mind, you can be comforted that you probably have very original thoughts and that your brain works very differently than everyone else's. So congratulations.

Jamon Holmgren:

That is the nicest way to say that. I've ever heard that. I like that. Or you could just suck at prompting, being a prompt engineer. That's the other piece of this.

Robin Heinze:

But see, Jamon just goes for the you suck angle.

Mazen Chami:

Is that a new role, prompt engineer?

Robin Heinze:

Prompt engineer, there you go. 

Jamon Holmgren:

Oh, totally.

Robin Heinze:

There you go, professional AI prompter.

Jamon Holmgren:

I'm unironically saying it is.

Robin Heinze:

That's going to be a thing.

Mazen Chami:

Recruiters knocking on the door.

Jamon Holmgren:

I'm not even kidding. Prompt engineering is a thing. I'm putting a stake in the ground right now.

Robin Heinze:

You're one of the first experts at it, I think. You're one of the best.

Jamon Holmgren:

I wouldn't call myself an expert, but-

Robin Heinze:

Co-pilot prompters, I know.

Jamon Holmgren:

I like it. Tab driven development, right? You're creating prompts and then you're hitting tab.

Robin Heinze:

The new TDD.

Jamon Holmgren:

Exactly.

Mazen Chami:

I guess if you're a space driven... If you like spaces over tabs, you're out of luck with.

Jamon Holmgren:

Well, you hit tab to auto complete, right?

Mazen Chami:

Sorry.

Robin Heinze:

I thought it was funny.

Mazen Chami:

Thank you.

Robin Heinze:

Even if Jamon didn't.

Jamon Holmgren:

Did I just. I went serious when you were being funny? 

Mazen Chami:

Jamon was like, it's still funny. Okay.

Jamon Holmgren:

So Copilot, in my observation, is very good at JavaScript and TypeScript. It's pretty good at React Native. It knows certain things, it knows quite a bit. It knows Kotlin, Swift, Groovy, Ruby. These are all languages we use internally with React Native projects. Objective-C, Java. Knows Ruby particularly well, because there's so much Ruby on GitHub. So if you ever have to write Ruby, you shouldn't be writing it like Copilot should be writing it. 

Robin Heinze:

Why is there more Ruby than other things on GitHub?

Jamon Holmgren:

My opinion is it's because GitHub was written in Ruby, so their circles knew about it early and started using it. I was doing Ruby, so were you Robin. And it was just an early, oh, GitHub's written in Ruby, it's written in Rails, so lets use it. 

Robin Heinze:

When did GitHub use it first come out? I don't know why I thought it'd been around forever.

Jamon Holmgren:

Ask Chat GPT. I'm going to.

Robin Heinze:

Oh, really?

Jamon Holmgren:

Prompt engineering in action.

Mazen Chami:

Does this mean we don't need Google?

Robin Heinze:

April 2008, Google got it faster than Chat GPT did. But I wanted see…did ChatGPT get it? 

Mazen Chami:

Who did Chat GPT, who did Google? That's what I want to know.

Robin Heinze:

I did Google.

Jamon Holmgren:

I did Chat GPT. GitHub is a web-based platform for version control and collaboration that uses Git, a version control system. It was launched in 2008 by Tom Preston-Werner, Chris Wanstrach, and PJ Hyett. Since it's launched, GitHub has become a popular platform for developers to host and review code, blah, blah, blah. The problem is, and this is something that people that are a little AI skeptical will say, and I don't blame them. They'll say that that Chat GPT and other chat-based AIs will give you stuff that sounds very plausible, but you don't know for sure that it's accurate. It could be mixing certain things up. It's a very confident human who hears snippets of information and mixes them together and tries to give you an answer. And in this case, it got the year right. And I assume the other stuff might be right, but I wouldn't actually trust that. If I was giving a talk, I wouldn't just trust Chat GPT and put that right in. I would go Google it and see what's going on. Just because-

Robin Heinze:

Chat GPT is ... its strength is language. Language generation, not necessarily fact. Fact look up.

Jamon Holmgren:

Yeah, but that doesn't make it non-useful. In fact, I would say that the reason that Google is more reliable at this point, in terms of facts, is because there are more humans looking at it who are interested in making sure that there are facts. Wikipedia, for example, if you go to the GitHub page, it's been looked at by thousands, maybe millions of people. And if there's a wrong fact on there, there's going to be someone like, hey, this is wrong. Where Chat GPT hasn't been vetted yet. Whereas, if Chat GPT, there was a way to just mark it as, hey, this is wrong. And you've done that for, how long has Wikipedia been around, 20 years?

Robin Heinze:

Yeah.

Jamon Holmgren:

If you've done that for 20 years, it would probably be pretty accurate. You'd probably get to that level. It's just newer. And Google probably wasn't as reliable back in the day, when it was first starting. I feel like it's in that same range. I don't think it's actually inherent to AI that it would be so unreliable.

Mazen Chami:

It's like Siri and Alexa. I feel like when they first came out they were horrible. You pretty much had to give them the answer for them to give it back to you at the beginning. I remember. Siri, especially.

Robin Heinze:

Siri is still not that great, to be honest. We just switched back to Google Home.

Mazen Chami:

Which is also very interesting, because wasn't it marketed as the first AI personal assistant type of thing? So it's like, that was the first ever... I guess a race. One of our first, because you had IBM Watson and all that. One of our first-

Robin Heinze:

It's consumer focused.

Mazen Chami:

Consumer focused, individualized AI assistant. And can't say she, because it also came out in a male voice that when I heard someone playing it recently, I was confused. I had double-take their phone to see what phone they were using. But yeah, I also have my Siri on British, side note.

Jamon Holmgren:

Oh, okay.

Mazen Chami:

She sounds a little more sophisticated.

Jamon Holmgren:

Yeah.

Mazen Chami:

I guess is the word.

Jamon Holmgren:

Probably says football.

Mazen Chami:

Probably. But then has to explain it. I should ask her. But no, you mentioned Google has that attentiveness to it. You'd expect Siri and all them to also have that same attentiveness to it. She does a decent job every now and then, but mainly it's more of asking her to do tasks for you. Set a reminder, start a timer, stuff along that realm. And also the Google Home.

Robin Heinze:

Google Home is better at asking it questions.

Mazen Chami:

Correct. Yes.

Robin Heinze:

I can ask, "Hey, who won the World Cup in 1994?" Or whatever. And it's a lot better at finding answers like that because it's running off the Google search engine.

Mazen Chami:

Do you know who hosted the World Cup in '94?

Robin Heinze:

Nope.

Mazen Chami:

United States of America. Where it was called soccer. 

Robin Heinze:

Nice.

Jamon Holmgren:

Bring it to full circle. Getting back to, I think Copilot, OpenAI, Chat GPT, these are the main ones. There are some new ones I'm sure coming, Google's working on something. I've heard rumors that Apple's coming out with something in January, so maybe by the time people are listening to this, they've heard about it. And so potentially there's some new neural network powered AIs coming online. But the ones that have been the most... I think, actually, GitHub Copilot might be powered by OpenAI. Essentially, it's the same one, but you're getting code. And you do have to give it prompts. When you're coding, you have to give it prompts, you have to tell it what's going on. And I did write an article, Getting The Most From GitHub Copilot. And if you go check that out, we'll put the link in the show notes.

The premise is that you do need to write leading comments. If you want a function that calculates the distance between two points, like the Pythagorean theorem, you have to write a comment that says, function that returns distance between two points. Or maybe if you wanted long coordinates, then you'd have to say, function that returns distance in kilometers between two long coordinates, or something. You can also just type the function name, and that will prompt it as well. Those are things as well.

But it's good to give Copilot structure, to give it context. And I've found that the more context you give it, the better it gets. I was in the MobX-State-Tree code base, and doing some rewrites of some pieces of it. It was super helpful because it had all the context of the old way of doing things. It could refactor really well, because it knew how I was doing things the old way, but I could prompt it to do things a new way. And so that's the premise, is that you do need to think about giving it context.

Mazen Chami:

I think a good example is something that happened recently in our Slack. Mark asked a question about doing something timer related. And as we know, timers in React Native can be a finicky subject. And there's this long thread, I'm just going to cut it down. Josh Yos came in and he asked GitHub Copilot. And what he pretty much did, and if you look at the sample code, there's this big block at the top where he's pretty much taking Mark's entire description and thread leading up to there of what he wants it to do. Making sure we are unsubscribing to our timers in case of mounting and unmount, and all that stuff. So there's this huge block. And then I assume all he did was tap through it, and then popped out the answer. Mark said that was pretty much what he was looking for, so I'm assuming it was spot on.

My experience, after doing that sometimes, you still need context outside of that. And then within that outside context, as a developer you're going to have to come in and make a couple tweaks and changes to get it exactly to work for what you're doing. Because GitHub Copilot didn't write the entire app from beginning to end, so there's some context that's probably missing at this point in time. Maybe in the future it does analyze your app, or within the code base you're in and give you props along... The expected prop's name that you have in a different file that you're going to use it in, and then assign it that way. So it's not mixing and matching names.

Robin Heinze:

So Copilot only knows about what it has written for you? If you had an existing app and then you turn Copilot on in your editor, does it analyze the entire code base?

Jamon Holmgren:

Yeah. As far as I can tell, it was analyzing the whole... At least in MobX-State-Tree, it was pulling in... It knew logic that it shouldn't have known in the file that I was writing. And I don't know, if that's not the case then it was being scary good without context. But it seemed like it knew so much. This is one of the downsides to AI, is that you don't have a lot of insight into how it's working and things like that. This is a good time to mention that my business partner, Gant Laborde, wrote a book about machine learning and AI. And it was published through O'Reilly. And it's called, Learning TensorFlow.js: Powerful Machine Learning in JavaScript.

So if you're a JavaScript developer, you can write machine learning code. And you can go to infinite.red/learn-tensorflowjs, and it's a really great book. I've been going through it off and on since he published it, and it's super accessible, super easy to read. And what's really cool about that is you do learn more about how it's working under the hood. But coming back to my point, you don't always know where the models got their information. How did they learn? How were they trained? What sort of biases?

Robin Heinze:

You don't know. The scale is absolutely massive, and almost incomprehensible for a human, which is why machines are doing it.

Jamon Holmgren:

There are some other alternatives out there. We talked about GitHub Copilot, we talked about Chat GPT, which is a different user interface. It's cool that there's different things. There's one called Tabnine. We actually identified that this was something we needed to get better at as a team. Really, we need to know what tools are out there. We have a whole Slack channel dedicated to AI coding tools now, and we post them in there and try to get each other access to them. And post our ideas and our experience in that channel.

Robin Heinze:

In addition to our AI art made with Stable Diffusion, which is a whole other realm of AI.

Jamon Holmgren:

In fact, I would say Todd, my other business partner, is one of the better people out there in creating visual art using AI tools. Stable Diffusion, and he has some other stuff that he uses as well. But he makes some incredible stuff. And I don't think he would've necessarily considered himself an artist in the strict sense of the word before this, but he certainly is now. The stuff that he's creating, it's coming out of his brain. He'll envision something and then he'll create it using these AI tools. Just makes it more accessible to everybody, which is awesome. You can tell that we're pretty all in on AI here at Infinite Red.

Mazen Chami:

Todd's new title, prompt artist.

Jamon Holmgren:

Prompt artist.

Robin Heinze:

Yeah. Jamon is a prompt engineer, and Todd is a prompt artist.

Jamon Holmgren:

I think there's some overlap there, actually.

Robin Heinze:

There is.

Jamon Holmgren:

There is some overlap, but Todd is definitely more artistic than I am. All you have to do is look at his Minecraft buildings versus mine, and that'll tell you the whole story. Mine are very functional, I'll just leave it at that. I'd like to ask both of you about... This is funny for me to be asking people who work for me this question, but I'm going to because I think that you have some good insights here. Will AI coding tools take our jobs?

Robin Heinze:

That's the question that comes up first, almost always, when you talk about these tools. That's people's biggest fear is that the robots are coming, they're going to do all the jobs, and everybody's going to be hungry and homeless, and it's going to be awful. I don't think that's an imminent threat, if a threat at all. We'll have to keep asking the question all the time. The answer may be different in 10 years, but right now I don't see AI coding tools taking jobs, by any means. If anything, they're just helping us all be more efficient at the jobs that we have.

Mazen Chami:

I totally agree with Robin. There's that element of human touch that we have, that I think they're going to always miss. Unless as a race we're okay with that robotic... When I say robotic, metal. Whenever I say robotic, I expect something steel in front of me kind of thing. Like The Jetsons, their nanny. But yeah, I don't see that happening. A lot of people are working hard on making this a reality. I think people have been for a very long time. I think we can even look at SpaceX, having it all be computerized to go up to Mars and actually landing on its own and moving ship all done by computers, kind of thing. If we all put our heads together, it's potentially possible. But I think the element of human touch will always be missing from that, and I think we will still want that.

Jamon Holmgren:

Yeah, I agree with both of you. I want to actually first scare people a little bit, but then bring it back and unscare them. First off, there's a question about, can it? Can it even do that? Is it possible? What would full AI coding look like? And I even tweeted about it recently where I said how I envision AI coding look like more or less. And this is, by the way, is a limited view. This is not a 10 years down the road view. This is two years down the road, maybe three. You go to GitHub, you click new Copilot PR, you write up the requirements, whatever it is.

And I give an example, add a user count to the room title, in the rooms page. At the end of the room title, "room title number". Where number is the number of active users in the room. Add end-to-end tests and unit tests for any functions created. That was a prompt that I wrote. And then Copilot will create a multi file PR, and the tests run in CI. And you can adjust and refine the requirements and you can add context, and you can review that adjusted PR. And it's just real time. It's like, bang, bang, bang, bang, bang. You're just getting adjustments as you adjust the prompt. It's just quick. And then when it's where you need it to be, you are ready for team review, and then you actually have humans review it.

You probably have AI review it too, but at least you have humans review it. And the tests help you determine that, is it correct? Is it actually doing what we're supposed to do? You should look at the test, make sure that they're testing the right things, just like you would with a human. But you may hand adjust some code, but it'd be all in browser, you're not cloning stuff down. Things like that. That's how I look at it.

Mazen Chami:

Who's writing these prompts? Jamon, do you envision it to be-

Jamon Holmgren:

It'd be us. It'd be software developers-

Mazen Chami:

... would be senior developers, or would it be juniors?

Robin Heinze:

At some point though, would it be product managers?

Jamon Holmgren:

No, I don't think so. I think that's a different skill. Maybe. Maybe some more technical... It's like, can a product manager run a dev team? They could, they may be a little more technical, but they're going to lack some context that they need. Let me go deeper into this a little bit. These coding tools are going to accelerate, because they're going to accelerate our work. Because that same PR, instead of typing into a prompt three or four times and then we're ready, you would've been cloning down the repo. You would've been checking out a branch. You would've been doing a bunch of busy work around it. You'd write the feature, maybe test it in your browser, or in your simulator. And maybe you have to write some tests, maybe you forgot to write some tests, maybe you need to write some documentation. That's another thing AI can do is write good documentation.

And a lot of times, I think the amount of time you would spend there, I'm anticipating minimum twice as much time. Probably more on the order of 10 times as much time once you get into a little more complex stuff. Now you can also do more focused PRs, because creating a PR is so much lower friction. So you can really quickly knock out small PRs.

Robin Heinze:

They almost have to be more focused too, in order for AI to be most successful.

Jamon Holmgren:

Yeah, I would agree with that. Unless it's like, do this repetitive task, we're going to change class-based components to function-based components across the whole thing. Then maybe you could have a more wide-ranging one.

Robin Heinze:

It's going to be harder to get AI to do something like, okay, set up my entire API, and then build four screens. And it's going to be a lot harder for AI to manage that much at once.

Jamon Holmgren:

Our frameworks are going to change too, and it's going to bias toward frameworks where stuff like that is easier. Less focused on human coding, more on repetitive, simple... Not simple, but repetitive, consistent, predictable code. Things like Redux are going to be less boiler plate-y feeling because you're not writing the boilerplate. The AI is.

Robin Heinze:

I wonder how much stuff that we've optimized to make it easier and more ergonomic for developers to do, how much of that just won't even matter? Let AI put everything in the same file and do all this stuff that we've stopped doing because it's not ergonomic for developers, but it doesn't matter if an AI is doing it.

Mazen Chami:

Minified project.

Jamon Holmgren:

100%. The only ergonomics that matter now are for code review, not so much... Because otherwise, we could have it write machine code, or bicode. But we need to review it. So the ergonomics matter for review, but it's going to be focused more on code review rather than writing code. Which goes against my instincts as a Ruby developer. I love writing beautiful code. And when I say, as a Ruby developer, as a past Ruby developer. 

Robin Heinze:

It's like you've done Ruby in the past.

Jamon Holmgren:

Yeah, because I love beautiful code. And it's something that I value above other things, but this repeatability and predictability is going to be more important. Okay, we're way faster now, so we get stuff done faster. I would argue that we've needed this disruption. The software is too expensive right now, it's way too expensive. Would you, if you had an app idea, spend the time as a side project building everything the way we do right now? I love coding, and I have a hard time spending that amount of time. I know it's just going to be so much time, so labor-intensive. To build even the most simple thing just becomes just drudgery sometimes. And you're like, why am I sitting here struggling with this for hours and hours and hours? Or if you look in the money side, friend of mine... Literally, last night a friend of mine messaged me, and she had an app idea. Very cool one. One that I think would work.

Robin Heinze:

But does she have 500 to $800,000?

Jamon Holmgren:

Exactly.

Robin Heinze:

No. A lot of people don't.

Jamon Holmgren:

And I didn't even want to tell her that, it was just dumping cold water on her dreams. And it was a good idea in an underserved market, in a place that should have an app. But it doesn't have an app, and it won't have an app as long as it costs $500,000 to build one. And that's, by the way, just version one. So that's the thing where I think looking at it, you're like, clearly we need something different. We can't just continue to have the same old, same old. And by the way, it's getting worse. It's getting more expensive over time. That, to me, means they're accelerants, and it allows us to make apps that don't currently exist. And then they make our jobs more human. So us as developers, I think the people and audience, all 5,000 of you that are staring at us right now.

Mazen Chami:

Here we go.

Jamon Holmgren:

I want you to listen to this. If you've prided yourself on being amazing at syntax or amazing at typing speed-

Robin Heinze:

You're going to have a hard time.

Jamon Holmgren:

You're going to have a harder time. And I'm one of you, so relax, we're all in this together.

Robin Heinze:

I definitely do not put myself in that category. I'm not one of the ones that I have figured out every single keyboard shortcut and gotten myself super fast. So I'm excited for this AI revolution so that I don't have to do all that.

Mazen Chami:

Just that story of someone coming to you with an app by idea, I've been that person that had that idea. And I'm up until 3:00 AM. And then I look at the time, it's like, oh, it's 3:00 AM I should probably stop. Oh wait, I haven't even finished the scaffolding part of it.

Jamon Holmgren:

Yeah. It's too hard.

Robin Heinze:

I think most people who build mobile apps, like all of our fellow React Native developers. When people hear that they're like, oh, I have this... Or I know somebody who has this... And you always have to have the convers... They're like, "Oh, can Infinite Red build us a thing?" And I'm like, "We can talk. But if you're thinking $5,000, then no, probably not." They just don't comprehend the scale of what it takes to pay engineers to build an app for six months.

Jamon Holmgren:

Imagine if you could build a app for $100,000.

Robin Heinze:

Or 50.

Jamon Holmgren:

And the design is... Right, or $50,000. The design is AI assisted as well. You design with a designer. Because I can have all the design tools of the world, but you need someone who understands the user experience and things like that. So imagine that is done that way and then you can feed those images into an AI and say, build this UI in React Native, or something like that. I do think that it's going to have a pretty big impact on us, but I don't think our jobs are at risk. And I'm very convinced of that. And it's because our skills of logical thinking, of being able to translate user requirements into logical flows, and things like that, that's a valuable asset. That's something that is really big.

You look at, DevOps was a huge thing 10 years ago. It's becoming less of a thing because a lot of that's being abstracted into platforms as a service, like Firebase and stuff like that. So certainly the types of jobs change over time, but the skills are always valuable. I do see that as being, we're just going to be able to do more.

Robin Heinze:

Oh, yeah. We're freeing up a lot of our brain capacity for the things that we're actually skilled at, versus taking up a lot of our time and brain space doing boilerplate and cloning repos, and writing code that is super repetitive.

Mazen Chami:

Question for you both. I may boot camp out there, I do specialize in JavaScript, TypeScript. Let's say React, beginning GitHub, jQuery for all us younger JavaScript people, all the way to TypeScript, to eventually getting you to platforms. So React Native. Would you keep that setup of your bootcamp lecture, but then add another module, let's say at the end, where you bring in AI? Or do you think there's a bunch of stuff you can cut out? What I'm trying to get at is, do you still teach the juniors the logical part, going down and doing bare HTML, CSS, jQuery, and going in that path?

Robin Heinze:

I don't know about jQuery.

Mazen Chami:

We all have to suffer at some point, right?

Jamon Holmgren:

I have a story. My dad owned an excavation company, when I was in high school and middle school and stuff. And so in the summers I would work for him. Dangerous work, working around heavy machinery, operating heavy machinery, things like that. In a lot of ways I see an analogy between an excavator and AI. Because if you dig a ditch by hand, takes you ages. And by the way, it's not as good, it's not as square. A nice square ditch. But the first thing my dad did was, you're going to learn to use a hand shovel properly. I'm not going to have my son out there on the job site flailing around with a shovel. You're going to know how to run a shovel properly. So yes, he could have sat me on the excavator, the backhoe, the dozer, anything like that.

The very first thing he did was showed me how to use a hand shovel. Because sometimes you had to dig around the edges, and you certainly had to know what good things look like when you were trying to do a septic system, or something like that. You needed to know what the end result needed to look like. So to me, it's the same thing. You do need to know some of the hand coding concepts, and things like that. You need to know how code works. You need to be able to review it and understand how it works. And writing it is a great way to learn that. But I think that coding boot camps that don't use AI assistance are like teachers that said, you're not going to be walking around with a calculator in your pocket, back when I was a kid. Which we do now. We have calculators in our pockets. And so boot camps need to integrate these things and teach their students to be prompt engineers. They need to be good at this. But they also need to know how the code works.

Mazen Chami:

There's also, I see it all the time at boot camps where one of the first modules is a whole week of going through the logic of the Tower of Hanoi, and then how to change that to code. That one a lot of people trip up on. And that module usually can weed out a lot of people. But then there's one bootcamp where if you don't do well on it, you can still work on it throughout the year. And you see people get better at it because they then start understanding logic and all that. But now, as a junior developer who has listened to this podcast, will just install a GitHub Copilot extension and Tower of Hanoi is done for them. What are they gaining from it for the future?

Jamon Holmgren:

Yeah. I think that the usefulness of those have been probably overblown anyway, to start with. And it wasn't really about being able to execute on certain algorithms, or things like that. Although, with that said, when I learn a new language I often will write a Dijkstras, or A* pathfinding algorithm just because it's fun, and I can learn the language. I might still do that with a new language, using Copilot to show me how to build that algorithm in the other language. But I'll tell you what, if you learn the concepts of languages like I have, over the many years I've done it, you will be in a position where you can look at other languages and once you understand the basics of the syntax, you can understand if the logic is right or not.

Mazen Chami:

They look similar.

Robin Heinze:

That's based on your 20 years of building stuff from scratch without AI coding tools. I'm curious, we really just don't know what impact it's going to have on people learning how to code. And we probably won't for a few years at least until we start seeing juniors entering the market who have been using Copilot from the day they first started.

Jamon Holmgren:

I think it'll get worse before it gets better, for sure. You'll see worse code being deployed. And the very skeptical people will be like, ah, this AI is ruining coding. But we'll figure it out. No doubt. People tend to see these issues and think that they're static and they'll never be fixed.

Robin Heinze:

We can adapt.

Jamon Holmgren:

It's like, no, they're going to be a... Yeah, we're going to look at that. We're going to say, this isn't right. We're going to fix it.

Robin Heinze:

Coding has adapted to all sorts of things, like IDE’s, like linters, tests, unit tests.

Jamon Holmgren:

Compilers. There was a time when you weren't supposed to compile your code, you were supposed to hand write everything. And these compilers were going to dumb down the code because you just write this dumbed down high level code like C, and then it would create machine code that wasn't as good as the humans. That was a thing back in the day. This has been over and over and over same thing.

Robin Heinze:

AI's not going anywhere, we're going to have to adapt. And what it means to be a developer it's just going to look different in the next few years.

Jamon Holmgren:

My son is 17, almost 18, and he's starting his coding journey. He just got hired by a company. And so he's in that in-between stage. I told him he's one of the last of the old programmers.

Robin Heinze:

You mean at 17, he's old?

Jamon Holmgren:

He is. It's the ones who are 12 right now that are going to be coming in when it's a very different story. I know we're getting long here, but I want to talk about the ethics of AI coding. Every time a new technology comes out there's a public discussion to be had about it. There are issues. There are things where it's like, "Hey, we don't want this. This is a problem." How we should use it, how we shouldn't use it. One of the big ones is licensing. It's like, hey, AI coding tools are just stealing my work, just blatantly stealing it, and then they're charging 10 bucks a month for it. This isn't right. I have my own thoughts about this, but I am curious about yours.

Robin Heinze:

I'm not a lawyer. I honestly have no idea what the legal complexities are. But I would say if you don't want people using your code, why is it open source? If your code is open source and it's a library or a package that people are using, they're already using it for their own profit many times over. I'm not sure how this is super different. If you have an MIT license on your code, people can take it and use it, and modify it for whatever gain. So don't open source your stuff if you don't want people using it.

Mazen Chami:

I agree with that, Robin. And I think I've heard, and I've actually gone through this with one of our recent clients, their VPN does not let you use Copilot. I remember going through and just having this huge discussion about, hey, can we open up this URL so I could just authenticate GitHub Copilot so I could use it? And there was this whole back and forth where eventually I was like, "All right, fine. I don't need GitHub Copilot."

Robin Heinze:

Big companies' legal departments are very nervous about this.

Mazen Chami:

Correct.

Robin Heinze:

Because there's not a lot that's been defined. There's not a lot of precedent. It's a very murky legal area, so that makes them nervous and they tend to want to just say no.

Mazen Chami:

And when you enter credit card information, so you have the PCI compliance, and then you have the medical HIPAA compliance. All that then just makes it super complicated. Where some companies like, this one was just-

Robin Heinze:

Even though Copilot is not uploading anything that you write, it's only if you've published it publicly to GitHub.

Mazen Chami:

It's still so new that I think no one wants to believe that just yet.

Robin Heinze:

Yeah, exactly. It hasn't been scrutinized. It has not held up under any legal challenge.

Mazen Chami:

Exactly. And it might soon. I assume it took-

Robin Heinze:

I'm guessing there's probably lawsuits already in the works.

Mazen Chami:

It took cryptocurrency, what, four or five years before the legal aspect started coming out of it. So, very soon.

Jamon Holmgren:

I think it'll be faster for AI just because there's actually a use for AI.

Mazen Chami:

I wonder if there's anything right now.

Jamon Holmgren:

Why are you laughing, Robin?

Robin Heinze:

Just slid that major burn in to cryptocurrency.

Jamon Holmgren:

Disgustedly unfollowed this. I'm sorry crypto people. Why kick you when you're down? We need to wrap up here. I did want to say Gant Laborde had a point that if you can't use open code, like open source code to train your models, then only big companies with vast amounts of code will benefit from that. So basically you're just saying, we only want Google to have good AI. OpenAI wouldn't happen because it wouldn't have access. Only GitHub is going to have a good AI.

Mazen Chami:

Just real quick, we're talking about legality. As of November 18th, 2022, a class action lawsuit has been filed in the United States Federal Court challenging the legality of GitHub Copilot and other related OpenAI codex. The suit against GitHub, Microsoft, and OpenAI claims violation of open source licenses, and could have a wide impact in the world of artificial intelligence. So it's coming.

Jamon Holmgren:

Man, I could just rant.

Robin Heinze:

It'll be interesting to see what comes out of that.

Mazen Chami:

Yeah.

Jamon Holmgren:

It will be interesting, but this is purely a legal pushback against something that's coming anyway.

Mazen Chami:

Exactly.

Jamon Holmgren:

And if you ban it in the US, you're just saying, okay, we want other countries to get good at this. Because it's coming no matter what. It's ridiculous that this is how people react to it. Maybe it's just a money-making scheme. That's probably what it is.

Mazen Chami:

The website's, GitHubCopilotlitigation.com. And it's basically they're saying AI and GitHub Copilot relies on unprecedented open source software piracy.

Robin Heinze:

I mean there’s similar legal challenges and discussions around Stable Diffusion and a lot of the other AI tools claiming theft of intellectual property and copyright.

Jamon Holmgren:

I just don't know how you put the genie back in the bottle. It's out.

Robin Heinze:

I'm just super curious to watch it all unfold. See how the world changes.

Jamon Holmgren:

Yeah, there's definitely going to be a battle happening. But it's lawsuits against cars by horse people, or something along those lines. I don't know. Anyway, do you have advice for developers who are worried about AI?

Mazen Chami:

Use it.

Robin Heinze:

Use it. I would say use it. Get to know it. See what it does. Understand it. The enemy you know is better than the enemy that you don't, or whatever the saying is.

Mazen Chami:

Keep your enemies close.

Robin Heinze:

Keep your enemies close, something like that.

Jamon Holmgren:

Friends close, and your enemies closer.

Robin Heinze:

Yeah. If you're skeptical about Copilot, but you haven't really used it very much, go use it. Just see what it can do. You may be impressed-

Mazen Chami:

Drink the Kool-Aid.

Robin Heinze:

And at worst case, you'll actually have more evidence to back up your claims about why it sucks.

Jamon Holmgren:

And I would say also focus on the human aspects of the job. The things that are uniquely human, the things that we want to... For example, let's say that there was an AI that generated 300 super, super compelling TV shows. I'm less interested if a human's not involved. If you could just click a button and regenerate, it's just not as interesting to me. I want a human involved in some way. Focus on the human aspects of the job, the relationships, things like that. I think that's the part where really keeps you secure. We have more to say about this, but we're way over time here. So sorry to the editors who have to deal with this extremely long episode. I'll wrap it up really quickly. You can find us online. Robin is @Robin-Heinze. Mazen is @MazenChami.

I'm @JamonHolmgren, on Twitter as well as other places. Can go to React Native Radio @ReactNativeRDIO. As always, thanks to our producer and editor, Todd Werth. Our assistant editor and episode release coordinator, and new dad. He is already a dad, but he's a new dad again, Jed Bartausky. Congratulations, Jed. Our designer, Justin Huskey. And our guest coordinator, Derek Greenberg. Thanks to our sponsor Chain React. Check it out, chainreactconf.com. Thank you to all 5,000 of you staring at us with your beautiful eyeballs right now as we wrap up this episode. Robin, do you have a quick mom joke?

Robin Heinze:

Let's see what Chat GPT has for a mom joke.

Jamon Holmgren:

It's already taking your job.

Robin Heinze:

Already taking my job. Why was the computer cold?

Jamon Holmgren:

Why?

Robin Heinze:

Because it left its Windows open.

Jamon Holmgren:

Oh, man. See, that's even pretty decent.

Mazen Chami:

That's a good one.

Jamon Holmgren:

All right, we'll see you all next time.

Robin Heinze:

Bye.