Zed, the new code editor from Atom developers, has entered open beta
zed.dev
zed.dev
> Currently, Zed only supports macOS.
That was actually from June of last year. It makes sense to start with a limited scope, but given that it's reaching public beta without much consideration for platforms outside of macOS, I wonder if it will ever actually feel "native" elsewhere, or if it will wind up ossified with Apple-specific idiosyncrasies. Time will tell.
Personally, I was mostly interested in their Rust GPUI library, but it hasn't been open sourced. (Yet; it does look like there is a plan to open source some of Zed, though obviously it's possible it never happens.) It sounded like a great idea and even in an early stage would probably be a great addition to the nascent ecosystem of Rust UI libraries.
The editor will be open-source and cross-platform, but it takes time to build things.
EDIT: I just don’t trust promises for things to be open source. Notch said Minecraft would be open source, and look where that went. A promise let’s you skip out on releasing the code if it turns out to be a convenient or profitable options.
I'm looking for collaborators, if someone is interested please message me.
----
INVESTIGATIONS, MONITORING, & NO OBLIGATION TO PRE-SCREEN CONTENT. Zed may, but is not obligated to, investigate, monitor, pre-screen, remove, refuse, or review the Service and/or Content, including Your Content and User Content, at any time. By entering into the Agreement, you hereby provide your irrevocable consent to such monitoring. You acknowledge and agree that you have no expectation of privacy concerning the transmission of Your Content, including without limitation chat, text, or voice communications. In the event that Zed pre-screens, refuses or removes any Content, you acknowledge that Zed will do so for Zed’s benefit, not yours.
----
Irrevocable consent.
I wonder if this is for some kind of content moderation law compliance? It's a shitty licence but exactly the behavior that's incentivized by governments imposing content moderation rules
It's incompatible with pretty much any activity. It also includes great stuff like:
> you agree to (a) provide true, accurate, current, and complete information about yourself as prompted by the registration form (the “Registration Data”), and (b) maintain and promptly update the Registration Data to keep it true, accurate, current, and complete.
> You agree not to create an Account using a false identity
"If you provide any information that is untrue, inaccurate, not current or incomplete, or Zed has reasonable grounds to suspect that any information you provide is untrue, inaccurate, not current or incomplete, Zed has the right to suspend or terminate your Account and refuse any and all current or future use of the Service"
(Oxford commas, bruh.)
"you acknowledge and agree that you shall have no ownership or other property interest in your Account, and you further acknowledge and agree that all rights in and to your Account are and shall forever be owned by and inure to the benefit of Zed."
We'll look into adjusting this to make it clearer that we don't do anything remotely concerning or invasive.
What I've seen is that lawyers or anyone drafting agreements generally likes to overstate their position, or put another way take as much as they can get away with. It's rarely done with explicit malicious intent, more with negotiation in mind. Ask for more than you want and then go back and forth to arrive at something that works.
It's just sort of an added bonus if people agree with the terms.
So anyway, it's incumbent on those negotiating and agreeing to contracts to read what they're signing up for and discuss to arrive at an actual agreement that serves everybody. What happened in the discussion above is actually a great example of that happening, even if it was inadvertent.
So, the terms were at least approved by some, and are now being revised because somebody pointed the problems out in a public forum.
I do a lot of back and forth with our lawyers on terms. I read all of it and give feedback.
Also: the thing looks really compelling. I would really like to try it out. But I can't use it. Not with irrevocable consent. If I make something that turns into billions of dollars...well, there are people that would exploit these terms. It's an absolute no-go.
> Obviously, there's no "content moderation" for project code that you collaborate on with Zed.
Not only is it non-obvious, it's explicitly stated that you can do what you want with any content that you are exposed to, which is all of it, because you've granted yourself the ability to surveil everything. And not only what the "Application" or "Tool" sees, but by any means available to you by the "Service."
> In the event that Zed pre-screens, refuses or removes any Content, you acknowledge that Zed will do so for Zed’s benefit, not yours.
is such an outrageous thing to write in the terms. On the other hand, claiming this is standard boilerplate strains credulity.
In any case, seeing this definitely colors how I see the rest of it.
Never in my life have I seen such a boisterous "fuck you" in a legal document. Who are your lawyers, and what on Earth (or off Earth for that matter) are they smoking? In what alternate reality is this a "boilerplate" EULA?
I mean, holy shit.
Into the ~/.Trash it goes.
1. Very performant. Opened a large(ish) rust project and the auto-completion and goto symbol were both very snappy. Scrolling is very smooth and haven't noticed any hiccups or pauses so far. 2. Doesn't seem like there is a way to disable font ligatures? I find them really annoying and wish I could disable. 3. Stuck with the built-in themes, none of which I particularly like.
Overall seems very promising, will keep an eye on it.
Any idea on their plans to monetize? I assume they will eventually charge, since they raised a 10M series A.
However, my first impressions of the keyboard navigation aren't great :(
* Seems to me that a lot of the keyboard shortcuts are chords or require hitting an arrow key, sometimes even both. Example: VS Code's default mapping for vertical split is cmd+backslash, but Zed requires cmd+k -> arrow key.
* The project panel (file tree) doesn't support hjkl for navigation. The website says Vim mode is still under construction, but in my mind that applies to actual buffer editing, not general UI interactions. My impression is that today most editors, hell even a lot of websites, support hjkl or similar for navigation in cases where it doesn't conflict with anything else.
My perspective is that "keyboard-focused" implies "ergonomic shortcuts and UI navigation without leaving the home row". If I'm gonna move my hand from the home row to reach the arrow keys, I might as well just reach for the mouse and get 10x the possible interactions. Anecdotally, I tested myself just now and I'm pretty sure it takes me more time to "find my footing" when I move my fingers to the arrow keys than it does to just grab a mouse and click something.
This might be wrong expectations on my end, but my hope is that Zed can bring the powerful navigation of Doom Emacs/Spacemacs minus the bugginess and terrible performance of Emacs. Whenever the devs talked about Zed, I just imagined VSpaceCode without the jank that comes when you override 90% of an editor's default bindings. What I'm seeing from an hour of usage doesn't feel that much more powerful than VS Code in terms of keyboard navigation (kudos on the snappy performance though, it really is night and day). I'm aware this is an early beta, I just hope you folks agree and are going to push more in this direction.
They talk about things like having a plug-in type system in the future based on e.g. WASM but, as you're pointing out, their fundamental perspective is built around the simplistic notion of a control panel with fixed functionality that's primarily accessed via a bizarre set of keymaps. On this front, might as well stick with JetBrains.
More generally, this looks really awesome and also really enjoyed your team's blog post detailing the GPUI implementation (even though large parts of it went over my head)
There's an issue for it: https://github.com/zed-industries/community/issues/75
Would be great to allow toggling visibility of each of these pieces via an action to maximize screen real estate. Really annoying in VSCode that they force you to go into settings for some of the visibility toggles. Of course, didn't spend very long investigating.
Also after selecting VSCode keybindings, CMD+\ does not split the editor as it does in VSCode. Seems like a bug
Checking out Spacemacs or Doom Emacs would give a clear idea of what I'm talking about.
If unfamiliar with emacs, VSpaceCode is a VSCode extension that ports Spacemacs-style keybindings pretty successfully, although the UI is suboptimal due to limitations of VSCode extensions.
The good news is that if you used OpenCore + vanilla macOS install (basically if you followed the excellent OpenCore Install Guide [1]) and don't have any weird hardware (Intel CPU + iGPU / AMD GPU) you can pretty much just perform updates as normal through Software Update. It is certainly important that you make a backup of your EFI (might as well make a backup of the entire drive you can restore to in case something goes wrong) as well as double check the OC guide to see if there's any snags to look out for when updating.
One time-consuming thing I did when I ran a Hackintosh was to have a separate drive that I used as a macOS update test bed for major versions, and then if all went well I would perform the real update on my main drive.
I would also recommend you look at /r/Hackintosh and maybe ask around there for any advice.
Good luck!
This is a great idea. I'll probably give this a try. Last time I tried to update macOS (AMD GPU OpenCore build), I had to restore from backup. Haven't tried again since.
We'll charge money for our backend service that powers collaboration in Zed. We have ambitious plans to improve the way that people work together on code. So far, on that front, we've been focused on real-time collaboration, but we have a lot of ideas for how we can improve asynchronous collaboration as well, by having discussions take place directly in the code editor.
Especially, since Zed does have a very clear distinction/dividing line of "completely functional local editor" == permissive open source vs. "all of the real-time & async collaboration features" == proprietary that is easy to explain.
Frankly, I would happily pay for great, fully supported, high-quality real-time collaboration for my teams.
Anyway, as you can see, not having any useful progress on this front instantly shuts down lots of people and there's many of us who won't even consider doing more than checking it out until this is done.
https://pulsar-edit.dev/ https://github.com/atom-community/atom/
You'll not even remember Atom when you get to college.
Everything that Atom did, VsCode does better. The theming is different, the extensions are slightly different, but otherwise it's just incredibly good. I get why they shuttered Atom after a while.
[1] https://github.com/omnisharp/omnisharp-vscode/issues/5276
Great business model but the editor is designed around it first and foremost.
Performance turned me off from VSCode and brought me back to Sublime Text. VSCode is not that bad, and I use it occasionally, but the advantages it has over Sublime Text is not worth the performance penalty for me.
I was actually pretty surprised when we did our measurements, and would say those numbers don't match the perceived performance (oe the feed. I haven't experienced an app that feels more fluid for basic things like scrolling before Zed – Obviously I have bias, but that is my 2c!
EDIT: Just had a look inside the app bundle to see if they were using Electron again. Looks like this is built round WebRTC instead.
EDIT2: Actually the actual 'zed' binary is just under 284MB, so maybe Zed's not built round the WebRTC framework, but just uses it for networky stuff ???
The binary is pretty big by itself.
>strings /Volumes/Zed/Zed.app/Contents/MacOS/zed | grep rust
returns a load of references to 'rustc' and 'cargo'Is it possible to install using nix or brew? In mac
MicroEmacs for DOS was 50K.
du -hs /Applications/Sublime\ Text.app
42M /Applications/Sublime Text.app
To compare it to a peer that's cross-platform and GUI.This is about 6x as large, just for the main binary. Which pretty much always means it'll also eat a ton more memory, and probably burn lots of processor cycles while idle for no reason at all, given the way this usually works.
[EDIT] Maybe they're including debug symbols or something? Since it seems to be in beta.
Right now, this is just used for the screen-sharing feature.
> The binary is pretty big by itself
It is. One major reasons is that we're shipping a "fat binary" (x86_64 and arm64 build in a single file). We did this to simplify the download process for users, but now that the app is getting bigger, we should probably start shipping two separate DMGs, to reduce the download time. That would cut the binary size in half.
As someone who uses a lot of VSC plugins and commands I can't imagine switching any time soon (also no Windows support makes it a non starter for me personally) - but I can still be super impressed!
In general Zed seems to be at a decent starting point though. Aside from its "multiplayer editing" aspect, it comes across like it has been very heavily influenced in terms of scope by Sublime.
Multi-buffers seems genuinely useful for project wide search panel as well as for cases where multi-line strings are used to define external file contents but miss out on syntax highlighting.
Looking forward to trying the live collab features.
SSH remote editing is about the only "plugin" I need, and if it's built into the editor that would be nice.
Very often I find myself going back to terminal vim because VS code has gotten to be too much, and also too annoying to deal with if I want to keep multiple projects' repos open at the same time.
This was a big annoyance for me when I tried vscode. Maybe it's atypical, but I'm typically accessing 3-5 different repos every day. Having to open a window instead of just quickly doing a cd and opening vim gets old fast.
ar/vr glasses instead of Inkbox[1]/pierader[2] would make for 'ligher' gui.
[0] Open source smart glasses : https://github.com/TeamOpenSmartGlasses/OpenSourceSmartGlass...
EDIT: At the end of said episode, Nathan talks about debuggers and mentions that users depending on that might have to wait a bit. So there’s that!
Also, the community forked Atom into a community edition (CE), still getting updates?
https://github.com/atom-community/atom/
What makes this "Atom Developer Editor" different than Pulsar or Atom-CE.
Well, if as you say in your site's vision section, "the editor should disappear", it seems you got it.
WAIT. It took a full 5 minutes to come up the first time. So be forewarned.
(% is missed, and o in visual to go at the begin of the selection or end...)
This wasn't our intended behavior for this.
A team member just dug into our implementation of LSHandlerRank and it looks like we are using "Default". Apple's definition of the "Default" rank is this: "This app is an opener of files of this type; this value is also used if no rank is specified".
From our team member's investigation it looks like VSCode doesn't set any LSHandlerRank (which in theory from the definition above should be the same rank, but from your experience that doesn't seem correct.) Sublime uses uses "Alternate" as it's LSHandlerRank, which its definition is "this app is a secondary viewer of files of this type".
We will audit what other editors set and discuss if it makes sense to change the rank we are using.
Thanks for pointing this out.
We have some work to do to decide exactly what will be closed source and separate that out from the rest of the application code.
> Will Zed be open source?
> We'd like to be as open as possible while maintaining the ability to run a profitable business. This probably means some kind of "open core" model, where the editor is available under the GPL but other parts of our system remain proprietary. The timeline and exact strategy are still uncertain at this stage.
* It's a judgment call to call something open core open-source. This is my opinion. The "other parts of our system" makes it sound like vscode, which doesn't feel very open source now. https://ghuntley.com/fracture/
> https://github.com/zed-industries/community/issues/174
> Hey y'all – We are excited that you all are excited to try Zed. Just want to make sure expectations are in check – We plan to release on multiple platforms for 1.0, but work on these has not even begun yet.
I can't imagine thinking macOS is a good programmer OS
It works all ways. Let people like what they like. No one is forcing you to do anything on a Mac.
The GP comments throws shade at Windows. Honestly? Probably still a better developer platform than MacOS. Working on MacOS is full of not-work.
I mean, sure, that's great for you. Maybe you've just never visited a block where you can't reasonably use a VM to replace containers, such as a good amount of shops where local environments approximate production (i.e. containers).
> I just installed Docker desktop last week
All I can say is, "good luck!" DD is by far the worst container runtime for MacOS.
I’m a developer - I do a huge amount of work on Sql Server and .Net.
Unless I need to update some Sql Server CLR Procedures, all my development is done on my Mac using the Jetbrains suite or Azure Data Studio.
So it obviously works for many of us.
You do you, we’ll do us.
Only windows is worse
just gives off an unprofessional vibe.
but to be honest I would never use windows for development either unless I'm only using WSL2
From system management and integration, lack of apps, being a walled garden etc. People call out the heroics of homebrew, but this problem exists on Windows - you can use chocolatey and whatnot in the same way.
I have different gripes with Windows which are also mentioned here. Whereas with Apple products I feel like my freedom is suppressed, with Windows I feel Big-Brother like oppression.
M1 Air is a great laptop. I love it for the battery life and weight. I only use it when traveling, specifically en-route when a traditional keyboard/mouse isn't viable.
All of my development is still done on Linux even when using a local editor via VS Code Remote SSH support.
A Unix box with a nice UI? It's what I always wanted.
From https://www.darlinghq.org:
> Does it support GUI apps?
> Almost! This took us a lot of time and effort, but we finally have basic experimental support for running simple graphical applications.
From https://docs.darlinghq.org/known-nonfunctional-software.html:
> GUI applications will not work in Darling at this point in time, with very few exceptions.
> Any complex GUI application in general will not work at this point in time - only simple "Hello World" type GUIs will work.
Is there a headless mode similar to VS Code's Remote? I would like to launch a Zed server in a VM and connect to it from the host.
It appears to be more limited than I'm used to (e.g. colon commands don't work, ergo :wq does not) -- but it is indeed extremely fast.
Also see code-server (https://github.com/coder/code-server) for another option.
This one looks a lot different :)
(If your editor seems too bright to look at, I might suggest reducing your monitor's brightness.)