YouSaid · the spoken record

Chris Lattner

lines on the record
301
first
2023-06-02
most recent
2023-06-02
sittings or episodes
1
sources
podcast

Every line below is reproduced as it was said and linked to the record it came from. Nothing here is summarised or generated. Directory · Search · Corrections

  1. So, because I started in 2010, if I remember, and so that project, and I was involved with it for 12 years or something, right? That project has gone through its own really interesting story arc, right? And it's a mature, successful, used by millions of people system, right? Certainly not dead yet, right? But also going through that story arc, I learned a tremendous amount about building languages, about building compilers, about working with community and things like this. And so that experience, like I'm helping channel and bring directly into Mojo and other systems, same thing. Apparently I like building and iterating and evolving things. And so you look at this LVM thing that I worked on 20 years ago, you look at MLIR, right? And so a lot of the lessons learned in LLVM got fed into MLIR. And I think that MLIR is a way better system than LLVM was. And Swift is a really good system. And it's amazing. But I hope that Mojo will take the next step for steps.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  2. Their safety, right? So you talk about real types. I mean, not saying this is for everybody, but that's actually a pretty big thing, right? Yeah, And so there's a bunch of different aspects of what value Mojo provides. And so, I mean, it's funny for me. I've been working on these kinds of technologies and tools for too many years now. But you look at Swift. And we talked about Swift for TensorFlow, but Swift as a programming language. Swift's now 13 years old from when I started it.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  3. And so I have no idea. I can't predict that. But there's a lot of these places where, again, if you have a package that is half C and half Python, right, you just solve the pain, make it easier to move things faster, make it easier to debug and evolve your tech. Adopting Mojo kind of makes sense to start with, and then it gives you this opportunity to rethink these things.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  4. So, I think that a number of these projects will. And so one of the things again, this is just my best guess maintainers also has, I'm sure, plenty of other things going on. People really don't like rewriting code just for the sake of rewriting code. But sometimes people are excited about adopting a new idea. It turns out that while rewriting code is generally not people's Turns out that redesigning something while you rewrite it and using a rewrite as an excuse to redesign can lead to the 2.0 of your thing that's way better than the 1.0.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  5. Well, so I mean, the modular engines, all mojo. So again, come back to like we're not building mojo because it's fun. We're building mojo because we had to to solve these accelerators. That's the origin story.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  6. Only going to get weirder from here on out, right? And so to me, the exciting part about what we're building is it's about building that universal platform, which world can continue to get weird, because again, I don't think it's avoidable, it's physics, but we can help lift people's scale, do things with it, and they don't have to rewrite their code every time a new device comes out. And I think that's pretty cool. And so if Mojo can help with that problem, then I think that it will be hopefully quite interesting and quite useful to a wide range of people because there's so much potential and like there's so much, you know, maybe analog computers will become a thing or something, right? And we need to be able to get into a mode where we can move this programming model forward, but do so in a way where we're lifting people and growing them instead of forcing them to rewrite all their code and exploding them.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  7. If you squint and turn your head, what a GPU is. It's just a mini core, very simple CPU thing. And 10 years ago, it was CPUs and GPUs and graphics. Today, we have CPUs, GPUs, graphics, and AI because it's so important because the compute is so demanding, because of the smart cameras and the watches and all the different places the AI needs to work in our lives, has caused this explosion of hardware. And so part of my thesis, part of my belief of where computing goes, if you look out 10 years from now, is it's not going to get simpler. Physics isn't going back to where we came from.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  8. That's cool. You're not a bad person. If you get really excited about it and want to go all the way in the deep end and rewrite everything and whatever, that's cool, right? But I think the middle path is actually the more likely one where it's, you know, you come out with a new idea and you discover, wow, that makes my code way simpler, way more beautiful, way faster, way whatever. And I think that's what people like. If you fast forward and you said like 10 years up Right. I can give you a very different answer on that, which is I mean, if you go back and look at what computers look like 20 years ago, 18 months they got faster for free right 2x faster every 18 months it was like clockwork it was it was free right you go back 10 years ago and we entered in this world where suddenly we had multi-core CPUs and we had GPUs

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  9. Well, that's called growth, you know? And so one thing that I think is cool about Mojo, and again, those will take a little bit of time for, for example, the blog posts and the books and all that kind of stuff to develop and the language needs to get further along. But what we're doing, you talk about types, you can say, look, you can start with the world you already know, and you can progressively learn new things and adopt them where it makes sense. If you never do that,

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  10. And calls and cons and well, so you talk about dopamine hit. And so again, humans are not one thing. And some people love rewriting their code and learning new things and throwing themselves in the deep end and trying out a new thing. In my experience, most people don't. They're too busy. They have other things going on. By number, most people don't like this. I want to rewrite all my code. But even those people, the two busy people, the people that don't actually care about the language, they just care about getting stuff done, those people do like learning new things. And so you talk about the dopamine rush of 10x faster. Wow, that's cool. I want to do that again. Well, it's also like here's the thing I've heard about in a different domain. And now I don't have to rewrite all my code. I can learn a new trick.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  11. So hopefully Mojo will be that for a bunch of people building these hybrid packages are suffering. It's really painful. And so I think that we have a good shot of helping people. But the other side is it's okay if people don't use Mojo. It's not my job to say everybody should do this. I'm not saying Python is bad. Like I hope Python see Python all these implementations because Python ecosystem is not just CPython. It's also a bunch of different implementations with different trade-offs. And this ecosystem is really powerful and exciting as are other programming languages. It's not like TypeScript or something is going to go away, right? And so there's not a winner-take-all thing. And so I hope that Mojo is exciting and useful to people. But if it's not, that's also fine.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  12. Exactly. Well, in all seriousness, I think there's really, I'll give you two opposite answers. One is, I hope if it's useful, if it solves problems, and if people care about those problems being solved. Adopt the tech. That's kind of the simple answer. And when you're looking to get tech adopted, the question is, is it solving an important problem people need solved? And is the adoption cost low enough that they're willing to make the switch and cut over and do the pain up front so that they can actually do it, right?

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  13. Yeah, well, I mean, I think that the viral growth loop is to switch people to Unicode. I think that Unicode file extensions are what I'm betting on. I think that's going to be the thing Hehehehe

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  14. Well, and if you look at this, there's these growth cycles. If you look at what Causes things to become popular and then gain in popularity. There's reinforcing feedback loops and things like this. And I think Python has done, again, the whole community has done a really good job of building those growth loops and help propel the ecosystem. And I think that, again, you look at what you can get done with just a few lines of code. It's amazing

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  15. Well, they also learned Scratch, right? And things like this, too, but it's because Python is taught everywhere, right? Because it's easy to learn, right? And because it's pervasive.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  16. Kind of builds and builds and builds. And even go back before that. Like my kids learned Python. Not because I'm telling them to learn Python, but because

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  17. It just goes, right? Python has very low compile time, so you're not sitting there waiting. Python integrates into notebooks in a very elegant way that makes exploration super interactive and it's awesome, right? Python is also, it's like almost the glue of computing because it has such a simple object representation, a lot of things plug into it. That dynamic metaprogramming thing we were talking about also enables really expressive and beautiful APIs. So there's lots of reasons that you can look at technical things that Python has done and say like, okay, wow, this is actually a pretty amazing thing. And any one of those you can neglect, people all just talk about indentation and ignore the fundamental things. But then you also look at the community side, right? So Python owns machine learning. Machine learning is pretty

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  18. Yeah, so if you look at certain other languages, you say go and it just takes like Java, for example. It takes a long time to jit compile all the things. And then the VM starts up and the garbage collectors kicks in and then it revs its engines and then it can plow through a lot of internet stuff or whatever, right? Python is like scripting.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  19. I can tell you things I love about it. Maybe that's one way to answer the question, right? So huge package ecosystem. Super lightweight and easy to integrate. It has very low startup time.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  20. There, right? I mean, that's a different thing, right? And so if you anchor on, I love Julia and I want Julia to go further, then you can look at it from a different lens, but the lens we were coming at was, hey, everybody is using Python. Python isn't, the syntax isn't broken. Let's take what's great about Python and make it even better. And so it was just a different starting point. So I think Julia is a great language. The community is a lovely community. They're doing really cool stuff, but it's just a different, a slightly different angle.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  21. And so I think that was my error for not understanding that. And so I could have been maybe more sensitive to that. But there's major differences between what Mojo is doing and what Julia's doing. So as you say, Julia is not Python. And so one of the things that a lot of the Julia people came out and said is like, okay, well, if we put a ton of more energy in 10 more money or in engineering or whatever into Julia, maybe that would be better than starting Mojo. I mean, maybe that's true, but it still wouldn't make Julia into Python. So if you work backwards from the goal of let's build something for Python programmers without requiring them to relearn syntax, then Julia just isn't.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  22. So I will have to say that when we launched Mojo, One of the biggest things I didn't predict was the response from the Julia community. I was not, I mean, I've, okay, let me take a step back. I've known the Julia folks for a really long time. They're an adopter of LOVM a long time ago. Been pushing state of the art in a bunch of different ways. Julia is a really cool system. I had always thought of Julia as being mostly a scientific computing focused environment. And I thought that was its focus. I neglected to understand that one of their missions is to help make Python work end-to-end.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  23. Exactly. And so one of the things about that is in the context of it being a research project, I'm very happy with the fact that we built a lot of really cool technology. We learned a lot of things. I think the ideas went on to have influence in other systems like PyTorch. A few people use that, I hear. And so I think that's super cool. And for me personally, I learned so much from it. And I think a lot of the engineers that worked on it also learned a tremendous amount. And so, you know, I think that that's just really exciting to see. And I'm sorry that the project didn't work out. I wish it did, of course, right? But it's a research project, and so you're there to learn from it.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  24. Yeah, yeah, Intensive Flow is a good thing and it has many strengths. You could say Swift Protensil is a good idea, except for the Swift and except for the TensorFlow part.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  25. Still possible? Yeah, absolutely. The world changes and evolves, and there's definitely room for new and good ideas, but it just makes it so much harder. Lesson learned Swift is not Python, and people are not always in search of learning a new thing for the sake of learning a new thing. And if you want to be compatible with all the world's code, turns out. The world where it is. Second thing is that a lesson learned is that Swift is a very fast and efficient language, kind of like Mojo, but a different take on it still, really worked well with eager mode. And so eager mode is something that PyTorch does, and it proved out really well, and it enables really expressive and dynamic and easy to debug programming. TensorFlow at the time was not set up for that. Say that was not

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  26. Well, and so if you're saying, I'm going to solve a machine learning problem where all the programmers are Python programmers. And you say, the first thing you have to do is switch to a different language. Well, your new thing may be good or bad or whatever, but if it's a new thing, the adoption barrier is massive.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  27. Did not work out super well. And so there's a couple of different problems with that, one of which is that you may have noticed Swift is not Python. There's a few people that write Python code. And so it turns out that all of ML is pretty happy with Python.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  28. And so that project was a research project. And so the idea of that is to say, okay, well, let's look at innovative new programming models where we can get a fast programming language, we can get automatic differentiation into the language. Let's push the boundaries of these things in a research setting. Now, that project, I think, lasted two, three years. There's some really cool outcomes of that. So one of the things that's really interesting is I published a talk at an LOVM conference in 2018. Again, this seems like so long ago about graph program abstraction, which is basically the thing that's in PyTorch 2. And so PyTorch 2 with all this Dynamo Reo thing, it's all about this graph program abstraction thing from Python bytecodes. And so a lot of the research that was done ended up pursuing and going out through the industry and influencing things. And I think it's super exciting and awesome to see that. But the Swift Rotential Project itself.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  29. Jeff Dean, who's a rock star, as you know, right? And in 2017, TensorFlow is really taking off and doing incredible things. And I was attracted to Google to help them with the TPUs. And TPUs are an innovative hardware accelerator platform, have now, I mean, I think proven massive scale and done incredible things, right? And so one of the things that this led into is a bunch of different projects, which I'll skip over, one of which was this Swift retensflow project.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  30. Yeah, well, so okay. I mean, I think there's a couple of different things. So actually, I left Apple back in 2017, like January 2017. So it's been a number of years that I left Apple. And the reason I left Apple was to do AI. Okay, so, and again, I won't come on Apple and AI, but at the time, right, I wanted to get into and understand and understand and understand the technology, understand the applications, the workloads. And so I was like, okay, I'm going to go dive deep into applied and AI and then the technology underneath it. I found myself a Google.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  31. Right. And so there are a few technologies that are out there, and people have been working on this problem for a while, and they try to solve subsets of the problem, again, kind of fragmenting the space. And so what Mojo provides for these kinds of companies is the ability to say, cool, I can have a unifying theory. Again, the better together, the unifying theory, the two world problem or the three world problem or the end world problem, this is the thing that is slowing people down. And so as we help solve this problem, I think it'll be very helpful for making this whole cycle go faster.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  32. Oh, so I mean, again, it depends. So, if you care about performance, then writing it in Mojo is going to be way better than writing in Python. But if you look at LLM companies, for example, Look at OpenAI rumored and you look at many of the other folks that are working on many of these LLMs and other innovative machine learning models. On the one hand, they're innovating in the data collection and the model billions of parameters and the model architecture and the HF and all the cool things that people are talking about. But on the other hand, they're spending a lot of time writing cuta curls. So you say, wait a second, how much faster could all this progress go if they were not having to handwrite all these CUDA kernels?

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  33. And so, what we're doing is we're saying, okay, well, you don't have to rewrite all your code. What happens is the modular engine goes in there and goes underneath TensorFlow and PyTorch. It's fully compatible. It just provides better performance, better predictability, better tooling. It's a better experience that helps lift TensorFlow and PyTorch and make them even better. I love Python. I love TensorFlow. I love PyTorch, right? This is about making the world better because we need AI to go further

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  34. Yes, okay. So the fire emoji is amazing. I love it. It's a big deal. The other side of this is the fire emoji is in service of solving some big AI problems. And so the big AI problems are again this fragmentation, this hardware nightmare, this explosion of new potential, but it's not getting felt by the industry, right? And so when you look at how does the modular engine help TensorFlow and PyTorch, right? It's not replacing them. In fact, when I talk to people, again, they don't like to rewrite all their code, you have people that are using a bunch of PyTorch, a bunch of TensorFlow. They have models that they've been building over the course of many years, right? And when I talk to them, There's a few exceptions, but generally they don't want to rewrite all their code.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  35. So take a step back. So I wear many hats. So you're angling it on the Mojo side. Mojo is a programming language, and so it can help solve the Cython view that's happening.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  36. And that's what we did in Swift and worked great. I mean, it was a huge implementation challenge for the compiler people, right? But there's only a dozen of those compiler people, and there are millions of users. And so it's a very expensive, capital intensive skill set intensive problem. But once you solve that problem, it really helps adoption. It really helps the community progressively adopt technologies. And so I think that this approach will work quite well with the Python and the Mojo world.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  37. And so, what I would love to see, and I don't want to see this next month, right? But what I want to see over the course of time is I would love to see people that are building these packages, like NumPy or TensorFlow or these packages that are half Python, half C++. And if you say, okay, cool, I want to get out of this Python C++ world into a unified world. And so I can move to Mojo, but I can't give up all my Python clients. These libraries get used by everybody, and they're not all going to switch all at once, and maybe never, right? Well, so the way we should do that is we should vend Python interfaces to the Mojo types.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  38. So when the language is mature and somebody starts a new project, that's when they say, okay, cool, I'm not dealing with a million lines of code. I'll just start and use the new thing for my whole stack. Now the problem is, again, you come back to where communities and where people that work together, you build new subsystem or new feature or new thing in Swift, or you build new thing in Mojo. Then you want to end up being used on the other side. Right. And so then you need to work on integration back the other way. And so it's not just Mojo talking to Python, it's also Python talking to Moj

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  39. Adopted and built a lot of different machinery to deeply integrate with the Object C runtime. And we're doing the same thing with Python. Now what happened in the case of Swift is that Swift as a language got more and more and more mature over time. And incidentally, Mojo is a much simpler language than Swift in many ways. And so I think that Mojo will develop way faster than Swift for a variety of reasons. But as the language gets more mature, in parallel with that, you have new people starting new projects.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  40. And so now this turns out is a very wonderful thing for an app developer, but it's a huge challenge for the compiler team and the systems people that are implementing this, right? And this comes back to What is this trade off between doing the hard thing that enable scale versus doing the theoretically pure and ideal thing? And so Swift

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  41. Well, so again, these are lessons I learned from Swift, and here we face very similar problems, right? In Swift, you have Objective C, super dynamic. They're very different syntax right, but you're talking to people who have large scale code bases. I mean, Apple's got the biggest, largest scale code base of Objective-C c code, right? And so, you know, none of the companies, none of the iOS developers, none of the other developers wander, write everything all at once. And so you want to be able to adopt things piece at a time. And so a thing that I found that worked very well in the Swift community was saying, okay, cool. And this is when Swift was very young. And she say, okay, you have a million line of code Objective-C app. Don't rewrite it all. But when you implement a new feature, go implement that new class using Swift.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  42. Case on this, right? And I'm not saying this is Guido's perspective, but there's this path of saying, like, okay, well, suddenly Python can suddenly go all the places it's never been able to go before. And that means that Python can go even further and can have even more impact on the world.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  43. That approach is, I think, proven and comes from experience. And so Guido was very interested in like, okay, cool. I think that Python is really his legacy. It's his baby. I have tons of respect for that. Incidentally, I see Mojo as a member of the Python family. We're not trying to take Python away from Guido and from the Python community. And so to me, it's really important that we're a good member of that community. And so I think that, again, you would have to ask Guido this, but I think that he was very interested in this notion of like, cool, Python gets beaten up for being slow. Maybe there's a path out of And that, you know, if the future is Python, right? I mean, look at the far outside.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  44. We don't want a Python 2 to Python 3 thing. That was really painful for everybody involved. And so we spent quite a bit of time talking about that and some of the tricks I learned from Swift, for example. So in the migration from Swift, we managed to not just convert Objective C into a slightly prettier Objective C, which we did. We then converted not entirely, but almost an entire community to a completely different language. And so there's a bunch of tricks that you learn along the way that are directly relevant to what we do. And so this is where, for example, leverage CPython while bringing up the new thing.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  45. I have talked with him about it. He found it very interesting. We actually talked with Guido before it launched, and so he was aware of it before it went public. I have a ton of respect for Guido for a bunch of different reasons. You talk about Walrus Operator. And Guido is pretty amazing in terms of steering such a huge and diverse community and driving it forward. I think Python is what it is thanks to him. And so to me, it was really important starting to work on Mojo to get his feedback and get his input and get his eyes on this. Now, a lot of what Guido was and is, I think, concerned about is how do we not fragment the community?

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  46. Well, there are occasions in which you get to build, like, you know, you invent a new data structure or something like that. There's this beautiful algorithm that just makes you super happy. I love that moment. But when you're working with people, Working with code and dusty deck code bases and things like this, right? It's not about what's theoretically beautiful, it's about what's practical, what's real, what people actually use. And I don't meet a lot of people that say, I want to rewrite all my code For the sake of it.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  47. Yeah, and you have realities like nobody actually understands how the code works because it was written by the person who quit 10 years ago. And so this software has kind of frustrating that way, but that's how the world works, right?

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  48. You say, okay, well, what is easier? I mean, as an engineer, it's actually much easier for me to go implement long tail compatibility weird features, even if they're distasteful, and just do the hard work and like figure it out, reverse engineer it, understand what it is, write a bunch of test cases, like try to understand behavior. It's way easier to do all that work as an engineer than it is to go talk to all C programmers and get argue with them and try to get them to rewrite their code. Right

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  49. It's yucky, so I'm going to build a standard compliant C and C parser. It's going to be beautiful. It'll be amazing, well engineered, all the cool things an engineer wants to do. And so I start implementing, building it out, and building it on, building it out. And then I got to include standardio.h. And all of the headers in the world use all the GCC stuff. And so, again Come back away from theory back to reality, right? I was at a fork on the road. I could have built an amazingly beautiful academic thing that nobody would ever use. Or I could say, well, it's yucky in various ways. All these design mistakes, accents of history, the legacy at that point, GCC was like over 20 years old, which, by the way, now LVM's over 20 years old. It's funny how time catches up to you, right? And so...

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source

  50. Usually, it's the long tail of weird things. So let me give you a war story. Okay. War story in the space is you go way back in time. Project I worked on is called Kling. Playing what it is is a Carser, right? And when I started working on Clang, It must have been like 2006 or something when I first started working on it, right? It's funny how time flies. I started that project and I'm like, okay, well, I want to build a C parser, C++ parser for LLVM. It's going to be the GCC is yucky. This is me in earlier times. It's yucky, it's unprincipled, it has all these weird features, like all these bugs.

    2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source