A programmer’s code editor is one of, if not the most important pieces of the development process, and programmers hold their preferred editor tight, learning the nuances, mastering the keybinds, and working around the quirks. So when a new editor/IDE releases, it’s always quickly faced with scrutiny and judgment from every programmer that has become attached to their preferred editor. It’s understandable why this is the case, programmers lower development times by smoothing out their particular workflow, and changing the code editor completely throws a wrench in the flow, it feels like you’re working backwards.
As a programmer myself, I’ve used many editors and IDE’s over the years I’ve been writing code, everything from the classics like Sublime Text, Eclipse, NetBeans, Vim, and Notepad++, to big powerful feature packed IDEs like Visual Studio, IntelliJ, and Dreamweaver. And of course, I’m sure you’re already aware of the massive popularity of new generic code editors that are designed to be versatile in any scenario, rather than have a specific technology, framework, or language to focus on. The most popular of which being Visual Studio Code, which does have a focus on more recently popular JavaScript and TypeScript languages, but what really sets it apart is the vast library of extensions.
Visual Studio Code (VSCode) being the most popular editor in recent times gets a major advantage in the extension scene, as you can write code in any language that you can think of with at the very least syntax highlighting, and more often than not, code completion and linting. This is all thanks to the fact that someone has probably written an extension to build support for these languages, and almost every new language and framework that shows up ships out of the box with a VSCode extension to make the programmers life easier, Deno and Svelte are some notable examples. It all goes to show that you can really write anything in VSCode. Most recently I’ve been using it as my primary editor for C++ with the clangd extension, and it’s got all the features you’d need from a decent C++ IDE. Fuzzy find files, jump to definitions, declarations, references, and implementations, and a good-enough debugger that makes staying in the editor for most everything possible. Now VSCode is no dedicated IDE, but it’s praised for being lightweight and versatile. Of course, VSCode isn’t without its downsides. Downsides big enough, that would be a legitimate reason to switch to an alternative.
VSCode is built upon a framework called Electron, originally designed for backend to the now dead Atom editor from GitHub. The goal of Electron is to bring web development technologies to the desktop by packaging Node.js and Chromium to effectively make a privileged web browser into an application. Electron gets a lot of backlash, and it’s understandable why. Even the slimmed down version of Chromium packaged with Electron is a big performance hit compared to the truly lightweight applications that we’re used to from native desktop apps, that are built on native frameworks like Qt, GTK, Win32, etc. and for a lot of applications, Electron is truly overkill. Do you really need a new web browser installed on your system every time you install VSCode, Slack, Discord, Spotify, Teams, Signal, Dropbox, and more? No. Because while just running Chrome and one other Electron app isn’t bad, you really start to feel the impact when so many apps on your system are a web browser.
There’s a new editor on the horizon, previously only available on MacOS but the Linux version has just been released. Zed, from the creators of Atom, is a super lightweight and fast code editor written in Rust. It has a crazy fast launch speed, a relatively small memory footprint, support for LSPs, various themes, Vim motions, a terminal, collaborative editing, and a custom GPU driven renderer that makes the editor feel really really fast. I’ve been test driving Zed since it was released on Linux just two days ago, and let me tell you, the claims hold up well. I think the most prominent feature is just the sheer speed of this thing, it’s so fast. I’m used to waiting up to 20 seconds for VSCode to start up, open my directory, start the extension host, and do whatever else it has to do. Zed makes VSCode look like a massive IDE in comparison. I issue the command and Zed is just there immediately with my project open, ready to code. The only other editors I can think of that launch this quickly are simpler editors, such as Notepad++. But Zed doesn’t sacrifice on features that’s for sure. VSCode has had many years to mature at this point so making direct comparisons wouldn’t exactly be fair, but if we are comparing anyway, Zed puts up a good fight. You can obviously tell that it’s fairly new, the UI isn’t fleshed out, and it’s missing some major features, such as a debugger, which is definitely a dealbreaker for many. But I was impressed when I opened a Svelte project and Zed had LSP integration and syntax highlighting, as with an editor this new I wasn’t expecting anything much really.
So should you switch to Zed today? No, probably not. It’s a really neat editor I must say, but it really isn’t fleshed out enough for me to recommend it. While it does technically have LSP support, the language integration isn’t always the greatest, and unfortunately it is missing a debugger. If you want an editor with a similar (though admittedly slower) feel, I’d recommend JetBrains’ Fleet editor. It’s rising in popularity as a good VSCode alternative, and while it also suffers from some missing features, it has the backing of JetBrains, a massive IDE developer, and they know what they’re doing. Does this mean Zed will never be viable? Of course not, it just needs some more time to mature into a great utility.
Reader Comments
Write a comment
(Information about your system will be stored to prevent abuse)