Building a New Terminal App (with Zach Lloyd)
Description
The terminal might be the most used development tool in history. So it’s a little odd that it hasn’t changed that much in the decades since the terminal first came into being. Is the terminal a “completed” project? Or are there new ways to look at it that might make it even more useful?
This week’s guest—Zach Lloyd—is convinced the terminal is ripe for a new approach that’s more than just a new coat of paint. And in this episode we dive into what that approach is, what he’s trying to do with the Warp Terminal, and how it’s put together using a combination of Rust and GPU shaders.
Along the way we look at what LLMs could do to improve the terminal experience, where the boundary lies between terminal and shell, and where Go has solved some problems and created others over at Warp HQ.
–
Become a Supporter on Patreon: https://patreon.com/DeveloperVoices
Become a Supporter on YouTube: https://www.youtube.com/@developervoices/join
Warp Homepage: https://app.warp.dev/referral/VQGWW3
VT100 Information: https://vt100.net/
Game of Life in Rust: https://github.com/krisajenkins/game-of-life-rust
Zed (Text editor in Rust): https://zed.dev/
Flutter: https://flutter.dev/
The Painter’s Algorithm: https://en.wikipedia.org/wiki/Painter%27s_algorithm
Zach on LinkedIn: https://www.linkedin.com/in/zachlloyd/
Kris on Mastodon: http://mastodon.social/@krisajenkins
Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/
Kris on Twitter: https://twitter.com/krisajenkins
–
0:00 Intro
2:22 Why Create A New Terminal?
7:28 Blurring the Lines Between Terminal and Shell
16:04 How Do You Build A Terminal Program?
24:55 Implementing a Terminal in Rust
30:32 Rust Frameworks for GPU Shaders
40:04 Will Any Of This Go Open Source?
42:49 Managing a Mixture of Rust and Go
47:52 What’s the DX of Warp?
51:43 Integrating LLMs into the Terminal
1:05:58 Outro