OPERATING SYSTEMSOS Linux

Building the Zed Text Editor (with Nathan Sobo)

I’ve often wondered how you build a text editor. Like many software projects, it’s a simple idea at the core with an almost infinite scope for features. How do you build a solid foundation to expand on? Which features matter for launch? And how do you hope to satisfy the needs of every programmer, working in every language?

My guest for this episode is Nathan Sobo. He’s tackled this problem once before with the Atom editor, and he’s back older & wiser with Zed – a new editor written completely from scratch in Rust. It has a modern UI, a wide spread of language support, and a completely different way of looking at team collaboration. But with so much ambition, what are Zed’s priorities, and what’s been left for a future version?

Zed Homepage: https://zed.dev/
Segment Trees: https://en.wikipedia.org/wiki/Segment_tree
Ropes: https://en.wikipedia.org/wiki/Rope_(data_structure)
Rust Executors: https://rust-lang.github.io/async-book/02_execution/04_executor.html

More about Roc: https://youtu.be/DzhIprQan68
More about TigerBeetle: https://youtu.be/ayG7ltGRRHs

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:00 Podcast
1:22:45 Outro

source

by Developer Voices

linux foundation

21 thoughts on “Building the Zed Text Editor (with Nathan Sobo)

  • I work in a strongly regulated environment with heightened levels of security concerns, which has a tendency to be a little "isolationist," if you will. I've also said for a couple decades now that software development is a social endeavour, like any other creative acts have a strong social component. I absolutely loved the mentions here of the anthropological intersection. Concepts of subversion, of identity, of guile, of corruption, because of my work environment, are fascinating to me. On one hand, I think about orgs like ours being able to wrap the technology one day to leverage it within their isolated bubble, and on the other hand I think it would be so much more fascinating to think about how we might find ways to isolate and suppress those kinds of activities as a function of the technology itself. Is isolating a bad set of transformations from a hallucinating AI done asynchronously really any different functionally than an intentional set of malicious transformations by a subversive actor? At a lower level, what if these things were signed to ensure identity? So many fun questions.

    Great interview, really got my brain engaged. Thanks Kris for the continued thoughtful way you engage in these interviews, and the guests you bring in with so many damn cool ideas 🙂

  • Excellent content, thanks! Lots of technical and design choices in Zed that feel "right" to me, I'll definitely try it – fingers crossed for a huge success!

  • You guys are really smart. A lot smarter than i am. I'm barley keeping up. I love it.

  • i don't get it. there's plenty of good fast editors. what's wrong with sublime text for example? its lightweight and instant and has lots of useful plugins

  • Thanks for that very interesting discussion & insight in the Zed development. Sadly, it is so disrespectful that the guest is regularly muted away…

  • Zed sounds interesting, but I'm not buying a Mac to use it.

  • That was a very interesting watch. Thanks, Chris & Nathan. Just decided to spend a day working with Zed.

  • I gave Zed a try several months ago and was impressed by the performance. It has become my go to editor for anything else, where I don't need special debugger features or tool chain support. My wish would be, make it the go to editor for Rust! Rust really needs a good editor with toolchain support and remote debugging. Here all the big players have issues or are very complex to handle. I know that because I use it all the time.

    But for the record, great work! Zed is outstanding and I love it!

  • seems like zed still doesn’t have basic ide functionality such as drill down to function/class body in c++. It is yet another editor with just syntax highlighting

  • Perhaps the Atom text editor can be reconstructed using Leptos 0.7 and Servo.

  • Great as always Kris!

    I miss the theme fade in at the intro and outro

  • Hard disagree on the rust part. Its not going to perform as well as it should, and its going to be a nightmare to maintain and extend in the long term.

    Zed will fade into obscurity

  • once they get a proper vim integration (directly connected like the neovim extension for vscode) and Linux support, I might switch from neovim. also just better keybinding support with keychords and stuff.

  • Sounds like they are using a take on a HAMT. Very cool!

  • Another vscode that’s maybe faster probably won’t win the war.

    Boy it would be a lot of fun to work on though!

  • I think for the "ambient awareness" social stuff they should maybe take some ideas from discord. I would sometimes have friends stream their work but actually have mic+headset muted (which is visible as an icon) – so you could join and look at what they do but they wouldn't get disturbed by you. Also different channels for different things, also both sides streaming at the same time. etc.

  • Everyone is too busy with building a nice cozy caravan while these guys are going straight for the Ferrari

  • You're a great host, Kris, and I'm usually amazed by the guests you bring on. Thanks for the great content!

Comments are closed.