- cross-posted to:
- programming@programming.dev
- foss@beehaw.org
- cross-posted to:
- programming@programming.dev
- foss@beehaw.org
Zed is a modern open-source code editor, built from the ground up in Rust with a GPU-accelerated renderer.
How’s Lapce?
Not much documentation. I tried to use it, but it was really hard to figure out anything.
I tried to read the code but the underlying concept was too complex for me to understand
Lots oft running npm wrappers for an allegedly Rust dritten Pierce of Software
I tried saving to a file that required root and it didn’t give any prompt to enter the password. On VSCodium normally if you are trying to write to a file that requires sudo then it prompts you.
Is there a way to save to root files with Zed?
Use sudoedit
Maby launch editor with sudo?
Found the Windows user. On Linux we actually have polkit that can elevate privileges with a GUI prompt.
On Windows you can just right click and run as administrator bro
What’s that?
Integrated Development Environment (IDE) from the makers of Atom. It is written in rust.
New Editor, by Atom Devs, Rust
Editor, Atom, Rust
EAR
Zed is not an IDE, it’s a code editor. No, they aren’t the same things, it’s like saying a table and a kitchen are the same thing.
You are right, stand corrected.
This distinction is not as meaningful as it used to be before LSPs; there’s little a PyCharm IDE can do that you can’t do in VS Code editor for example.
Thanks. I briefly used Atom (on Win) but stopped as it was terribly slow to startup.
What is the software license for Zed? It’s Github page isn’t clear.
The code for Zed itself is available under a copyleft license to ensure any improvements will benefit the entire community (GPL for the editor, AGPL for server-side components). GPUI, the UI framework that powers Zed, is distributed under the Apache 2 license, so that you can use it to build high-performance desktop applications and distribute them under any license you choose. https://zed.dev/blog/zed-is-now-open-source>
Oh man I LOVED Atom. Giving this new one a test drive now :)
I think Zed is quite different from Atom. But Pulsar might be your thing. A direct fork of the last release of Atom being developed by ex Atom developers :)
I just mean that I liked the work that the devs did on Atom, which makes me want to try this one out too
Oh, in that case you might like either. I think both are great in their own way!
Just to clarify, the Pulsar devs aren’t ex-Atom devs. Some of the team are from atom-community but none of the core Pulsar team were part of the official Atom team.
Oh, interesting. In that case I misunderstood that part, I thought there were core devs of Atom involved in Pulsar, thanks :)
Watch this space for the full history, I’m literally putting the final touches on a blog post that will go into details of how Atom started then how it became Pulsar as a little celebration after we hit 3k stars.
I was so happy about this! Been using it on my work MacBook and have been excited to use it on my main laptop!
There ought to be a rule that posts about software releases have to say what it is.
My bad, it’s up now
Zed (a high-performance code editor announced in 2022), not to be confused with Xed (a small and lightweight text editor released in 2016)
EDIT: or Yed (a small and simple terminal editor core)
Anyone care to compare this with Helix?
Very first impressions since I literally just downloaded before writing this, and haven’t read the manual, I may change my mind with more experience.
- It’s incredibly snappy, to my eyes as fast as Helix.
- A lot of stuff that took me a while to figure out in VS Code was immediately obvious. How to toggle inlay hints for Rust? Parameter Icon > Inlay Hints (with the keyboard shortcut there for easy toggling).
- Interactive is generally intuitive because it seems pretty permissive. Tab vs Enter to autocomplete? Either! ctrl-shift-Z vs ctrl-Y to redo? Same thing!
- After being so used to Helix I often reach for keybinds that don’t exist. I might have to learn Vim keybinds because I’m definitely going to keep trying Zed.
- Not sure how I feel about what seems to be an inline discord-like chat/voice-call feature.
Going to check out if there’s git integration, because I couldn’t easily find it.
Git integration seems to be so embedded that it’s easy to miss. Open a git repository folder and you can switch branches and whatnot. But, like, in the command palette, there’s no Git > Pull or Git > Clone as in vscode. (I have barely scratched the surface so it might be there hiding in plain sight.)
What other VCSs are supported?
Going to check out if there’s git integration, because I couldn’t easily find it.
Asking this because I’m noob, not elitist ass: Why a git integration in ide instead of using the cli? I’ve been working only on few projects where git is used, but the cli seems to be a ton easier to understand how to work with than the git integration in vscode which I discarded after few attempts to use
Depends on the features.
Git has some counterintuitive commands for some commands you may want to do when you want to quickly do something. Being able to click a button and have the IDE remember the syntax for you is nice.
Some IDEs have extra non-native Git features like have inlined “git blame” outputs as you edit (easily see a commit message per-line, see who changed what, etc.), better diff/merge tooling (JetBrain’s merge tool comes to mind), being able to revert parts of the file instead of the whole file, etc.
the git integration in vscode which I discarded after few attempts to use
I’m going to be honest, I don’t really like VS Code’s Git integration either. I find it clunky and opinionated with shitty opinions.
Git has some counterintuitive commands
Yeah… ‘git merge main’ weirds me out because my brain likes to think the command is merging current branch TO main instead of other way around
Some IDEs have extra non-native Git features like have inlined “git blame” outputs as you edit (easily see a commit message per-line, see who changed what, etc.), better diff/merge tooling (JetBrain’s merge tool comes to mind), being able to revert parts of the file instead of the whole file, etc.
Okay this sounds very good, so they actually improve git cli feature wise in addition to implementing GUI for it.
Thanks for the reply!
This video using emacs magit git porcelain might help you see why:
https://m.youtube.com/watch?v=qPfJoeQCIvA&feature=youtu.be
Basically you can go quickly from the log to viewing diffs or any other action on commits or groups of commits and more.
I used to only use git from CLI for 10+ years but mostly only use magit now.
A great git integration can work well in an editor. I use Magit in Emacs, which is probably as full-featured Git-client as there can be. Granted, for operations such as cherry-picking or rebasing on top of a branch or
git reset
I most often use the command line (but Magit for interactive rebase).But editor support for version management can give other benefits as well, for example visually showing which lines are different from the latest version, easy access to file history, easy access to line-based history data (blame), jumping to versions based on that data, etc.
As I understand it vscode support for Git is so basic that it’s easy to understand why one would not see any benefits in it.
I mainly use git with cli, the one thing that’s been super helpful in vscode is gitlens, which shows you who last updated the line you’re on, and lets you look at the commit
Oh that sounds very sweet!
I’m probably more of a git noob than you, but I do usually use the cli. I figured if I’m going to give a gui editor an honest shake I should try to do things the inbuilt, gui, way. And more to the point, I do appreciate a good user interface with information at a glance or click instead of having to type out a command each time.
I’m probably more of a git noob than you
Doubt =D
And more to the point, I do appreciate a good user interface with information at a glance or click instead of having to type out a command each time.
Agreed with good user interface, my criticism was specifically for the vscode default git plugin which I was not compatible with at all but it could be just a me-problem
Why Helix over (neo)Vim?
A better out of the box experience-- fewer plugins required. More discussion here: https://urbanists.social/@markstos/112586854536602496
Cool, but is it possible to add vim bindings to Helix? I’m too used to them, I even use them in Emacs.
A lot of the bindings are the same, because Helix was inspired in part by Vim.
Helix overall tries to make more consistent vocabulary and “nouns” and “verbs” in the keybindings, so there are some breaking changes.
Someone published a more “vim-like” set of keybindings for Helix: https://github.com/LGUG2Z/helix-vim
I started with that and then have slowly disabled a number of them as I come to appreciate the Helix defaults, and have realized that some of these vim-bindings are overriding other Helix bindings that I wanted.
Better/simpler experience out of the box. With Helix you install the LSPs for languages you use and you’re set with a fully featured editor. Manual configuration is only needed for setting themes, keybinds, and small setting changes. It also feels much faster than a fully configured vim/neovim. Lastly its keybinds are inspired by Vim/Kakoune, but different from both.
Zed has a lot more features and is GUI-based. Helix is more focused and is CLI-based. I think a more direct comparison would be with VSCode(ium).
Interesting project, how ever it will be hard to compete with existing editors and its plugin eco-systems.
It supports LSPs, and has treesitter syntax highlighting and git integration which honestly makes it 90% of the way there already
Vim keybindings or death
It has those as well
Great!
I don’t think so. The guys who write the plugins are the cracks and the cracks will use zed.
I still do not understand why Zed makes such a big deal about being GPU accelerated when you’ll be hard pressed to find a single text editor nowadays that isn’t.
Yeah, I don’t see why I should care about that. Gimme some crazy graphical effects, particles and shaders!
deleted by creator
Ohhh shiiit
I never understood the need
It’s not you who needs it.
It’s for buzzword chasers and cost cutters.Rust (=> fast and hip)
Shared (=> outsourced)
AI generated (=> robot devs)Get it?
The Rust hype at least makes sense. The other two are just utter bullshit.
The Rust hype at least makes sense.
In technical context, yes. I’m a Rustacean myself.
In business/marketing context, …Rustacean
Is that why the mascot’s a crab??
It also makes sense in a business context, because Rust enables memory safety at native speed, and enables building more reliable software due to its strong type system.
Safety and reliability are business critical in many industries.
Vscodium but not running in a browser.
If it can’t run in a terminal, what is the point?
gpu accelerated editor with remote development > terminal editor
There are gpu accelerated terminal emulators… Not sure what you mean by remote development though.
remote development for connecting to a machine without a display server; basically covering the main use case for being constrained to a terminal.
Remote Tunnels in VS Code or JetBrains Gateway for example
I do use a GPU accelerated terminal, but it’s still very limited compared to a GUI; they serve different goals.
Fair
I like to be just as comfortable coding remotely as I do locally. I have the same setup on my machine & on servers. TUIs are sometimes a better UI/UX since they tend to not come with so much bloat & compatibility with all window managers as well as working great for extremely lightweight, low-latency pairing like the experience provided by upterm. My terminal is also GPU-acceraletd too for performance.
VScodium is running in the browser. It is electron based.
Zed is native
I am BEGGING for any editor other than VSCode to have decent remote development. I want to go open source but everything I’ve tried (remote-nvim, distant, tramp, vscodium, etc.) just doesn’t cut it.
Is VSCode not open source?
It has Microsoft BLObs baked in as part of the build process. VS Codium is the FLOSS distribution of VS code’s open source code. Liveshare doesn’t appear in the package repo Codium uses (because of the Microsoft BLObs it contains as an extension). For work I manually download the live share extension VSX and load it into vscodium
Vscode is like Chrome
And
VS Codium is like Chromium
What I do is use distrobox or any devpod and install it in the container and launch from cli. Works perfectly for me.
IntelliJ products my dude! If you go on there education side you can find the packages for free to compile yourself. There’s tons of guides online to do it.
Have you tried running doom emacs in tmux on the remote server and accessing it with ssh? Doom emacs is all the good of an emacs environment, all the good of vim keybinds, and they worked in a decent amount of optimizations so it only loads the necessary stuff on demand (mine has a startup time of just over 1 second, slower than vim but barely an inconvenience). Can write a quick script to ssh copy (or git pull) your current configs on the server so you only have to maintain one set of configs if you want
scp ~/.config/doom/config.el username@server:~/.config/doom/config.el
Run emacs in tmux if you want to keep the emacs session open across multiple ssh sessions
holy mother of latency
Tramp is awesome :)
What in hell is remote development? You mean
openssh
andvim
, right?Pair programming over the net. The old school way is tmux and vim but to do that you and your partner need port 22 open and most enterprises are gonna be like “hell no you can’t let people connect to your company owned work laptop SSH into your machine”
would wstunnel help? just run that between both machines and pick whatever works best, even if that is ssh
What about gitpod?
Apparently Lapce has remote development as its core feature. But I only (re?)learned of it today…
How didn’t
tramp
work out for you?
Zed seems cool, but not much better than other options. I am still kind of thrown off by the immediate GH/CoPilot integration. Am I the an old man left in the caves of feeling that I don’t need the AI help?
They’ll probably dial it back once the hype settles
built from the ground up with rust. Why the fuck is that the first and usually only (non-)feature to mention in any project written in rust? Who the fuck cares?
I fucking hate the rust cult.
Just go outside and touch some grass.
I care because I know the values of those programmers in a narrow scope and won’t be as annoyed when I inevitably have to go debug the rust code instead of C.
However, that values statement was challenged by automatic binary downloads without user confirmation.
Luckily the fix is already in progress, but its concerning it was ever implemented.
You seem upset. Blink twice if someone is forcing you to use it.
Because most things built with Rust are faster than their equivalent, especially electron-based apps.
So as a user, regardless of the cult following, i’m happy that this tech exists and is being adopted so fast.
It’s primarily about safety, not speed. Any C or C++ program should match the speed but not the correctness.
no, it’s primarily about speed and resources because the comparison is often not against a hypothetical C/C++ alternative, but against an existing one that is slower and more resource intensive.
So they should say that it is written with performance in mind. I don’t care how you achieved that. rust, c++, assembly, whatever.
Mention that it has very good collaborative editing.
Mention features.
So they should say that it is written with performance in mind. I don’t care how you achieved that. rust, c++, assembly, whatever.
I care because performant and secure C++ is much harder to achieve while rust “shepherds” you towards it.
See https://nibblestew.blogspot.com/2020/03/its-not-what-programming-languages-do.html
I don’t care how easy it is for the developer. And modern c++ is slightly harder than rust, but not all that difficult to get right with smart pointers and iterators etc.
If you care about your software being stable and secure, you should care about how easy the programming language used makes and encourages that.
People aren’t robots and make mistakes often.
VS Code is written with performance in mind. Compared with other electron apps, it’s very performant.
Compared with even a sloppily written native app though, it’s not great.
so fucking say that. Designed to be fastest editor. Show benchmarks. Talk about your features. I still don’t care what tools you used to achieve it. It being written in rust does not automatically make things fast. It may even slow things down, in some cases.
I think you might care about this a touch too much
Everone claims their software is fast. When stating that it is written in a native language it is actually believable.
but it didn’t do jack shit to help me believe that. Because they did not say that that was the goal. So there was no credibility to affect in the first place.
Also, your argument does not make sense anyway. As a native language, due to some extra copying needed and some runtime checks that cannot be elided, it is slower than c++. It can be almost as fast, really close, but ever so slightly slower.
Electron is written in c++. A native language. A native language faster than rust (we’re talking about speed not safety here). And yet, it is the canonical example of “bloated and slow”. If you were to rewrite electron in rust, it’d be safer, but also at least just as slow.
So if the editor really is faster, it’s not because the code was written in rust. It’s because the devs are writing better code. That’s why just saying it’s written in rust is useless.
Because most things built with Rust are faster than their equivalent, especially electron-based apps.
And safer, since Electron is just Chromium, which is mainly written in C++.
In an era where every single good code editors are built on Electron, its good to know something isnt