Live data from Hacker News

We Have to Start Over: From Atom to Zed

zed.dev

161–170 of 243 posts

Re: We Have to Start Over: From Atom to Zed

#161
post #159

Earlier quoted context omitted.

Accessibility helps all users, not just disabled users.

Which accessibility features are you most commonly using ? Just wondering, what are the most used accessibility features, that new GUI-s don't have.

Getting ratioed because people think “my app must follow accessibility for… oh.. uh… because big company does so we must do same ooga booga smoothbrain incapable of critical thinking” Waste of time unless you are aiming your application AT people who use screen readers e.g. medical or public sector. EVEN THEN has anyone actually tried? Even accessible websites are garbage.

Re: We Have to Start Over: From Atom to Zed

#162

Their custom UI framework might be all fun and games for now, but that will probably change once they realize they need to implement accessibility. Doing this in a custom framework without sacrificing performance won't be easy and is going to require lots of messy, per-platform work. It's not like it's optional for them either. It would be for a simple editor that you can just decide not to use, but they're positioni…

Here's their only blurb on accessibility: > Currently, many of Zed's themes are largely inaccessible. We are working on a new accessible theme system, which will launch with Zed 1.0 > A11y (accessibility) in Zed will be a long project. Likely lasting far beyond 1.0. Due to GPUI being written from the ground up we don't have access to the same a11y features that Swift, Web-based apps or [insert other language] does. >…

> So they've thought about it, but they haven't actually done it yet.

In my experience, a11y shouldn't be an afterthought but baked-in from the beginning. Doing the latter results in hacky, harder-to-maintain code.

Re: We Have to Start Over: From Atom to Zed

#163

Earlier quoted context omitted.

I'm not so sure. The fact that were editing the code as text and not as mutations and annotations on its syntax tree has always struck me as a sign that we're still in the stone ages when it comes to expressing ourselves precisely to a computer.

The basic model of computation is the turing maching, and it’s a symbol manipulating one. So editing text is at the core of what computing is. You could go a step higher to edit tokens and that’s what VIM does, albeit imperfectly due to tokens not being a finite set.

I'm not sure what you mean by "tokens not being a finite set". I suppose there's the theoretical issue of token length being potentially unbounded, but whatever problems your editor has with that, your lexer will likely also have. For any finite length file, there is a finite number of tokens, and once you parse it, you've got a much smaller list of symbols plus a convenient address for each one. I don't think it's a practical issue.

Vim's understanding of tokens makes some reasonable assumptions, but unless you've configured the textobjects plugin to talk to a properly configured language server, you're working on vim's presumed tokenization and not a tokenization that's native to whatever the underlying language is. Helix tries to bundle this in by default, but it still doesn't feel like a first class citizen.

As for turning machines, not since the 80's have the tokens that appear in our editors been the tokens that are manipulated by our processors. There are typically a myriad of bytecode translations or compiler optimizations or parser hijinks between what you're editing and what you're running. It's the AST that matters to the code author, and the AST is a tree, not a string.

We need to get to the point where you can directly annotate on a function parameter:

> this function is slow when this parameter is > 100

...such that the annotation sticks to that parameter, however the viewer has chosen to render the text.

The best we can do at present is to sprinkle some text nearby leave the problem of deciding which parameter and which function are referenced an exercise for the reader. This then necessitates that we preserve the way the text appears, which prevents us from presenting it differently based on the view context (e.g. maybe the reader prefers different units, timezones, or a language which flows their text differently than the author).

Re: We Have to Start Over: From Atom to Zed

#164

Their custom UI framework might be all fun and games for now, but that will probably change once they realize they need to implement accessibility. Doing this in a custom framework without sacrificing performance won't be easy and is going to require lots of messy, per-platform work. It's not like it's optional for them either. It would be for a simple editor that you can just decide not to use, but they're positioni…

Why bother with accessibility. If a disabled wants to use an IDE, use a different one??

It can take an instant to become disabled: there is no permanent and distinct set of "disabled and "not-disabled" people.

Re: We Have to Start Over: From Atom to Zed

#166
post #159

Earlier quoted context omitted.

Accessibility helps all users, not just disabled users.

Which accessibility features are you most commonly using ? Just wondering, what are the most used accessibility features, that new GUI-s don't have.

Focus and focus management working as expected

Re: We Have to Start Over: From Atom to Zed

#167

Their custom UI framework might be all fun and games for now, but that will probably change once they realize they need to implement accessibility. Doing this in a custom framework without sacrificing performance won't be easy and is going to require lots of messy, per-platform work. It's not like it's optional for them either. It would be for a simple editor that you can just decide not to use, but they're positioni…

> I wish developers finally learned this lesson.

From a product perspective, re-inventing the wheel for something that — at best, many years from now — will be at parity with native presentation layers in terms of performance, a11y support, user experience, etc. is normally considered a risky move. Many startups have failed in part from pouring resources into shiny non-differentiators.

The only examples of successful products that use non-native UIs either (1) leverage web technologies or mature frameworks like Qt, or (2) are Blender (age 30). Apple did this with iTunes, but iTunes felt unpleasant on Windows, and people used iTunes for Windows in spite of this. I understand the appeal of creating frameworks like GPUI, but the article doesn't explain the relationship to the problem Zed is trying to solve.

Re: We Have to Start Over: From Atom to Zed

#168

Earlier quoted context omitted.

Why bother with accessibility. If a disabled wants to use an IDE, use a different one??

It can take an instant to become disabled: there is no permanent and distinct set of "disabled and "not-disabled" people.

Not to defend GP, but if I suddenly went blind, I really don't know if it would take longer to learn how to use my existing tools with a screen reader or to learn new tools better designed for it. It would be a completely new and foreign workflow either way.

Re: We Have to Start Over: From Atom to Zed

#169

Earlier quoted context omitted.

Accessibility helps all users, not just disabled users.

Which is to say, we are all (temporarily, situationally, eventually) disabled in some way

I have most commonly heard this phrased as, we are all temporarily able-bodied.

Re: We Have to Start Over: From Atom to Zed

#170
post #27

Earlier quoted context omitted.

Xcode and Android Studio have plenty of warts. What is it about Android Studio's experience that you find lacking in Xcode?

Part of me thinks it could be related to our project using CocoaPods. I've always appreciated how nicely Gradle worked to install dependencies, and the DX always lacked in Xcode. SPM works similarly, but I have yet to try it on a medium-sized codebase. So, my frustration could be related to CocoaPods. Apart from package managers, I like the auto-import features for frameworks in Android Studio. As well as the "fix it…

From personal experience, SPM is much smoother in moderately complex projects. Gradle (and to a lesser extent, Android Studio) drives me a special kind of crazy, especially when a project has sat for a while and Gradle updates have accumulated and Gradle version compatibility of dependencies has diverged.

This is somewhat exacerbated by the need to import so many libraries in Android projects. My Mac/iOS projects have between a fourth and sixth as many dependencies as their Android counterparts.

CocoaPods though… ugh. Horrible. Was thrilled to part ways with it several years ago.

Post reply on HN