Chris Lattner
๐ค SpeakerAppearances Over Time
Podcast Appearances
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?
That's really, really exciting.
Yep, yep.
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 like caching and other interpreters and JIT compilers and other stuff like that.
So you have like an interpreter inside the compiler.
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.
Like they grow macros or something, right?
Lisp, right?