Nathan Sobo recently open-sourced Zed, a code editor that focuses on performance, integrates AI capabilities, and supports software teams’ collaboration out of the box. For performance, Zed leverages a Rust code base, multicore- and GPU-optimized code, with a custom Rust GUI framework. For collaboration, Zed relies on CRDTs and team channels. Zed is currently Mac only.
You can code in Notepad in the same way you can eat off the floor with your hands. Using better tools is a nicer experience.
As for performance, when one of the world’s most popular editor runs on Electron, it’s not that hard to see why performance could be an issue when working on large projects on older hardware.
I’ve never personally had an issue with VSCode’s performance, but I’m also fortunate enough to be in a position where I can afford a relatively modern machine. Many others have to make do with what they have, which is why Zed might appeal to them.
I mean, I rock JetBrains for a lot of stuff. It’s a pig on resources, but man does it have a great feature set.
Electron has other drawbacks than performance as well.
The big one for me is that my workflow is based on vim, where you split tabs into buffers. There is no way to split a tab into windows in VSCode. Only windows into tabs, which is super dumb and annoying because related files are never shown together unless you click a bunch of tabs. Apparently the reasoning for this insane behavior is “yeah well electron is based on chromium so tough luck we can’t do shit”.
What do you mean by:
Do you mean, drag a tab out of a window to create a new window? Because if so, you can do that in vscode.
No, literally have one tab with multiple windows inside it (the default for vim).
I’m assuming for your example that only one tab is shown at a time?
In that case, you can do that in vscode, the only difference is the semantics of what is considered a “window”, and what is considered a “tab”.
To do this in vscode:
Have one window with four panes, and another window with three panes:
Window 1 ┌──────────┬──────────┐ │ │ │ │ Pane 1 │ Pane 2 │ │ │ │ ├──────────┼──────────┤ │ │ │ │ Pane 3 │ Pane 4 │ │ │ │ └──────────┴──────────┘ Window 2 ┌──────────┬──────────┐ │ │ │ │ Pane 1 │ Pane 2 │ │ │ │ ├──────────┴──────────┤ │ │ │ Pane 3 │ │ │ └─────────────────────┘
You can then switch between your windows (or “tabs” in your example) by keyboard shortcut.
In vscode, you can make the Panes different files, or even different views of the same file.
You mean a whole different window at the OS level? That’s just a way inferior hack to the way vim does it by default.
I’ve found an issue from 2017 about it and this related one that focuses more specifically on supporting vim-like behavior. This is just, fundamentally, something that VSCode doesn’t implement simply because of technical limitations. The extensions that attempt to recreate this behavior are apparently all quite janky.
I mean I don’t care, I’m very happy with vim now. But the terribly naive tab support is the reason I left vscode for vim initially. People who have only known “vscode-like” tabs don’t know what they are missing out on.
Yes, that way I could switch between windows in a single shortcut, or even place them side by side so I can see both at the same time with other shortcuts.
Can you explain this more?
Why wouldn’t you want window management to be managed by the window manager?