Hacker News new | ask | show | jobs
by st_asqi 744 days ago
This is absolutely constructive feedback, thank you again for writing it all up. I'll go through point by point and share my thoughts about each one.

Re speed and compactness, thank you! These are two things I really value in UIs, and I optimized Asqi pretty relentlessly to make it fast. It's good to hear that it's appreciated and I'm glad you said something.

1. The "feature coming soon" is awful and embarrassing. It exists because I wanted to make it clear that Asqi has a strong emphasis on history -- in fact, that's fundamentally what it's about -- even though big parts of that feature-space aren't implemented yet. But it was so painful to ship that way; I hate that div so much for blocking my mouse. ...so I'm sorry to you and everyone else that you have to suffer through the existence of that panel.

2a. Circular things, which we internally call bagels, are 100% a gimmick. Ultimately their job is just to look at code top-down, and there are probably better ways to do it although I don't know of any yet. But the problem is that I can be bought (at least in UI terms), and I realized that I really liked the way code looks in concentric circles. So I had these two conflicting thoughts: "this is cool and visually anchors the product", and "this is stupid and no serious person would find it valuable."

I tried rendering diffs in bagel form, which you can see if you shift-click other branches in the history tab to get this URL: https://demo.dev.asqi.io/#fast-libgit2::main,#6818,#6819,#68...::::. So cool, we have multiway diffs rendered in tree form, and now when you hover the elements you see which branches modified each blob. But it still feels like a gimmick because I can't really conclude that it's better than a properly-executed tree view. I don't know how to properly execute a tree view enough to make me dislike the bagel holistically, but if I ever do then the bagel is out. There's plenty to dislike about it.

2b. Hover-actions are central to Asqi's design and I love them, but I'm a sloppy-focus person and that's definitely a minority preference. The flashing is awful and the epilepsy warning was comically embarrassing to have to include. I think a toggle is definitely worthwhile so people don't suffer through my ergonomic biases.

I spent a bunch of time wringing as much see-things leverage out of each screen as I could, except for the despised "feature coming soon" div discussed above, and even did some things like if you hover over a repo-local link in a markdown, scrolling on that link scrolls the link's destination so you can peek into the contents without moving your UI frame of reference. If the user had to click on stuff, they'd have a deeper navigation history and more backtracking.

Having said all that, your perspective is also entirely valid. There's a point where your preferences may diverge from Asqi's design enough that Asqi isn't for you, but I don't think it's here. Asqi needs to meet you on this one by at least providing an option.

3. We don't yet have go-to-references, and perhaps never will. We don't actually have a precise definition/reference linkage for the codebase at all because I don't know how to represent it efficiently across multiple commits. Sourcegraph does it for one revision but not for all to my knowledge (I think if you explore past commits and jump to definition, it jumps into the present, for example). In the first months of Asqi I was so bent on solving this problem that I was designing type-system compilers whose sole purpose was to emit bytecode that implemented the jump-to-definition program across different blob/tree revisions. Then I realized Asqi isn't really about that and I'm not sure that's a product. That said, I also feel the lack of go-to-references and I've been thinking about whether it's implementable. I want it to be because it's a good feature.

4. The Ctrl+K dialog is half-baked and awful. It barely works, in fact. It's supposed to autocomplete words as you type, but it doesn't; instead, it alternates between autocompletions and path completions and expects you to manage focus. It is an abysmal, abhorrent piece of garbage that is second in place only to the semantic-history placeholder div in earning my ire. And like the semantic history panel, I owe you and everyone else an apology for how badly it works. It will be improved or deleted, for everyone's sake.

As for full-text search, I don't think it's going to make it in and for an interesting reason. Asqi's search backend searches for all functions that have ever existed, not just the ones in the current revision. Right now it filters down to just current ones, but "code ghosts" -- code that once existed and is now gone -- are one of the big drivers for having a semantic search feature. So Asqi's search is less about "find stuff in text" and more about "find named entities", at least for now. If the indexes don't get too big, I may also try to add the search-text use case, because I agree it would be useful and I feel the lack of that feature pretty regularly.

5. I really love this point you make, because you're 100% right and I'm kind of an asshat for not seeing it. I wanted Asqi to come across as opinionated, with some old-school sensibilities like Emacs-style key strings because they're compact and have a certain aesthetic appeal. However, Asqi's lack of regular descriptions can be read as not just anachronistic but gatekeeping, which broadly sucks and adds no value. This is another place where Asqi needs to meet the user, not expect the user to meet it. And I never would have thought of this because old-school key strings are second-nature to me. So thank you for saying something.

6. My tabs suck. I should be using a UI library, but threw them together as an early learn-React experiment and never fixed them. Eventually I'd like to get rid of pixels dedicated to things like tabs, but haven't figured out all the details yet. So you can expect crappy UI components like that to be gone soon, and please keep complaining about them (and any others) until they are.

I'm really glad you wrote all this up. It was helpful for me to go through and think about each point you made and how Asqi relates to it. I can't promise that Asqi will become a product you like, but you've given me a lot of room to think about whether it should, and I appreciate having that option. Any thoughts you have going forward are very welcome.