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
“People want to be able to reason about interfaces. What do you expect a string or an interest, these basic things, right? And so what the Python community started doing is it started saying, okay, let's have tools on the side, checker tools, that go and enforce invariance, check for bugs, try to identify things. These are called static analysis tools generally. And so these tools run over your code and try to look for bugs. What ended up happening is there's so many of these things, so many different weird patterns and different approaches on specifying the types and different things going on that the Python community realized and recognized, hey, hey, hey, there's the thing here”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Yeah. So I'm not a full expert in the whole backstory on types in Python. So I'll give you, I'll give you that. I can give you my understanding. My understanding is basically like many dynamic languages. The ecosystem went through a phase where people went from writing scripts to writing a large scale, huge code bases in Python. And at scale kind of helps have types.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Again, you can look at why I care so much about this, and there's many different aspects of that, one of which is the world went through a very challenging migration from Python 2 to Python 3. This migration took many years, and it was very painful for many teams, right? And there's a lot of Lot of things that went on in that. I'm not an expert in all the details. I honestly don't want to be. I don't want the world to have to go through that And, you know, people can ignore Mojo, and if it's not their thing, that's cool. But if they want to use Mojo, I don't want them to have to rewrite all their code.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Because it makes it easier for different humans to talk to each other and understand what's going on and bugs at scale, right? And so there are lots of good reasons why you might want to use types, but that doesn't mean that everybody should use them all the time, right? So what Mojo does is it says, cool, well, allow people to use types. And if you use types, you get nice things out of it, right? You get better performance and things like this, right? But Mojo is a full compatible superset of Python, right? And so that means it has to work without types. It has to support all the dynamic things, has to support all the packages. It has to support list comprehensions and things like this, right? And so that starting point, I think, is really important. And I think that”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Well, why do you want to deploy? Well, you care about performance, you care about predictability, or you want a tiny thing on the server that has no dependencies. You have objectives you're trying to attain. So what if Python can achieve those objectives? So if you want types, well, maybe you want types because you want to make sure you're passing in the right thing. Sure, you can add a type. If you don't care, you're prototyping some stuff, you're hacking some things out, you're like pulling some random code off the internet. It should just work, right? And you shouldn't be like pressured. He shouldn't feel bad about doing the right thing or the thing that feels good. Now, if you're in a team, right, you're working at some massive internet company and you have 400 million lines of Python code, well, they may have a house rule that you use types.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Yeah, so I mean, I think it's interesting if you look at that, right? And the reason I'm giving you a hard time is that. That there's this cultural norm, this pressure, there has to be a right way to do things grownups only do it one way. And if you don't do that, you should feel bad. Some people feel like Python's a guilty pleasure or something. And that's like when it gets serious, I need to go rewrite it, right? Exactly. I mean, cool. I understand history and I understand kind of where this comes from, but I don't think it has to be a guilty pleasure So if you look at that, you say, why do you have to rewrite it? Well, you have to rewrite it to deploy.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“And so what Mojo does allows you to progressively adopt types into your program. So you can start, again, it's compatible with Python. And so then you can add however many types you want, wherever you want them. And if you don't want to deal with it, you don't have to deal with it. And so one of our opinions on this is that it's not that types are the right thing or the wrong thing. It's that they're a useful thing.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Great, but what that does is that forces what's called a consistent representation. So these things have to be a pointer to an object with the object header, and they all have to look the same. And then when you dispatch a method, you go through all the same different paths, no matter what the receiver, whatever that type is. So what Mojo does is it allows you to have more than one kind of type. And so what it does is allows you to say, okay, cool. I have an object. An objects behave like Python does. And so it's fully dynamic and that's all great. And for many things, classes, like that's all very powerful and very important. But if you want to say, hey, it's an integer and it's 32 bits or it's 64 bits or whatever it is or it's a floating point value and it's 64 bits then the compiler can take that and it can use that to do way better optimization. That's huge. Means you can get better code completion because you have the compiler knows what the type is and so it knows what operations work on it. And so that's actually pretty huge.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Yeah, good question. So Python has types. It has strings, it has integers, it has dictionaries and all that stuff, but they all live at runtime. Because all those types live at runtime in Python, you don't have to spell them. Python also has this whole typing thing going on now, and a lot of people use it. I'm not talking about that. That's kind of a different thing. We can go back to that if you want. But typically You just say, I take, I have a deaf, and my deaf takes two parameters. I'm going to call them A and B, and I don't have to write a type.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“So it's very powerful weapons against slowness, which is why people have been, I think, having fun just taking code and making it go fast because it's just kind of an adrenaline rush to see how fast you can get things.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Yep. And if you look at people complain about the Python gill, this is one of the things that hurts parallelism. That's because of the reference counting. So the Gill in reference counting are very tightly intertwined in Python. It's not the only thing, but it's very tightly intertwined. And so then you lean into this and you say, okay, cool. Well, modern computers, they can do more than one operation at a time. And so they have vectors. What is a vector? Well, a vector allows you to take one, instead of taking one piece of data, doing an add or a multiply and then picking up the next one, you can now do four or eight or 16 or 32 at a time. Well, Python doesn't expose those because of reasons. And so now you can say, okay, well, you can adopt that. Now you have threads. Now you have additional things. You can control memory hierarchy. And so what Mojo allows you to do is it allows you to start taking advantage of all these powerful things that have been built into the hardware over time. And it gives the library gives very nice features. So you can say just parallelize this. Do this in parallel.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“This has overhead, right? It turns out that modern computers don't like chasing pointers very much and things like this. It means that you have to allocate the data. It means you have to reference count it, which is another way that Python uses to keep track of memory. And so this has a lot of overhead. And so if you say, okay, let's try to get that out of the heap, out of a box, out of an indirection, and into the registers. That's another 10x.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“And so, one of the things that CPython did, and this isn't part of the Python spec necessarily, but this is just sets of decisions, is that if you take an integer, for example, it'll put it in an object. In Python, everything's an object. They do the very logical thing of keeping the memory representation of all objects the same. So all objects have a header, they have payload data, and what this means is that every time you pass around an object, you're passing around a pointer to the data.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Yeah, so I can even do more, but we'll get to that. So first of all, when we say that we're talking about what's called CPython, it's the default Python that everybody uses when you type Python 3, that's typically the one you use, right? CPython is an interpreter. And so interpreters, they have an extra layer of byte codes and things like this that they have to go read, parse, interpret, and it makes them kind of slow from that perspective. And so one of the first things we do is we move to a compiler. And so just moving to a compiler, getting the interpreter out of the loop is two to five to 10x speed up depending on the code. So just out of the gate, Using more modern techniques, right? Now, if you do that, one of the things you can do is you can start to look at how CPython started to lay out data”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“And maybe your GPU is different. Maybe you're running on a server instead of a laptop. Maybe whatever, right? And so the problem now is you say, okay, well, I mean, again, not everybody cares about performance, but if you do, you say, okay, well, I want to take advantage of all these new features. I don't want to break the old thing, though, right? And so the typical way of handling this kind of stuff before is if you're talking about C++ templates or you're talking about C with macros, you end up with if defs, you get like all these weird things get layered in, make the code super complicated, and then how do you test it? It becomes this crazy complexity multidimensional space that you have to worry about. And that just doesn't scale very well.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Be the fastest. Yeah, exactly. And the beauty of this is that it helps you in a whole bunch of different ways, right? So if you're building, so often what will happen is that you've written a bunch of software yourself. You wake up one day, you say, I have an idea, I'm going to go code up some code. I get to work. I forget about it. Move on with life. I come back six months or a year or two years or three years later, you dust it off and you go use it again in a new environment.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“And so in the space of machine learning, if you reduce the latency of a model so that it runs faster, so every time you query the server running the model, it takes less time. Well, then the product team can go and make the model bigger. Well, that's actually makes it so you have a better experience as a customer. And so a lot of people care about that.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Yeah, well, so I mean, this is an optional feature, right? So you don't have to use it for everything. But yeah, if you're, so one of One of the things that we're in the quest of is ultimate performance. Ultimate performance is important for a couple of reasons, right? So if you're an enterprise, you're looking to save costs and compute and things like this. Ultimate performance translates to fewer servers. If you care about the environment, hey, better performance leads to more efficiency. You could joke and say, you know, Python's bad for the environment. And so if you move to Mojo, it's like at least 10x better just out of the box and keep going, right? But performance is also interesting because at least a better product.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“And so come back to twisting your compiler brain, right? So not only does the compiler have an interpreter that used to do metaprogramming, that compiler, that interpreter, that metaprogramming now has to actually take your code and go run it on a target machine. See which one it likes the best and then stitch it in and then keep going, right?”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“So instead of having humans go randomly try all the things or do a grid search or go search some complicated multi dimensional space. We have computers do that. And so auditing does you can say, hey, here's my algorithm. If it's a matrix operation or something like that, you can say, okay, I'm going to carve it up into blocks. I'm going to do those blocks in parallel. And this with 128 things that I'm running on, I want to cut it this way or that way or whatever. And you can say, hey, go see which one's actually empirically better on the system.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Right. My belief is that most normal people, and I love hardware people also, I'm not trying to femme literally everybody in the internet, but most programmers actually don't want to know this stuff. And so if you come at it from perspective of how do we allow people to build both more abstracted but also more portable code, because it could be that the vector length changes or the cache size changes, or it could be that the tile size of your matrix changes or the number in A100 versus an H100 versus a Volta versus a whatever GPU have different characteristics. A lot of the algorithms that you run are actually the same, but the parameters, these magic numbers you have to fill in, end up being really fiddly numbers that an expert has to go figure out. And so what auto-tuning does is says, okay, well, guess what? There's a lot of compute out there.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Yeah, well, so what is auto tune? So take a step back. Auto tuning is a feature in Mojo. It's not very little of what we're doing is actually research. Many of these ideas have existed in other systems and other places. And so what we're doing is we're pulling together good ideas, remixing them, and making them into hopefully a beautiful system. And so auto-tuning, the observation is that it turns out hardware systems algorithms are really complicated. Turns out maybe you don't actually want to know how the hardware works, right? A lot of people don't, right? And so there are lots of really smart hardware people. I know a lot of them where they know everything about, okay, the cache size is this and the number of registers is that. And if you use this length of vector, it's going to be super efficient because it maps directly onto what it can do and like all this kind of stuff or the GPU has SMs and it has a warp size of whatever, right? All the stuff that goes into these things or the tile size of a TPU is 128. Like these factoids.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“It's really interesting to me because what PyTorch and what TensorFlow and all these frameworks are kind of pushing compute into is they're pushing into this abstract specification of a compute problem, which then gets mapped in a whole bunch of different ways. And so, this is why it became a metaprogramming program you want to be able to say, cool, I have this neural net, now run it with batch size 1,000, right? Do a mapping across batch. Or, okay, I want to take this problem now run it across a thousand CPUs. GPUs. And so this problem of describe the compute and then map it and do things and transform it are like, actually, it's very profound. And that's one of the things that makes machine learning systems really special.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Well, so, okay, so let's come back to that. All right. So what is machine learning? Or what does a machine learning model? Like you take a PyTorch model off the internet, right?”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Within the compiler, yes. And so it really takes the standard model of programming languages and kind of twists it and unifies it with the runtime model, which I think is really cool. And to me, the value of that is that, again, many of these languages have metaprogramming features. They grow macros or something, right? Lisp, right? I know your roots, right? And this is a powerful thing, right? And so if you go back to Lisp, one of the most powerful things about it is that it said that The metaprogramming and the programming are the same, right? And so that made it way simpler, way more consistent, way easier to understand, reason about, and it made it more composable. So if you build a library, you can use it both at runtime and compile time, which is pretty cool.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“And so, I mean, in terms of the compiler implementation details, it's hard. I won't be shy about that. It's super hard. It requires, I mean, what Mojo has underneath the covers is a completely new approach to the design of the compiler itself. And so this builds on these technologies like MLIR that you mentioned, but it also includes other caching and other interpreters and JIT compilers and other stuff like that. So you have like an interpreter.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“I have written enough C code to earn a little bit of grumpiness with C, but one of the problems with it is that the metaprogramming system templates is just a completely different universe from the normal runtime programming world. And so if you do metaprogramming and programming, it's just like a different universe, different syntax, different concepts, different stuff going on. And so again, one of our goals with Mojo is to make things really easy to use, easy to learn. And so there's a natural stepping stone. And so, as you do this, you say, okay, well, I have to do programming at runtime. I have to do programming at compile time. Why are these different things?”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“It's super messy. It's always accidentally, I mean, different people have different interpretations. My interpretation is that it was made accidentally powerful. It was not designed to be Turing complete, for example, but that was discovered kind of along the way, accidentally. And so there have been a number of languages in the space. And so they usually have templates or code instantiation, code copying features of various sorts, some more modern languages or some more newer languages, let's say like they're fairly unknown, like Zig, for example, says, okay, well, let's take all of those types you can run it, all those things you can do at runtime, and allow them to happen at compile time. And so one of the problems with COVID of the problems with CO is”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“And so now what you get is you get compile time metaprogramming. This is super interesting and super powerful because one of the big advantages you get is you get Python style expressive APIs. You get the ability to have overloaded operators. And if you look at what happens inside of PyTorch, for example, with automatic differentiation and eager mode and all these things, they're using these really dynamic and powerful features that runtime. But we can take those features and lift them so that they run at compile time.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Mojo, we want all those features to come in. Like, we don't want to break Python, we want it all to work. But the problem is you can't run those super dynamic features on an embedded processor or on a GPU. Or if you could, you probably don't want to just because of the performance. And so we entered this question of saying, okay, how do you get the power of this dynamic metaprogramming into a language that has to be super efficient in specific cases? And so what we did was we said, okay, well, take that interpreter. Python has an interpreter in it, right? Take that interpreter and allow it to run it compile time.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“So Mojo, the complicated answer does all the things. So it's interpreted, it's chit compiled, and it's statically compiled And so this is for a variety of reasons. So one of the things that makes Python beautiful is that it's very dynamic. And because it's dynamic, one of the things they added is that it has this powerful metaprogramming feature. And so if you look at something like PyTorch or TensorFlow or, I mean, even a simple use case, like you define a class that has the plus method. You can overload the Dunder methods like Dunder Ad, for example, and then the plus method works on your class. And so it has very nice and very expressive dynamic metaprogramming features.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“We love Python for what it is. RVO is that Python is just not done yet. And so, if you look at, you know, you mentioned Python being slow. Well, there's a couple of different things to go into that which we can talk about if you want. But one of them is it just doesn't have those features that you would use to do C-like programming. And so if you say, okay, well, I'm forced out of Python into C for certain use cases. Well, then what we're doing is we're saying, okay, well, why is that? Can we just add those features that are missing from Python back up to Mojo? And then you can have everything that's great about Python, all the things you're talking about that you love, plus not be forced out of it when you do something a little bit more computationally intense or weird or hardwary or whatever it is that you're doing.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“So, I mean, I think that there's again, this is a religious thing. And so I can joke about it, and I love to kind of. I realized that this is such a polarizing thing and everybody wants to argue about it. And so I like poking at the bear a little bit. But frankly, come back to the first point Python 1, it's huge, it's an AI, it's the right thing. For us, we see Mojo as being an incredible part of the Python ecosystem. We're not looking to break Python or change it or quote unquote fix it”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Love to see. I think it's probably pretty minor because once you get your use code, I do too. So if you get VS Code set up, it does the indentation for you generally, right? And so you don't, you know, it's actually really nice to not have to fight it. And then what you can see is the editor's telling you how your code will work by indenting it, which I think is pretty cool.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“And so, if they're not indented correctly, first of all, we'll twist your brain around. It can lead to bugs. There's notorious bugs that have happened across time where the indentation was wrong or misleading and it wasn't formatted right. And so it turned into an issue. And so what ends up happening in modern large-scale code bases is people run automatic formatters. So now what you end up with is indentation and curly braces. You're going to The notion of grouping, why not have one thing and get rid of all the clutter and have a more beautiful thing? I'll say you look at many of these languages. It's like, okay, well, you can have curly braces or you can omit them if there's one statement, or you just enter this entire world of complicated design space that objectively you don't need if you have Python style indentation.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Well, so let me explain why, right? I mean, you can explain this in many rational ways. I think that the annotation is beautiful, but that's not a rational explanation. But I can defend it rationally. So first of all, Python 1 has millions of programmers. It is huge. It's everywhere. It owns machine learning. Factually, it is the thing, right? Second of all, if you look at it, C code C code, Java, whatever Swift, curly braced languages also run through formatting tools and get indented.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“I think that's usually what people complain about, right? And so other people would complain about tabs and spaces versus curly braces or whatever, but those people are just wrong because it is actually just better to use indentation.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Well, and there's many things that went into that. So I think that ML was very good for Python. And so I think that TensorFlow and PyTorch and these systems, embracing Python, really took and helped Python grow. But I think that the major thing underlying it is that Python's like the universal connector. It really helps bring together lots of different systems so you can compose them and build out larger systems without having to understand how it works. But then what is the problem with Python?”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“What modular doings were helping build out that software stack to help solve some of those problems so then people can be more productive and get more AI research into production. Now what Mojo does is it's a really, really, really important piece of that. And so that is part of that engine and part of the technology that allows us to solve these problems.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“So you think about it, where were LLMs eight years ago? Well, they didn't exist, right? AI has changed so much, and a lot of what people are doing today are very different than when these systems were built. And meanwhile, the hardware side of this has gotten into a huge mess. There's tons of new chips and accelerators, and every big company is announcing a new chip every day, it feels like. And so between that, you have this moving system on one side, moving system on the other side, and it just turns into this gigantic mess, which makes it very difficult for people to actually use AI, particularly in production deployment scenarios.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Just over a year ago, we started this company called Modular. At what modular is about is it's about taking AI and up leveling it into the next generation, right? And so if you take a step back, what's gone on in the last five, six, seven, eight years is that we've had things like TensorFlow and PyTorch and these other systems come in. You've used them. You know this. And what's happened is these things have grown like crazy. They get tons of users. It's in production deployment scenarios. It's being used to power so many systems. AI is all around us now. It used to be controversial years ago, but now it's a thing. But the challenge with these systems is that they haven't always been thought out with current demands in mind.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“What modular we're really tackling the AI infrastructure landscape and the big problems in AI, the reasons it is so difficult to use and scale and adopt and deploy all these big problems in AI. And so we're coming out from that perspective. Now, when you do that, when you start tackling these problems, you realize that the solution to these problems isn't actually an AI specific solution. And so while we're doing this, we're building Mojo to be a fully general programming language. And that means that you can obviously tackle GPUs and CPUs and like these AI things, but it's also a really great way to build NumPy and other things like that or just if you look at what many Python libraries are today, often they're a layer of Python for the API, and they end up being C and C++ code underneath them. That's very true in AI. That's true in lots of other domains as well. And so anytime you see this pattern, that's an opportunity for Mojo to help simplify the world and help people have”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Good question. So it's AI first. And so AI is driving a lot of the requirements. And so Modular is building and designing and driving Mojo forward. It's not because it's an interesting project theoretically to build. It's because we need it.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Yeah, so I mean, lots of languages provide that. So I think that we have partial support for that. It's probably not fully done yet. But yeah, you can do that. For example, in Swift, you can do that for sure. So an example we give David Apple was the dog cow. That's a classical Mac heritage thing. And so you use the dog and the kamoji together, and that could be your variable name. But of course, the internet went and made pile of poop for everything. If you want to name your function pile of poop, then you can totally go to town and see how that gets through code review.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“GitHub is fine. Yep. GitHub is fine. Visual Studio Code, Windows, like all this stuff. Totally ready because people have internationalization. In their normal part of their paths. So this is just like taking the next step, right? Somewhere between, oh, wow, that makes sense. Cool. I like new things. Two, oh my God, you're killing my baby. Like, what are you talking about? This can never be like I can never handle this. How am I going to type this? Like all these things. And so this is something where I think that the world will get there. We don't have to bet the whole farm on this. I think we can provide both paths, but I think it'll be great.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“The one problem I've seen is the git doesn't escape it right. And so it thinks that the fire emoji is unprintable, and so it prints out weird hex things if you use the command line git tool. Everything else, as far as I'm aware, works fine. And I have faith that Git can be improved.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“And like you take a step back and look at what file extensions are, right? They're basically metadata. And so why are we spending all the screen space on them and all the stuff? Also, you have them stacked up next to text files and PDF files and whatever else. If you're going to do something cool, you want to stand out, right? Emojis are colorful. They're visual. They're beautiful.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Okay, so take a step back. I mean, come on, Lex. Do you think that the world's ready for this? This is a big moment in the world, right?”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“Can be quite different. And so, really, where Mojo came from was starting from a problem of we need to be able to take machine learning, take the infrastructure underneath it, and make it way more accessible, way more usable, way more understandable by normal people and researchers and other folks that are not themselves like experts in GPUs and things like this. And then through that journey, we realize, hey, we need syntax for this. We need to do programming language.”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source
“CPUs or GPUs or TPUs or NPUs or IPUs or whatever all the PUs it's about how do we program these things and so for software folks like us it doesn't do us any good if there's this amazing hardware that we can't use and one of the things you find out really quick is that having the theoretical capability of programming something and then having the world's power and the innovation of all the all the smart people in the world”
2023-06-02 · Lex Fridman Podcast · #381 – Chris Lattner: Future of Programming and AI · IDENTIFIED FROM THE TRANSCRIPT · source