HackerTrans
TopNewTrendsCommentsPastAskShowJobs

nathansobo

no profile record

Submissions

Show HN: Zed – A high-performance, multiplayer code editor. Now in public beta

zed.dev
43 points·by nathansobo·3 anni fa·3 comments

comments

nathansobo
·9 mesi fa·discuss
GPUI has a mature scheduling story, letting you “block” the main thread on spawned tasks with async/await. It also comes with a deterministic random test scheduler for driving out timing bugs.
nathansobo
·2 anni fa·discuss
Wow Brian, nice to hear from you. Thanks very much for your words! I remember you setting a new standard of speed for me when we worked together!
nathansobo
·3 anni fa·discuss
Hey, we're actively working to get in touch with a new lawyer to help us do a better job with this. I agree this isn't cool. I was rushed to get the launch out and didn't review the terms carefully enough. We will try to do better going forward. Our goal is to be respectful.
nathansobo
·4 anni fa·discuss
The former Atom team and some new friends are building a new editor over at https://zed.dev. We're using our own Rust-based UI framework instead of Electron so it's really fast, and real-time collaboration is baked into the core.
nathansobo
·4 anni fa·discuss
Hey, thanks for the heads up. I screwed it up once and duplicated it through everything. Going to fix it. He was too important to insult by misspelling his name.
nathansobo
·4 anni fa·discuss
We’ve gone to great lengths to abstract out the platform dependencies. Adding a platform right now doesn’t teach us enough for it to be worth it just yet, but we’re seriously planning for it.
nathansobo
·4 anni fa·discuss
I have always found CRDTs a lot easier to wrap my brain around. Agreed with Joseph that optimizing them is non-trivial. In Teletype for Atom, we indexed fragments in splay trees, and each text fragment was actually a member of two splay trees at the same time: one for the full document, another for the pieces of the original insertion as they'd been split apart. We would find the insertion fragment in the insertion tree, then walk parent pointers in the document tree to locate it. In Zed, we have two trees, but can't do this double embedding because we use persistent data structures where parent pointers are not an option. So we instead have insertion trees that map subslices of inserted text to fragment ordered identifiers, which we use for lookup in the main document B-tree. These fragment identifiers were themselves inspired by another CRDT paper called Logoot, but we don't actually send them over the wire.
nathansobo
·4 anni fa·discuss
I've been interested in them since the early days of Atom, but it's just taken a while for me to develop as an engineer and build a system around the theory that puts them to practical use.
nathansobo
·4 anni fa·discuss
We honestly don’t solve it yet, but haven’t found it that big of an issue in practice. Would be curious to see the best resource on it.
nathansobo
·4 anni fa·discuss
Thanks very much!
nathansobo
·4 anni fa·discuss
We embeded a lot of videos for animated diagrams. I think we need to disable autoplay, at least on mobile.
nathansobo
·4 anni fa·discuss
We're quite happy with them. Why do you find them annoying?
nathansobo
·4 anni fa·discuss
Definitely a priority.
nathansobo
·4 anni fa·discuss
"Real real fast"
nathansobo
·4 anni fa·discuss
We're pure Rust and hopefully faster. But yeah, plenty of competition in the space!
nathansobo
·4 anni fa·discuss
Our goal is to build something substantially better than VS Code.
nathansobo
·4 anni fa·discuss
We plan to start blogging about this pretty soon.
nathansobo
·4 anni fa·discuss
This would only be for the web. Right now we're macOS only and target Metal.
nathansobo
·4 anni fa·discuss
We just wanted to be pure Rust and have complete control.
nathansobo
·4 anni fa·discuss
Thanks very much!