- cross-posted to:
- linux@programming.dev
- foss@beehaw.org
- cross-posted to:
- linux@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.
Installer is piping curl into shell
I thought we were past this as a society 😔
Not until after you convince these projects to stop using discord
As long as they just use it for their community and don’t fucking lock documentation behind discord I don’t really care. But this trend has been so annoying. Due to this I’m in so many servers I have to quit a server just to join a new one
ooh, available for “x86_65” on Alpine
(and they’ve fixed that now)
imagine the nightmare of writing a 65 bit instruction set
Now imagine designing a 65 bit computer. The bus, registers, alu…
You’ll probably waste a lotta chips since most of them are designed for working with powers of 2
I don’t think it has to be a nightmare per se if you start from scratch.
Instead of 8-bit bytes, you have 5-bit “bytes” (fyves?) Hoozah! Done.
only if double precision can be called high fyves
This is a mandatory rule now.
Have you really not heard of it? It is a new architecture that is a bit better than x64_64.
Finally. 65 bit processor.
x86_64++
Plus ultra!
It’s made in rust, therefore it must be safe!
I mean its already in the nix repos as well as homebrew which means its essentially taken care of
GPU-accelerated renderer.
There’s a reason why GUIs don’t render fonts in the GPU.
Because it’s a pain, there’s not much more to it really…
AFAIK it’s the copy cost for the memory. GPU makes sense only when the hardware allows this copy to go away. Generally, desktop PCs don’t have such specialized hardware.
I don’t see why you’d have to copy all that much. Depending on the rendering architecture, once all the glyphs are there you’d only need to send the relevant text data to be rendered. I don’t see that being much of a problem even when using SDFs. It’s an extremely small amount of data by today’s standards and it can be updated on demand, but even if it couldn’t it would still be extremely fast to send over every frame. If games do it, so can text editors. Real time text rendering on the GPU is a fairly common practice nowadays, unfortunately not in most GUI applications…
At this point I’m not expert enough to explain more details. You can check font renderers.
Below is what’s in my mind but it’s just a guess.
In typical PC architectures you have IO between the storage and the RAM, and then there’s the copying from the RAM to the VRAM, and editors maybe also want copying from the VRAM to RAM for decoration purposes etc.
I am familiar with the current PC and GPU architectures.
IO is a non issue. Even a massive file can be trivially memory mapped and parsed without much hassle, and in the case of a text editor you’d have to deal with IO only when opening or saving said file, not during rendering.
As for the rendering side, again, the amount of memory you’d have to transfer between RAM and VRAM would be minimal. The issue is latency, not speed, but that can be mitigated though asynchonous transfer operations, so if done properly stutters are unlikely.
Rendering monospaced fonts (with decorators and control characters) at thousands of frames a second nowadays is computationally trivial, take a look at refterm for an example. I suspect non-monospaced fonts would require more effort, but it’s doable.
As I said at the beginning, it’s not impossible, just a pain. But so is font rendering in general honestly :/
Can’t we basically call this a remote access trojan?
Security wise it doesn’t matter, you run the code they wrote in any case. So either trust them or don’t. Where it matters is making a mess on your computer and possibly leaving cruft behind when uninstalling. But packages are in the works, Arch even has it since before linux support was announced officially.
A curl piped into a shell or some unofficial packages from various distros.
At this point I don’t get why these projects are not Flatpak-first.
Flatpak is worse for debugging, development, and reproducibility.
Its good for user friendly sandboxing, portability, and convenience.
Is it really worse tho? A single build, against a single runtime, free from distro specificities, packaged by the devs themselves instead of offloading the work on distro maintainers?
Flatpaks are reproducible https://ranfdev.com/blog/flatpak-builds-are-not-reproducible/
You see the conclusion of that article is that flatpaks are not repeoducible after presenting solutions to make it reproducible right?
@ParetoOptimalDev @GravitySpoiled Tusky 25.2
Device:
Fairphone FP4
Android-Version: 11
SDK-Version: 30Account:
@carrabelloy
Version: 4.2.10
It is worrisome that all the smug elitists are too incompetent to just leave off the pipe and review from stdout, or redirect to a file for further analysis.
Same people will turn around and full throat the
aur
screaming ‘btw’ to anyone who dares look in their direction.By that logic you have to review the Zed source code as well. Either you trust Zed devs or you don’t - decide! If you suspect their install script does something fishy, they could do it just as well as part of the editor. If you run their editor you execute their code, if you run the install script you execute their code - it’s the same thing.
Aur is worse because there usually somebody else writes the PKGBUILD, and then you have to either decide whether to trust that person as well, or be confident enough for vetting their work yourself.
https://github.com/zed-industries/zed/issues/7054#issuecomment-1916315391
They auto download binaries, even proprietary ones, unsigned and without user interaction.
YEAH security!
So they’re doing the equivalent of VSCode(ium)'s extensions, but installing them automatically and not giving you the option to use alternatives?
Blegh.
tl;dr: General purpose extensions are not even implemented yet
zed is very much an early stages editor; it’ll look very different a year from now
Quoting the guy:
“that rewriting those in Rust will take an eternity, so not sure what is actionable here, hence closing.”
That’s Rust shining from all its glories here gentlemen…
The best language, if there is nothing changing.
That’s a thing to make a web server or a library that displays Fibonacci, that’s something else when there are humans with changing scopes…
Its not Rusts fault, the devs are simply lazy and making insecure products, as they dont want to rewrite everything.
That’s what I am saying.
To quote you: “they don’t want to rewrite everything” …
Writing Rust often implies major refactoring and it takes so much time to write that your requests go: “pewf” closed due to the amount of effort it takes.
Anyway, been there, done that! Zig is probably the real future; it’s a joy to write, it compiles fast, clear to read, and safe.
It has shared libraries and a proper integration with existing C/CPP code base.
You should try it, that’s an amazing language with a real potential to replace the legacy.
I use rust only if we need performance, for small services. The industry does the same. People use node for backend but e.g. redis is in rust. It’s a good tool if you use it for the right stuff.
EDIT: redis is not in rust, but e.g. aws writes many services in rust
Wtf are you talking about? Redis is in C…
yeah I’m a fucking idiot because I thought wrongly the redis’ language…
You’re not an idiot, you just misremembered. It happens
They were exaggerating to avoid work. Look at the PR diff to determine whether your anti-Rust bias is true.
There are no patch, the issue has been closed as in rejected.
There are a few tasks that are open that are loosely related, but let’s not mix things up.
Moreover, I will take the words of the maintainers over a random potato on a forum.
No offense…
The issue was closed, but a draft PR was linked… potato:
As I mentioned, a couple of tasks loosely related. The patch you are mentioning isn’t complete nor address the real problem.
It is an ugly hack at best.
Refrain from your urge to defend rust at all costs. You are sliding more and more toward the specifics of a project than the fact I stated about rust in general.
If you still not get my initial point I’ve made, read this.
That’s a long read explaining what I meant. My point was about Rust, not Zed or the developers of Zed in particular.
And for the Zed editor, I wish them the best luck, it seems like a great project that people enjoy.
Please feel free to comment and share your thoughts on the article above, my dear favorite nutritious veggie.
also seems to have some security issues …
They are addressing this here: https://github.com/zed-industries/zed/pull/14034
Thats not the point. Why should you trust anything from this project after they would allow third party unsigned binaries from questionable sources
Because people can make make mistakes…
Loads of important projects have had vulnerabilities that showed up through minor mistakes and oversights. I agree that this shouldn’t happen, but it did. I’d still prefer this project to a closed source editor/IDE and even VSCodes method of having a store full of plugins, many of which are closed source and unverified. The project is in alpha, mistakes and problems are expected. This was obviously an oversight, and after being pointed out, it is being addressed.
Can you elaborate on questionable sources? All the sources I saw were the official sources of the binaries they wanted to download.
Deliberately making your program download unsigned binaries from questionable sources is more of a bad design than an oopsie in my book
Again, the binaries aren’t from questionable sources. From what I can tell they all come from the official source. The problem is them being unsigned, which is a simple oversight that can be made when something is being written by someone who is not security minded. It is alpha software and this is already actively being discussed.
There ought to be a rule that posts about software releases have to say what it is.
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)
My bad, it’s up now
Lots oft running npm wrappers for an allegedly Rust dritten Pierce of Software
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
I still don’t understand why I should need GPU acceleration for my fucking TEXT EDITOR
Probably because it’s more efficient. GPUs are designed to render things, which editors do. In a text editor, you’re effectively rendering fonts over a fixed background, which I assume is pretty efficient using the GPU.
We’re not talking about crazy 3D effects here.
Yay to battery savings!
Shouldn’t the DE/Window Manager be handling that? Seems like doing it on a window by window basis would be inefficient (and look inconsistent).
That’s a totally unrelated part of the stack. These days you just have a compositor that combines the output of applications.
The model of out of process rendering in Xorg was done pre-2000s but GPUs became the norm and don’t work well this way.
The job of the window manager is to manage windows and very little else. Font rendering is done by the widget toolkit, usually via freetype/harfbuzz.
Sppeeed
I mean, it should be clear. Smooth and fast and snappy. If you don’t want that, use neovim like me :)
Same reason you need it for your terminal (see kitty terminal). It’s surprisingly slow to cpu render text, gpu rendering is more power efficient and far more responsive
It was surprising how gpu accelerated rendering helped read logs better. Niche case, but better was better.
Better in what sense?
More readable on my part. The speed at which logs could write to the screen and still be readable was faster for me compared to before.
Interesting! I’d like to experience this at some point.
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.
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!
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.
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.
In an era where every single good code editors are built on Electron, its good to know something isnt
How’s Lapce?
Not much documentation. I tried to use it, but it was really hard to figure out anything.
Zed is now officially the best editor ever
Why?
Because I like it
What a lovely answer, made my day fr
Because it was all picture, I had to search around to upvote (using Boost, voting is hidden until you select the comment. Comment is picture? It takes you to the picture (without voting options)).
Worth it. Otter & cat pic brightened my day.
What’s that?
Integrated Development Environment (IDE) from the makers of Atom. It is written in rust.
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
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.
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.
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.
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”
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
Is VSCode not open source?
Vscode is like Chrome
And
VS Codium is like Chromium
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, …
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!