Conrad Irwin
๐ค PersonAppearances Over Time
Podcast Appearances
It doesn't happen automatically. A lot of the code in Zed is built to handle those things. And so where Rust really helps is things like lifetimes. You close a file that should be deallocated, and Rust makes really good guarantees about that kind of stuff.
It doesn't happen automatically. A lot of the code in Zed is built to handle those things. And so where Rust really helps is things like lifetimes. You close a file that should be deallocated, and Rust makes really good guarantees about that kind of stuff.
For things like the GPU pipelines, because Rust is good interoperability with C, we can just call straight into the graphics APIs and just dump, here's the buffers that we need you to render GPU. Go do that. And so there's a whole framework, GPUI, which is the framework that Zed uses for all of that. And a couple other apps are using it, but mostly we built that to build Zed.
For things like the GPU pipelines, because Rust is good interoperability with C, we can just call straight into the graphics APIs and just dump, here's the buffers that we need you to render GPU. Go do that. And so there's a whole framework, GPUI, which is the framework that Zed uses for all of that. And a couple other apps are using it, but mostly we built that to build Zed.
For things like the GPU pipelines, because Rust is good interoperability with C, we can just call straight into the graphics APIs and just dump, here's the buffers that we need you to render GPU. Go do that. And so there's a whole framework, GPUI, which is the framework that Zed uses for all of that. And a couple other apps are using it, but mostly we built that to build Zed.
And so once you've built that, then you can build an editor on top of it.
And so once you've built that, then you can build an editor on top of it.
And so once you've built that, then you can build an editor on top of it.
Primarily speed of fixing things. And so Zed moves very quickly compared to any other software team I've worked on. I've never been moved along so quickly. And so we're very careful to avoid putting things in the way that will move slowly, and particularly unnecessary abstractions. So we spend a lot of time trying to make the macOS integration feel right.
Primarily speed of fixing things. And so Zed moves very quickly compared to any other software team I've worked on. I've never been moved along so quickly. And so we're very careful to avoid putting things in the way that will move slowly, and particularly unnecessary abstractions. So we spend a lot of time trying to make the macOS integration feel right.
Primarily speed of fixing things. And so Zed moves very quickly compared to any other software team I've worked on. I've never been moved along so quickly. And so we're very careful to avoid putting things in the way that will move slowly, and particularly unnecessary abstractions. So we spend a lot of time trying to make the macOS integration feel right.
And if we had to each time go through someone else's crate, fix it there, then pipe it all through, the overall development time is slower. It also means that it's very concretely designed for Zed. There's no extra APIs that we don't need or stuff that we don't want. And that comes important. One good example of that is keyboard shortcut handling.
And if we had to each time go through someone else's crate, fix it there, then pipe it all through, the overall development time is slower. It also means that it's very concretely designed for Zed. There's no extra APIs that we don't need or stuff that we don't want. And that comes important. One good example of that is keyboard shortcut handling.
And if we had to each time go through someone else's crate, fix it there, then pipe it all through, the overall development time is slower. It also means that it's very concretely designed for Zed. There's no extra APIs that we don't need or stuff that we don't want. And that comes important. One good example of that is keyboard shortcut handling.
It's very unlikely that someone else would have a keyboard shortcut thing that can support FIM mode and all of the other things that we want to do with Zed. And so skipping all of that and doing it ourselves makes some things easier, less obstructions to get in the way.
It's very unlikely that someone else would have a keyboard shortcut thing that can support FIM mode and all of the other things that we want to do with Zed. And so skipping all of that and doing it ourselves makes some things easier, less obstructions to get in the way.
It's very unlikely that someone else would have a keyboard shortcut thing that can support FIM mode and all of the other things that we want to do with Zed. And so skipping all of that and doing it ourselves makes some things easier, less obstructions to get in the way.
And some really interesting design decisions we have, like in Vim mode, the colon key brings up the command palette. And one of the nice things about that is we can provide autocompletion. In Vim, there's no space to do that because you don't have a proper graphical UI. You only have lines in the command panel. And so, yeah, it's definitely freeing to not be in a terminal emulator.
And some really interesting design decisions we have, like in Vim mode, the colon key brings up the command palette. And one of the nice things about that is we can provide autocompletion. In Vim, there's no space to do that because you don't have a proper graphical UI. You only have lines in the command panel. And so, yeah, it's definitely freeing to not be in a terminal emulator.
And some really interesting design decisions we have, like in Vim mode, the colon key brings up the command palette. And one of the nice things about that is we can provide autocompletion. In Vim, there's no space to do that because you don't have a proper graphical UI. You only have lines in the command panel. And so, yeah, it's definitely freeing to not be in a terminal emulator.