Hacker News new | ask | show | jobs
by misternugget 881 days ago
Hey! Engineer at Zed here. Linux port is on our roadmap. Hopefully we'll get it done this year!
9 comments

Hey! Thank you for this cool editor! However, has it been written with cross-platform support in mind? Otherwise, porting from mac to linux could be rather painful and time-consuming... Will there be an ETA for us linux users? I saw it on the roadmap [0] but without an ETA.

[0] https://zed.dev/roadmap

> However, has it been written with cross-platform support in mind?

Nope, it's using Apple's proprietary Metal API.

What about Windows?
I think that is on the roadmap too, but possibly further down.
You know Windows is the most common development platform? If it were me I'd prioritize it
The Zed team disagrees. Here is what they say in the github discussion on the issue: (https://github.com/zed-industries/zed/issues/5394)

"We will let you know when windows support is under development. The Zed team isn't taking feedback on when we start on windows support, nor why we didn't start with windows.

The amount of people on each platform isn't relevant, as it starts with the base assumption that more people = better to the Zed team. Growth driven development unlikely to lead to a resilient, high quality product long term."

Haha, well they will get lots of feedback they don't want to take.

A company like Jetbrains can do this to an extent due to existing products fueling long term R&D efforts before they bare fruit. Interested to see how this outlook holds up as the runway burns and investor pressure increases from that cool 12.5m they raised last year.

From what I can find, the used OS of software developers is 61% windows, 46% Mac so this argument has no weight on the considerations the team should make Å— it’s essentially a toss up.

Even if it weren’t a toss up and significantly more devs used windows, deciding to target windows based solely on OS market share is one of the worst things a small dev team with finite resources could do. It’s just not a compelling argument at all.

Gotta respect that they know what they want.
I think linux + osx combined is probably developer majority. I'm assuming most Windows development is .NET or Unity based. Over the past nine years, I've worked primarily with Node, Ruby, and a smidgen of Java and no employer has issued Windows machine. It's in sharp contrast with the start of my career where I was in VB6 and C# where I only worked with Windows environments. Could be confirmation bias, though.
Windows is a great platform for developing any language or platform, not just .Net. Personally I think it blows macOS and its dated tools out of the water in any category

https://survey.stackoverflow.co/2023/#section-most-popular-t...

Stackoverflow found that Linux and macOS is the slight majority for professional use and the minority for personal use with developers (with the caveat that the total professional use of all categories is >100%)

Just curious what tools are you missing on MacOS or Linux that are found on Windows?

I have been on MacOS the last 8 years or so but before that was all Windows and Linux. I prefer MacOS now but curious what I am missing. My colleagues that are using Windows machines all use WSL with dev containers so really just using Linux under the hood.

My experience is that pretty much everything is cross platform these days. I don’t do .Net or game dev though. Just Go, Java and some NodeJS these days.

I agree. Long time Linux engineer who prefers Windows to OSX as a desktop OS. Currently use a Windows workstation with WSL and VSCode as a daily driver. I feel this currently gets me the best of both worlds(Windows/Linux).
It is, but barely (windows is @ 61%, macOS is at 46% based on the numbers I found). And even if we ignore that, number of potential users is far from the only factor you’d consider when choosing the first platform to target for a new project. And then, ignoring that as well, just because an OS has more potential users in total, that doesn’t mean it has more potential users of your editor.

There’s lots of reasons to not choose windows as a first release platform, and it being ‘the most common development platform’ isn’t a compelling one, especially for a small team with finite resources.

Even when I am forced to use Windows, I develop on Ubuntu inside a Virtual Machine.

About 80% of the developers at my company do the same. Only a few are happy with just Windows.

So, I would prefer if they prioritize Linux and leave Windows as the last one.

Is there some place I can subscribe to the Windows release notification?
Maybe the tracking issue for Windows support: https://github.com/zed-industries/zed/issues/5394
How are you planning to tackle the GPU API differences?
(Not OP)

These days that's a lot less of a concern than it used to be. It is a lot of up-front work to facade e.g. Metal, Vulkan (and even D3D12) but it's much much much easier than back in OpenGL vs D3D9/10 days.

Most of the general concepts are more or less the same across them all these days. The "shapes" of the APIs are very similar.

A texture is a texture is a texture. Same for a vertex/index/uniform buffer, vertex/fragment/compute shaders (notably not geometry, but you can just use compute), etc.

I'm not in the graphics world at all, but I read this lively discussion last week (post [0], discussion [1]) that made me think the situation was pretty messy. Is it maybe not as bad as that makes it appear?

[0] https://www.carette.xyz/posts/we_are_doomed/

[1] https://news.ycombinator.com/item?id=38994780

I'd recommend wgpu. It should be a fairly easy migration from Metal, as Apple has been actively involved in the design, and there are similar concerns for developer experience (unlike, say, Vulkan).

Unfortunately, graphics is in many ways the easy part. Really excellent integration with system menus, preferences, keyboard, input method editing, all have more variation across platforms and a still-evolving story of solid Rust abstractions. Lately, we've decided to try joining forces with the winit project to see if we can get those problems solved well.

What kind of help do you need to make this happen?
I was curious myself what the hurdle is and so I checked out the latest tag and followed along with https://github.com/zed-industries/zed/blob/v0.119.18/.github... and it went ok except for building https://github.com/zed-industries/zed/tree/v0.119.18/crates/... which puked because https://github.com/zed-industries/zed/blob/v0.119.18/crates/... is the only one

so, my strong suspicion is that porting gpui is the long pole, since it is apparently just going to do its own gui toolkit

Excellent. A big reason I use Sublime is because it's cross platform (Mac at work, Linux at home).
Since you are here I'll hijack the thread :) What about remote support ala vscode-server over SSH.
Please not ala vscode-server over SSH.

Do it proper like emacs tramp so it will connect to any platforms/architectures.

“Please don’t do it like a 4x4 truck, do it proper, like a bicycle” — there is some overlap between those things, but for people who are actually making full use of the former, the latter is not a useful suggestion
I'd suggest that the people who make "full use" of vsc-over-ssh are satisfied with vscode, so it would be unwise to target the full featureset.

More generally, targeting another project's complete featureset is often a great way to get mired down in the wrong details. Unless you can afford to do a proper cleanroom -- then, you'll be able to at least match the performance and useful abstractions used in the original.

> I'd suggest that the people who make "full use" of vsc-over-ssh are satisfied with vscode, so it would be unwise to target the full featureset.

Remote SSH + Dev Containers and their seamless integration (even stacking one on the other) are the only features that keep me using VS Code. I would love to see the full implementation of these in an editor as fast and light weight as Zed.

How exactly are these features present in your workflow? I honestly struggle to think of when I'd ever use this.

Fwiw, I do a lot of infrastructure-as-code, full stack, and systems programming.

I usually have a split screen (editor | terminal) or two terminals on the side, and exec into a container, or use devenv.sh.

If I _really_ need to modify files in the container as I dev and a "make" doesn't cut it, I usually just run podman with a -v mount. Similarly for remote machines w/ sshfs, though I try not to.

> I'd suggest that the people who make "full use" of vsc-over-ssh are satisfied with vscode, so it would be unwise to target the full featureset.

Wha...? This is a killer feature. I'll put up with a lot of crap to use it. That doesn't mean I wouldn't switch to something nicer in other ways if it also offered this killer feature.

It's hard for me to understand why there are IDEs under active development not trying to offer this feature. It is so much better an experience to have the network split into the proper place: between the UI and the heavy computation. Having the UI too far away undoes whatever responsiveness work has been done and more. Having the heavy computation too near means it's hard to develop and test the far environment, take advantage of its compute, etc.

> the people who make "full use" of vsc-over-ssh are satisfied with vscode,

almost all my coding these days is over vsc-ssh. if zed supported sshing into a remote host and into a docker container as seamlessly as I can in vscode, Id switch immediately. The performance of the ui in zed is so much better. I'm a bit sad I can't switch with its current feature set.

The former is bad design, it has no gradual fallback and works in a terrifying way. It pulls binaries from MS servers and runs a headless vscode instance on the remote machine. You are dead in the water if you target a machine/architecture it doesnt support.

You want to target FreeBSD? Linux on POWER or RISC-V? An old (ARMV6-TDMI) Raspberry Pi? Sorry, no remote work for you.

They are not an apple and pears comparison...

I'd very much prefer something that works seamlessly in 95% of the use cases and makes me do some work or look for an alternative for the remaining 5%, than something that makes me do work in 100% of the cases.
Bikes likewise have advantages that 4x4s lack. If you mean to imply everyone ought to be satisfied with the 4x4, and not ask for a bicycle: no. We can have both.
What's the architectural difference between the two?
I'm really keen for Windows support, but only if it means WSL. I hope their architecture allows for it.
When they get linux support you could probably run it in WSL, since WSL supports GUI apps now.
I don't think I would like that. I haven't been impressed with the experience of running GUI apps within WSL. Weird window controls/resizing, compositing, and font rendering issues would be a hard blocker from using this as probably the second most important app on my computer.
Is there any way to make it compatible with macOS 10.14? Your minimum macOS requirement is literally just one release away from what I have!
I'm running it just fine on 10.14.
During the closed beta, the requirements said the minimum was 10.15, and I tried to download it and run it anyway and it wouldn't run.

Did you have to build it from source?

I have to apologise and backtrack here. I was under the impression that "Sonoma" was in fact 10.14 but it's just 14. 10.14 was "Mojave".
Will you be using GNUstep for the port?
Nobody wants to use GNUStep in 2024.

Their UI framework is also rendering via the GPU, so it's more likely they'd wrap it in a GTK/Qt/whatever window and then just render accordingly. You don't need GNUStep for it since there's little "mac"-isms you need to cover.

Great! waiting for it!