Where are we?
Where are we in terms of programming efficiency when a text editor has to bang the GPU directly to speed up text rendering and tout that as a feature?
Zed – sorry, US readers, that's its name, not "Zee" – is a new coding tool. Until very recently it was Mac-only, but not any more. Zed Industries has just released version 0.143.6 of its new source code editor for developers, with a fresh feature that its users have been requesting pretty much since it appeared: it now runs on …
We are in that age where hardware has a hard time keeping up with the progressively slower software.
See for example computer latency to get the idea.
I've noticed that too - recently updated desktop at work (6 core i5, 16GB, NVMe SSD) - Outlook desktop client works reasonably well, but when creating an email, as soon as you fill the first line of text, the second (and subsequent) lines slow right down - I can be typing one or two characters ahead of the display which is disconcerting to say the least, and I'm not a particularly fast typist. Crumbs, even my BBC Micro could keep up with my typing, though in general it wasn't trying to do anything else at the same time. The Archimedes had no problems at all, even when rendering "outline" fonts in Impression - once it had cached the font files which admittedly on a floppy-only system (in those days) did take a couple of seconds.
M.
Dunno. Maybe it's an overzealous corporate spyware scanning my content, but I haven't noticed it when replying to Register posts in Edge, or in Word or Notepad, though it has to be said that I don't use those apps as often as Outlook.
And before connections are made, no, I'm not someone who spends the whole day in front of the computer firing off emails; my job is mostly "physical" (out there with a screwdriver) and my work-related computer use is largely reading emails asking me to look at something and then replying to said emails with what I've done.
M.
I bet talking directly to the GPU can’t be done in a guaranteed memory safe fashion, which somewhat negates one of the cornerstones of Rust.
While clever, I’m with previous commenters - what’s the point? And if it really is too slow otherwise then there’s a serious underlying issue
I see it as different - your productivity is your own and at least for me it is about how I design and think about the code, less the editor. Maybe about what coffee I drink. However, it's always a boon to have good tools and while I spent a lot of time using Emacs and vim in terminals - these days I rather enjoy "GUI editors" and if using one of those GPU acceleration is always a given.
I always found Electron based editors to be pus covered bloated laggy whales, I for one am glad to see people finally returning to "old-fashioned" close to the machine C/C++/Rust based editors and applications in general that takes advantage of the available modern hardware, like Zed and Lapce (still pre-alpha). I'm looking forward to having more choice, with less bloat.
You see my tag on this article. I am the Chris Gray who created the Draco programming language and utilities, first for the 8080 CPU on CP/M and later for the 68000 CPU on AmigaOS. I have done a few other programming languages and compilers. My current project (active for almost 25 years) is called Zed. It is somewhat Draco-like in syntax, but it is designed to be memory safe and yet efficient. Based on the timeline you see that this predates Rust by quite a bit.
The current version of the compiler only runs on Linux so far, but I expect running it under Windows WSL should be fine - I've run Zed-created X86-64 binaries there.
Currently, main execution is under the system's internal bytecode engine, but over the last several months, I've got X86-64 native code generation going, creating Linux Elf object files. I still use "gcc" as the "linker". The "zedc" binary (99.9% Zed code) needs to have the bytecode engine integrated into it, since much of the language and libraries use compile-time execution to do their work.
I hereby lay public claim to the name "Zed" for a programming language, compiler, tools, etc.
When will it be released? Who knows - I'm currently fiddling with my file disassembler - the idea is to provide tools needed for others to readily create code generators for other architectures - ARM64 and RISC-V being the initial thoughts. Any volunteers?
Note: since Zed is a safe programming language, my desire is that *all* of the system be written in itself, thus avoiding lots of questions about a safe language written in an unsafe one.
[Author here]
> I hereby lay public claim to the name "Zed" for a programming language, compiler, tools, etc.
Well...
1. you're a bit late as it was announced a couple years ago.
2. the Reg comments is not the place to do it.
3. Stretching from a compiler to a text editor frankly seems like a bit of a reach. Nobody confuses Apple's eMacs...
https://everymac.com/systems/apple/emac/index-emac.html
... with Emacs the editor.
https://www.gnu.org/software/emacs/
In this instance not only are there other products called Zed...
https://rockitrocker.com/product/zed/
... there's even a company called Zed Industries:
https://zedindustries.com/
I'm fine with the claim for the programming language. My editor, decades ago, was "ded" (Draco Editor), and I long since stopped caring about that. However, I have a lot of investment in "Zed" as my programming language, etc. Way too much to even think about coming up with and changing to another name.
Of course an El Reg comment is not the right place. Where is? I am completely absent from any "scene".
(Huge delay in responding - my ISP went down for several hours.)
Having two very different programs both called Zed is indeed probably not very helpful to either of them.
If your Zed has been on the go for a longer time, the sensible thing to do would be to contact the developers of the editor and ask them politely if they wouldn't mind changing the name (perhaps to Zedit, if that's not already taken?), given that you had used the name first. But, having said that, if you haven't actually yet made any public release of your software in all that time (?), that may be a harder argument to win with any reasonable justification (unless you had registered a trademark, or shown signs in public of it being a forthcoming project). First past the post, publish or perish, etc, etc… If a polite request doesn't achieve your desired outcome, you would probably need to get lawyers involved, and I'm not sure you would have much success, if they had published first (but IANAL, etc).
Unless my search skills are not working today, I'm afraid that the only mention that I can find of your Zed is a very brief mention on your website, with no links to even alpha/beta code?
And it looks like someone else also came up with a different Zed programming language, although it seems abandoned - but at least they had staked a claim.
Thanks for the info.
I used to hang out on newsgroup comp.arch before my ISP dropped NNTP support, and it was the same time as a complex change of residence. But, about a decade ago there was a bit of discussion on that newsgroup.
I had briefly had a bit more up on my website, but didn't want to get bogged down with website issues, especially before I was ready for any kind of general release (and I'm still not).
Having the name linked to an editor with some aspects of a bad reputation is doubly unfortunate.
I'll go back into hiding now.
Sorry, I wasn't meaning to be overly negative, just trying to point out the potential difficulties in trying to ask them to change the name of their software.
If the relevant usenet posts are still available on a reliable/trustworthy archive site somewhere, that would certainly count in your favour as good evidence for your prior use of the name, but it would still be up to you to liaise/negotiate with the editor developers to try to reach a solution.
Best of luck with your programming language anyway: if it is nearing a usable state (and has any particularly notable features), maybe you could ask The Register if they might like to do an article about it - why not send them a suitable summary and ask?
[Author here]
> before my ISP dropped NNTP support
So use Eternal September, then.
https://www.theregister.com/2023/08/30/usenet_revival/
> I had briefly had a bit more up on my website, but didn't want to get bogged down with website issues, especially before I was ready for any kind of general release (and I'm still not).
ISTM that your argument boils down to:
"I have been too busy to announce it, or release it, or show anyone the code, and you can't get it, but it's mine anyway and I was first so I own the name."
I don't think that is going to wash with anyone.
Get it on Github, get on Reddit and Lobsters and HackerNews and so on, and publicise it. Accept contributions. Discuss it with people.
And choose your names (MAC is another example) more carefully. Be original, be creative, because you can't sit on something for 40+ years without ever releasing it and then claim the name is yours for something that nobody else has ever seen.
Remember the mantra of FOSS: release early, release often.
Step one of this is: release it _at all_.
Because even if you live an unusually long life, if you were developing compilers 40 years ago, then you are heading towards the end of it without apparently showing your masterwork to the world yet.
Do it now.
[Author here]
> can you skip the Copilot part
Yes, you can, and I did. I tried and failed to totally disable it, though.
I am very happy that I do not need Git any more, but I would have much preferred to see Git integration than this "AI" nonsense, but this is not my project and TBH I am not a target user.
Took a look at the linked site, and found that their "installation" procedure consists of
curl https://zed<dot>dev/install.sh | sh
Since when has it been a good idea to fetch an unaudited script off the internet and execute directly?
Sorry, zed.dev, but that installation method just won't cut it; we've had enough backdoors, phishes, malware, spyware, and other bad products installed in exactly that manner. We don't need any more, even if you pinky-swear that your product is nothing like that.
[Author here]
> their "installation" procedure consists of
You *can* do that, but you do not have to. It's profoundly un-Mac-like for a start. May I suggest that you go read my last paragraph again? The one in which I _carefully linked to the different places and ways you could download disk images and ready-to-run binaries?_
> it calls directly to your computer's GPU in order to render text as fast as possible.
41 years ago (8000:1 in Moore's Law) we had Lotus 1-2-3:
"Lotus 1-2-3 was released on 26 January 1983, ...... and wrote directly to video memory rather than use the slow DOS and/or BIOS text output functions."
This WAS noticeable at 4.77MHz. The Teletype-like refresh speed did not actually slow operation but felt snappier.
My fingers do not feel 8000 times faster now than in 1993. Yes, "drawing" characters on a GUI is slower than plopping pre-computed characters from ROM, and 4.7MHz to 4.7GHz is "only" 1000X faster.... still it feels wrong to resort to dawn-age display tricks in the 21st century.
yup; a bit of digging found it: https://old.reddit.com/r/programming/comments/1dxmroj/zed_editor_automatically_downloads_binaries_and/
even if I were the kind of young upstart who thinks requiring a GPU for text editing is somehow a good thing, I would probably not touch this one. Way outside the off stump for me, and I honestly think in this day of supply chain risk everyone should seriously think about this.
That Reddit thread has gasted my flabber. Apart from downloading binary blobs, it's receiving investor money (for an editor of all things) and AI integration has been implemented before some missing basic functionality, so expect the contents of your hard drive to be uploaded by one of these blobs which deals with AI because that's the way we roll these days.
Rust and GPU integration are just shiny distractions from this.
So I followed the instructions here: https://zed.dev/docs/development/linux
I built on a Pi 5 with 4GB ... and that isn't quite enough. Plus, the default swap file is a mere 200MB, so that needs to be fixed; I _believe_ it ran a bit past 4GB of swap during build/installation. I was using an 8GB swap file in the end.
(Short story on the swap file on the Pi is, edit "/etc/dphys-swapfile" and then "sudo systemctl restart dphys-swapfile", which _may_ give you a bigger swap file without rebooting... unless it's using too much, in which case it'll give an error and you will need to reboot!).
I needed to install the "vulkan-tools" package to give me the vulkaninfo command which told me I didn't have any drivers installed. I then needed to install "mesa-vulkan-drivers" and then everything worked.
"cargo run" was using about 80% CPU... and felt sluggish. I _presume_ that that is executing within some kind of debugging environment (I have absolutely no experience with Rust), and so thought I'd do a full install in the hope that would improve things.
So I ran the "/script/install-linux" script... and it recompiled everything again (I think?) and finally installed. It now only uses about 20% CPU whilst running... but still seems kind of sluggish!
In both cases the window seems detatched from the Zed window... but I guess that's something to do with Openbox or the way it's configured on Raspberry Pi OS. Or something.
Anyway, was a little disappointed at it as I thought that leveraging the GPU might actually mean it ran better on the Pi. Maybe it will in time.