← Back to library

Transcript: Why Rust is the Ideal Language for Vibe-Coding — Daniel Szoke, Sentry

AI Engineer16m 25sTranscript ✅Added May 27, 11:09 pm GMT+8

Source video ID: ugUeZ8-b-u0

Transcript

  • 2:14 — name is name is Daniel Zo. I’m uh the Rust SDK name is Daniel Zo. I’m uh the Rust SDK name is Daniel Zo. I’m uh the Rust SDK maintainer at Sentry and name is Daniel Zo. I’m uh the Rust SDK maintainer at Sentry and I want to tell maintainer at Sentry and I want to tell maintainer at Sentry and I want to tell you why I think Rust is the ideal you why I think Rust is the ideal you why I think Rust is the ideal language for vibe you why I think Rust is the ideal language for vibe coding. So language for vibe coding. So language for vibe coding. So the conventional wisdom on what language for vibe coding. So the conventional wisdom on what language the conventional wisdom on what language the conventional wisdom on what language to use for agentic coding or vibe coding to use for agentic coding or vibe coding to use for agentic coding or vibe coding however you refer to it to use for agentic coding or vibe coding however you refer to it um it’s rust is however you refer to it um it’s rust is however you refer to it um it’s rust is probably not one of the first things you probably not one of the first things you probably not one of the first things you think probably not one of the first things you think of um you know maybe you think
  • 2:44 — think of um you know maybe you think think of um you know maybe you think you know probably think of um you know maybe you think you know probably chat gpt has a good you know probably chat gpt has a good you know probably chat gpt has a good idea what’s the best agentic coding idea what’s the best agentic coding idea what’s the best agentic coding language given that it’s also idea what’s the best agentic coding language given that it’s also a an agent language given that it’s also a an agent language given that it’s also a an agent of some sort and it would tell you that of some sort and it would tell you that of some sort and it would tell you that there’s no single number of some sort and it would tell you that there’s no single number one language there’s no single number one language there’s no single number one language language. Um, but that Python is language. Um, but that Python is language. Um, but that Python is probably the top language. Um, but that Python is probably the top language. Um, and as a probably the top language. Um, and as a probably the top language. Um, and as a strong number too, it said JavaScript strong number too, it said JavaScript strong number too, it said JavaScript and TypeScript strong number too, it said JavaScript and TypeScript when I asked it. Um, and and TypeScript when I asked it. Um, and and TypeScript when I asked it. Um, and I think that this is in at least my I think that this is in at least my I think that this is in at least my experience experience experience pretty true. Although I would flip the pretty true. Although I would flip the pretty true. Although I would flip the order because
  • 3:15 — pretty true. Although I would flip the order because um, Typescript seems to order because um, Typescript seems to order because um, Typescript seems to have come out as like the top choice order because um, Typescript seems to have come out as like the top choice for have come out as like the top choice for have come out as like the top choice for agentic coding lately. And um so there’s agentic coding lately. And um so there’s agentic coding lately. And um so there’s even this article agentic coding lately. And um so there’s even this article from GitHub that came even this article from GitHub that came even this article from GitHub that came out uh I guess late last year and even this article from GitHub that came out uh I guess late last year and it out uh I guess late last year and it out uh I guess late last year and it says that AI like they think that AI has says that AI like they think that AI has says that AI like they think that AI has pushed TypeScript to says that AI like they think that AI has pushed TypeScript to the number one um pushed TypeScript to the number one um pushed TypeScript to the number one um language on GitHub by contributor counts language on GitHub by contributor counts language on GitHub by contributor counts at least. language on GitHub by contributor counts at least. Um, so they know it’s at least. Um, so they know it’s at least. Um, so they know it’s Typescript is the number one language Typescript is the number one language Typescript is the number one language and they they
  • 3:45 — Typescript is the number one language and they they strongly suspect that and they they strongly suspect that and they they strongly suspect that that’s because of people using it for and they they strongly suspect that that’s because of people using it for AI that’s because of people using it for AI that’s because of people using it for AI assisted development. But why are these assisted development. But why are these assisted development. But why are these languages languages languages Python, TypeScript, JavaScript so ideal Python, TypeScript, JavaScript so ideal Python, TypeScript, JavaScript so ideal for vibe coding? Python, TypeScript, JavaScript so ideal for vibe coding? Um, at least in the for vibe coding? Um, at least in the for vibe coding? Um, at least in the this sort of conventional for vibe coding? Um, at least in the this sort of conventional wisdom. So this sort of conventional wisdom. So this sort of conventional wisdom. So first of all, they’re common in familiar first of all, they’re common in familiar first of all, they’re common in familiar languages. languages. languages. Um, so they’re they’re they’re usually Um, so they’re they’re they’re usually Um, so they’re they’re they’re usually the languages you would learn
  • 4:15 — Um, so they’re they’re they’re usually the languages you would learn if you the languages you would learn if you the languages you would learn if you were learning programming from scratch. were learning programming from scratch. were learning programming from scratch. So they’re easy for humans and they were learning programming from scratch. So they’re easy for humans and they also So they’re easy for humans and they also So they’re easy for humans and they also seem to be easy for LLMs. seem to be easy for LLMs. seem to be easy for LLMs. There’s also a lot of frameworks, There’s also a lot of frameworks, There’s also a lot of frameworks, libraries, There’s also a lot of frameworks, libraries, and examples out there. Um, libraries, and examples out there. Um, libraries, and examples out there. Um, so that that’s helpful if you’re libraries, and examples out there. Um, so that that’s helpful if you’re so that that’s helpful if you’re so that that’s helpful if you’re building something new from scratch, of building something new from scratch, of building something new from scratch, of course, that you can build it on top of course, that you can build it on top of course, that you can build it on top of something. course, that you can build it on top of something. And you know it’s helpful for something. And you know it’s helpful for something. And you know it’s helpful for humans. It’s also helpful for agents. something. And you know it’s helpful for humans. It’s also helpful for agents. humans. It’s also helpful for agents. humans. It’s also helpful for agents. They’re fast to scaffold and run. They’re fast to scaffold and run. They’re fast to scaffold and run. They’re dynamic languages.
  • 4:45 — They’re fast to scaffold and run. They’re dynamic languages. They’re They’re dynamic languages. They’re They’re dynamic languages. They’re interpreted. At least JavaScript and interpreted. At least JavaScript and interpreted. At least JavaScript and Python are TypeScript. Maybe there’s Python are TypeScript. Maybe there’s Python are TypeScript. Maybe there’s some light Python are TypeScript. Maybe there’s some light compilation down to some light compilation down to some light compilation down to JavaScript or something. But it’s pretty JavaScript or something. But it’s pretty JavaScript or something. But it’s pretty easy just to run JavaScript or something. But it’s pretty easy just to run it and see what it does easy just to run it and see what it does easy just to run it and see what it does and then you iterate on that. And uh easy just to run it and see what it does and then you iterate on that. And uh and then you iterate on that. And uh and then you iterate on that. And uh particularly for agents, the typing particularly for agents, the typing particularly for agents, the typing support is helpful so that the agent support is helpful so that the agent support is helpful so that the agent doesn’t misuse support is helpful so that the agent doesn’t misuse types. Um but uh yeah, doesn’t misuse types. Um but uh yeah, doesn’t misuse types. Um but uh yeah, there’s the any type doesn’t misuse types. Um but uh yeah, there’s the any type that it kind of there’s the any type that it kind of there’s the any type that it kind of undermines that a little bit in in undermines that a little bit in in undermines that a little bit in in Typescript and and
  • 5:15 — undermines that a little bit in in Typescript and and typed Python. But you Typescript and and typed Python. But you Typescript and and typed Python. But you know overall these languages Typescript and and typed Python. But you know overall these languages LLMs the know overall these languages LLMs the know overall these languages LLMs the models themselves are pretty good at models themselves are pretty good at models themselves are pretty good at outputting models themselves are pretty good at outputting runnable code in the first outputting runnable code in the first outputting runnable code in the first try because these languages are outputting runnable code in the first try because these languages are simple try because these languages are simple try because these languages are simple um and they impose few constraints. So try because these languages are simple um and they impose few constraints. So I um and they impose few constraints. So I um and they impose few constraints. So I think because of this fact that LLMs think because of this fact that LLMs think because of this fact that LLMs just seem to be good at writing them, think because of this fact that LLMs just seem to be good at writing them, just seem to be good at writing them, just seem to be good at writing them, people jump to these languages. Um, but people jump to these languages. Um, but people jump to these languages. Um, but I think
  • 5:45 — people jump to these languages. Um, but I think something that a lot of people I think something that a lot of people I think something that a lot of people in my experience don’t question as much in my experience don’t question as much in my experience don’t question as much is whether in my experience don’t question as much is whether this is even something we is whether this is even something we is whether this is even something we want to optimize for, right? is whether this is even something we want to optimize for, right? Um, the want to optimize for, right? Um, the want to optimize for, right? Um, the classic vibe coding languages are easy classic vibe coding languages are easy classic vibe coding languages are easy for the classic vibe coding languages are easy for the models to write, but is that for the models to write, but is that for the models to write, but is that even a good thing? even a good thing? even a good thing? My even a good thing? My argument is that the importance of it My argument is that the importance of it My argument is that the importance of it being easy for the model to My argument is that the importance of it being easy for the model to write the being easy for the model to write the being easy for the model to write the language is overstated. And in fact, I language is overstated. And in fact, I language is overstated. And in fact, I would even say that in some
  • 6:15 — language is overstated. And in fact, I would even say that in some cases, it’s would even say that in some cases, it’s would even say that in some cases, it’s a bad thing that these languages are a bad thing that these languages are a bad thing that these languages are easy for the models a bad thing that these languages are easy for the models to write. easy for the models to write. easy for the models to write. um the dynamic and flexible nature of um the dynamic and flexible nature of um the dynamic and flexible nature of the languages um the dynamic and flexible nature of the languages is what makes it easy for the languages is what makes it easy for the languages is what makes it easy for the agent or for the the languages is what makes it easy for the agent or for the LLM I should say to the agent or for the LLM I should say to the agent or for the LLM I should say to write JavaScript, Python, TypeScript. Um the agent or for the LLM I should say to write JavaScript, Python, TypeScript. Um write JavaScript, Python, TypeScript. Um write JavaScript, Python, TypeScript. Um but this same flexibility also makes it but this same flexibility also makes it but this same flexibility also makes it very easy to make mistakes, but this same flexibility also makes it very easy to make mistakes, sometimes very easy to make mistakes, sometimes very easy to make mistakes, sometimes even obvious mistakes, sometimes less even obvious mistakes, sometimes less even obvious mistakes, sometimes less obvious mistakes.
  • 6:45 — even obvious mistakes, sometimes less obvious mistakes. obvious mistakes. obvious mistakes. adding typing is a helpful constraint, adding typing is a helpful constraint, adding typing is a helpful constraint, but that only gets you so far adding typing is a helpful constraint, but that only gets you so far um because but that only gets you so far um because but that only gets you so far um because it only gives you the type safety and it only gives you the type safety and it only gives you the type safety and also it’s not a very strong it only gives you the type safety and also it’s not a very strong type safety also it’s not a very strong type safety also it’s not a very strong type safety um in Typescript or Python. um in Typescript or Python. um in Typescript or Python. And um in Typescript or Python. And this is of course a problem because And this is of course a problem because And this is of course a problem because LLMs are fallible. They will always be LLMs are fallible. They will always be LLMs are fallible. They will always be fallible LLMs are fallible. They will always be fallible because they are by design fallible because they are by design fallible because they are by design non-deterministic systems. So fallible because they are by design non-deterministic systems. So hopefully non-deterministic systems. So hopefully non-deterministic systems. So hopefully in the future they get better at making in the future they get better at making in the future they get better at making mistakes less often,
  • 7:15 — in the future they get better at making mistakes less often, but I don’t think mistakes less often, but I don’t think mistakes less often, but I don’t think this is something that would ever this is something that would ever this is something that would ever disappear entirely. this is something that would ever disappear entirely. And so just like the disappear entirely. And so just like the disappear entirely. And so just like the smartest humans make mistakes and we smartest humans make mistakes and we smartest humans make mistakes and we need smartest humans make mistakes and we need to guard against human error, we’re need to guard against human error, we’re need to guard against human error, we’re also going to need to guard against LLM need to guard against human error, we’re also going to need to guard against LLM also going to need to guard against LLM also going to need to guard against LLM error. One way that folks often would do error. One way that folks often would do error. One way that folks often would do that especially also in error. One way that folks often would do that especially also in the conventional that especially also in the conventional that especially also in the conventional uh vibe coding languages is adding uh vibe coding languages is adding uh vibe coding languages is adding tests. uh vibe coding languages is adding tests. This is a huge help but there are tests. This is a huge help but there are tests. This is a huge help but there are a lot of problems
  • 7:45 — tests. This is a huge help but there are a lot of problems with only relying on a lot of problems with only relying on a lot of problems with only relying on having tests and and code review agents. a lot of problems with only relying on having tests and and code review agents. having tests and and code review agents. having tests and and code review agents. Um Um Um firstly, you know, if you don’t prompt Um firstly, you know, if you don’t prompt firstly, you know, if you don’t prompt firstly, you know, if you don’t prompt the agent skillfully, it’ll often write the agent skillfully, it’ll often write the agent skillfully, it’ll often write the tests after the implementation and the tests after the implementation and the tests after the implementation and then you just end the tests after the implementation and then you just end up testing then you just end up testing then you just end up testing implementation details without actually implementation details without actually implementation details without actually testing the behavior properly. implementation details without actually testing the behavior properly. testing the behavior properly. testing the behavior properly. Uh even with that test-driven Uh even with that test-driven Uh even with that test-driven development though, tests Uh even with that test-driven development though, tests usually can development though, tests usually can development though, tests usually can only prove incorrectness when they fail only prove incorrectness when they fail only prove incorrectness when they fail because
  • 8:15 — only prove incorrectness when they fail because it’s impractical to test every because it’s impractical to test every because it’s impractical to test every single possible input because it’s impractical to test every single possible input combination. single possible input combination. single possible input combination. You can’t prove that every input You can’t prove that every input You can’t prove that every input produces You can’t prove that every input produces the correct output in a lot of produces the correct output in a lot of produces the correct output in a lot of cases. cases. cases. And then of course cases. And then of course if LLMs are the ones And then of course if LLMs are the ones And then of course if LLMs are the ones generating the tests, they may make generating the tests, they may make generating the tests, they may make mistakes when writing those generating the tests, they may make mistakes when writing those tests. And mistakes when writing those tests. And mistakes when writing those tests. And the same thing applies to coding review the same thing applies to coding review the same thing applies to coding review agents. agents. agents. And agents. And then kind of more on a philosophical And then kind of more on a philosophical And then kind of more on a philosophical level, right? We all know AI stands
  • 8:45 — And then kind of more on a philosophical level, right? We all know AI stands for level, right? We all know AI stands for level, right? We all know AI stands for artificial intelligence, but there’s artificial intelligence, but there’s artificial intelligence, but there’s this book called Nexus I recently artificial intelligence, but there’s this book called Nexus I recently read this book called Nexus I recently read this book called Nexus I recently read and I can highly recommend it to anyone and I can highly recommend it to anyone and I can highly recommend it to anyone who hasn’t read it yet. It’s from and I can highly recommend it to anyone who hasn’t read it yet. It’s from an who hasn’t read it yet. It’s from an who hasn’t read it yet. It’s from an author Yuvall Noah Harari. He’s a author Yuvall Noah Harari. He’s a author Yuvall Noah Harari. He’s a historian and he has kind of a unique author Yuvall Noah Harari. He’s a historian and he has kind of a unique historian and he has kind of a unique historian and he has kind of a unique perspective on artificial intelligence. perspective on artificial intelligence. perspective on artificial intelligence. So he’s discussing perspective on artificial intelligence. So he’s discussing So he’s discussing So he’s discussing human information networks all the way human information networks all the way human information networks all the way from stone ages to human information networks all the way from stone ages to printing press to from stone ages to printing press to from stone ages to printing press to internet to now with LLMs,
  • 9:15 — from stone ages to printing press to internet to now with LLMs, right? Um and internet to now with LLMs, right? Um and internet to now with LLMs, right? Um and he thinks LLMs are really unique because he thinks LLMs are really unique because he thinks LLMs are really unique because it’s the first time he thinks LLMs are really unique because it’s the first time we have something it’s the first time we have something it’s the first time we have something that’s nonhuman that’s able to produce that’s nonhuman that’s able to produce that’s nonhuman that’s able to produce human language. that’s nonhuman that’s able to produce human language. human language. human language. And um a point he makes that really And um a point he makes that really And um a point he makes that really stuck with me is that he And um a point he makes that really stuck with me is that he doesn’t like stuck with me is that he doesn’t like stuck with me is that he doesn’t like that the A in AI is artificial stuck with me is that he doesn’t like that the A in AI is artificial because that the A in AI is artificial because that the A in AI is artificial because it understates how different um LLMs and it understates how different um LLMs and it understates how different um LLMs and other