AI Can Write Code. Why Isn’t Software Better?

The a16z Show

Ben Horowitz and Martin Casado sit down with TypeSafe AI founder Diogo Almeida to discuss why AI coding agents haven't yet led to widespread software

Key takeaways

  • Coding agents like Cursor and Codex increase development speed but do not fundamentally change the nature or power of existing software.
  • TypeSafe's Jev aims to provide a new primitive that allows developers to integrate natural language intent directly into program logic.

Main topics

  • AI coding agents vs. smart software
  • Probabilistic programming primitives

Notable quotes

Where the fuck is all the automation?

Conclusion

The episode suggests that the next era of computing will be defined by

Transcript preview

Speaker 4 (0:00) Where the fuck is all the automation? Speaker 2 (0:01) AI is so unbelievably smart, and yet it's so useless at all other stuff. It doesn't matter how much AI coding agents you use, the software actually isn't getting better. Maybe you're writing it faster. It's arguably getting worse. OpenAI has been trying to Speaker 4 (0:14) automate customer service since 2020. What I want instead is smart software. I want to expand what software itself can do, such that things that should be automatable can then be automatable. My favorite thing that you guys say is, we built. prod, Speaker 3 (0:29) not God. Because if we had any other kind of like big lab leader, even if they had joy, they would cover it up. And then your view is Speaker 4 (0:39) so different. You're like, no, we're going to create a way better world. For nuanced reasons, I don't think we are on the path of RSI. In the saspocalypse story, Speaker 1 (0:50) AI can write software. But what if the bigger opportunity is putting intelligence inside the software itself? In this episode, Ben Horowitz and Martin Casado sit down with TypeSafe AI founder Diogo Almeida to talk about Jev and a different vision for how AI changes computing. Diogo argues that coding agents make it faster to produce the same kind of software we already have. Jev is aimed at expanding what software itself can do, giving developers a new primitive for turning natural language intent into decisions that programs can actually use. They get into why reliability matters more than impressive demos. what a new era of probabilistic programming could look like, and why AI might make existing software dramatically more useful, rather than simply replacing it. And beneath all of this is the question that drove Diogo to build TypeSafe in the first place. If AI is already this smart, where is all the automation? Speaker 3 (1:47) Today, we have the founder and leader of TypeSafe, Diogo, with us, who is a bit of a hero to both Martine and me. He is not only building a really interesting product, but creating what we think is a very important Speaker 2 (2:04) movement. So we're super excited about today. Thanks for coming. Thank you. Speaker 3 (2:09) Maybe you can give us a brief on what is Jev, what is TypeSafe, why is it important? Is this a curse friendly or not? Yeah. Oh, Speaker 4 (2:19) okay. Speaker 3 (2:20) Cool. Speaker 2 (2:21) Okay, okay, okay. Cool. So I was actually asked for Speaker 4 (2:25) like an elevator pitch, which I tend to ramble on and I don't do well. But like I realized my favorite elevator pitch for Jeff is where the fuck is all the automation? Like this is like so unbelievably tragic. Yes. So much intelligence. AI is so unbelievably smart. And yet so not that I hate on chatbots or coding agents. I love them myself. But it's like so useless at all other stuff. And it's tragic. It's tragic that we have so much like diamond in the rough, but not polished for work. But TypeSafe is making AI for software. You know, we want Speaker 1 (2:59) to make AI powerful, not just for humans in the loop, but to Speaker 4 (3:02) actually build real software. And Jiv to us is our first model in this whole space to make it way, way better to like make automation. Speaker 3 (3:11) Yeah. And so it's been interesting because It's kind of caught fire in software world. So one of the things that made us go, what the hell is going on here is like every developer we know is calling us and going, oh, this is freaking awesome. It's great. It's fast. It's great. Everything's better. Then how does that, because everybody thinks of, well, we've got cloud code. We've got codecs. Don't we already have that? Like, what's the difference? And then how does that lead to real automation? Speaker 4 (3:39) Ooh, Speaker 3 (3:39) I Speaker 4 (3:40) wish I had like a, some. slopped visuals because I have a favorite Speaker 1 (3:44) slopped Speaker 4 (3:45) visual for this. So I like Cloud Code and Codex. I love the description from Gary Tannenham. It's just-in-time software. Incredible way to describe what they're doing. It makes software on the fly, and you can program software in natural language, but it has the same expressive power as software. What I want instead is smart software. Instead of automating software engineering, I want to expand what software itself can do, such that things that should be automatable can then be automatable. And like in a more flowery language, I want to express things like intent. I want to expand the vocabulary of what we can do. And I can talk about like all sorts of like weird sci-fi things I want, but like programming is like hyper specifying like valuable things and then infinitely replicating them. It's so freaking cool. And I want to just make that more. Interesting. So one way to think about it is Speaker 3 (4:37) instead of kind of a tool that somewhat replaces a software engineer with a faster, maybe not even as good software engineer, what you're saying is, no, no, no, we're going to super empower the software engineers we have to write way, way better, more interesting things. Yeah, yeah. So Speaker 2 (4:56) this is, by the way, I just think so many people miss this point. And it's such a subtle point. And it's so important to actually tease it out, which is. If you use something like CloudCoder Codex, which is great, or Cursor, which is great, they write code. But that code is the same thing a human being would have write. Maybe it's better, maybe it's worse, but it's basically still code, just like code looked 10 years ago. Speaker 3 (5:15) And Speaker 2 (5:15) the thing with Jev is whether or not you're CloudCoder or a human, you have this new primitive, this new thing that you stick in your code that actually expands the power of software. So instead of writing code, it is something that you include in your code. Speaker 3 (5:29) Which, Speaker 2 (5:30) by the way, is interesting because... It's this very powerful primitive, which would be great if you explain, but it's also a little bit different than like how programmers think. For example, like it has this notion of probabilities or maybe... So an Speaker 3 (5:42) intelligent layer inside the software. Yeah, Speaker 2 (5:45) think of like a library that you can use natural language to describe what you want and you give it kind of a state machine and then it will choose what to do with some confidence levels, which we kind of haven't really had Speaker 4 (5:57) before. Ooh. There's a lot of tricks there. I will jump into one thing first, which is I love the first thing you said in the direction of where the fuck is all the automation. I love software so much. I wish I could be writing it all day. I would not recommend being a CEO to people, but whatever. And also it's... while Speaker 1 (6:17) that AI is so cool and software has been unchanged for 10 years. Speaker 4 (6:21) You know, like that to me, like no one can square this together. And the most we can do is add like a little chatbot in the side sometimes that can take actions, but not all actions because some of Speaker 2 (6:31) the Speaker 4 (6:31) actions are not reliable enough. So I just want to give like that tiny aside. I love the point. I'm going to jump back to the point about like, this is a little bit of a different way to think about it. Yes, I think that machine native doesn't exactly match bits perfectly. And like, that's actually the art form that we are trying to do. In our onboarding on day one, I draw like the Venn diagram of like what AI is good at, what is valuable in code, we're in the middle. So, you know, we don't output like extrapolated floats, for example, because like AI is just bad at that. But things like probabilities are not exactly novel. And it's similar to the, is Jev just a classifier argument? Jev is absolutely a classifier. Like classifiers are sick. classifiers were designed to be useful. And actually, Speaker 1 (7:17) it's the Speaker 4 (7:17) same interface as like some of those ML concepts, because these came from like practical people who are trying to make systems work. And what I'm seeing is happening now is that Jev actually, my guess is that Jev probably is better than having an MLE team from 2019 making the stuff for you and you can just program it on the fly. Who knows what could be built? Because like there were not that many good MLE teams in 2019 to build like narrow things and to be able to like collect data sets and measure it and all of that. And Speaker 2 (7:47) it is just the beginning. By the way, to this point, do you think there's a slider bar here where like on one end it's like... language in, language out, like we have today. On the other end is like an existing imperative program. And then you can kind of move between the two. Or do you think like this is like the point in the design space, which is language in, kind of state machine out, which is going to solidify as a general purpose thing for programmers? Speaker 4 (8:07) Oh, that's a tricky one. So I will say the answer in my heart. The answer in my heart is that it is a slider. And actually, when I design... for the properties we have. I might have made mistakes due to my personal preferences, but like intelligence per dollar is my North Star right now. And it could be wrong, just to be clear. Intelligence per second might be more valuable in the short term. But even like our interface, like calling the input state, this was intentional. Like it's to say- Oh, that's Speaker 1 (8:34) great. I didn't catch that. It's meant to be the inside of Speaker 2 (8:37) programs. Speaker 4 (8:37) Oh, I love that. Speaker 2 (8:37) So in my heart, Speaker 4 (8:40) it's like, so we are really optimizing. A lot of the work I do is for- even more complicated arrangements of the internals of program state. Can you put intelligence in there? I think that this is going to be an ever-present battle to have. We're very intentional about our design. And also pragmatically, I think certain things happen, like it's easier to make an AI at these milliseconds. So it'll be more like a database for a while than like a standard library thing. But I would love it to be a standard library thing too. Can Speaker 2 (9:07) I just pull back a little bit? Like what is the alchemy that creates it? Diogo. I mean, like, you speak... When Speaker 4 (9:12) a man and a woman love each other. Speaker 2 (9:15) You speak like an AI researcher, you speak like a systems person, you speak like a programmer. And normally these things have been like not super overlapping. And you're taking AI, which we've been pushing towards being a being, and you're making it a programmer's tool. So maybe a little bit about your personal journey that... My Speaker 4 (9:32) history into AI is somewhat unorthodox. I was a mathlete. I was a... award-winning mathlete. The way I describe it is I was good enough at, this is a cringe, I was good enough at math to get girls. So that's quite good. Speaker 2 (9:45) No, that was a thing. Speaker 4 (9:46) Yeah, I Speaker 2 (9:46) did. You have to Speaker 3 (9:47) get quite good. And what kind of girls do you get when you're that good at math? That's an excellent question. Speaker 4 (9:53) Our Speaker 3 (9:53) audience needs to know. Oh, no. We have to Speaker 4 (9:57) inspire the youth here. Speaker 1 (9:58) Don't do it. Youth, don't do Speaker 4 (10:00) it. It's not worth it. Just be cool and chill and interesting. Speaker 4 (10:05) Don't overcompensate. Wow, I can't believe I said that. So I was a mathlete, but I actually never, oh man, this also is a little cringe. I never really liked math. I never really tried. I was just like big fish in a little pond. And to me, math was always the path I was set on, but I