Live data from Hacker News

Learning from Terminals to Design the Future of User Interfaces

brandur.org

81–90 of 379 posts

Re: Learning from Terminals to Design the Future of User Interfaces

#81
post #66
post #60

Earlier quoted context omitted.

> 45-second video of Slack opening (surely the worst offender among modern apps I hate to defend Slack as it's far from snappy, but comparing it to a console app seems hardly fair. I wonder how much of it's slowness is due to network requests? I could make the argument that git is slow because when I clone a large repository it takes a while.

This goes to the article's point about caching; a chat app -- of all programs -- should cache conversations for a fast boot up. Sure, _updating_ the conversations -- the "cloning" stage -- may take some time, but why should you have to wait for the network requests to complete before seeing your past conversations? The git equivalent would be if you had to wait for git to do a fetch/pull every time you ran "ls" on a…

Don't get me wrong, Electron has a lot of issues. I think Slack should switch toolkits. But I don't see how we argue that a famously poorly implemented app is somehow indicative of the entire space of GUI apps and that a space equally fraught with UX issues is somehow obviously better.

Especally when we have excellent examples like VS Code, which is cheerfully giving neovim and emacs a run for their money and displacing longtime contenders like sublime, because it's genuinely quite good and plenty fast enough for most folks.

Re: Learning from Terminals to Design the Future of User Interfaces

#82
Agree with author that desktop UIs could be quite a bit better, and web tech gives devs enough rope to hang themselves with, which most do. Rest of the article sort of reads like a general annoyance with a grab bag of various apps and UIs tho.

The most revealing part of the article is that the author states current UI philosophy is making things legible and intuitive, but that UIs should be about speed and efficiency. These aren't really either/or, good UI/UX should explore the frontiers of both, and pitting them against each other feels off.

I think speed/efficiency are proxies for something deeper that the author is really getting at - many apps focus on approachability so much that they become superficial when they should be powerful. There are, however, approachable apps that are powerful. For example, Airtable is quite intuitive and approachable, but ultimately its a tool that helps users manage complexity, not avoid it. This class of tools is what we need more of, and I think the author is looking to fixing frameworks when deep down the problem is actually having better apps (e.g. this feels like category error).

Also, the author is asking for a reboot, but has failed to look at the most important UI reboot in the last decade - iOS UIkit. A junior dev can make a passable app just by following iOS Human Interface Guidelines that is accessible, responsive, intuitive, etc.

Personally, I like terminals for their show your work ledger aspect and the 'I know exactly what I want' factor, but just about everything else they're terrible at UI-wise. And in improving them, I'm not seeing anything in this piece that makes me think the same mistakes won't be repeated over again.

Re: Learning from Terminals to Design the Future of User Interfaces

#83
post #6

Yes! I am so glad somebody called out the UI animations! The one in 1Password bugs me every time, I don't use Spaces because it takes too long for the animations to play out. There are more examples. Every time a programmer adds an animation, a settings option should also be added to "disable animations". Advanced users will love you for it!

> Every time a programmer adds an animation, a settings option should also be added to "disable animations". You can disable every animation in OS X itself via the command line (defaults write). I put them all in a shell script that I run on new installs. You may be out of luck with 1Password.

Unfortunately, not every animation. In particular, the Spaces transition animations that the OP is complaining about is not one of the ones you can disable with `defaults.write`.

I re-check if it's been added with every new macOS release; no luck so far :(

Re: Learning from Terminals to Design the Future of User Interfaces

#84
I few months ago, I changed a developer-options configuration on my Android phone to increase the speed of the animations to the maximum. My phone felt so much more responsive, it was like I got a major processor upgrade.

IMHO, two big curses in UX today are unnecessary animations and webfonts that render ugly when font smoothing is off.

Re: Learning from Terminals to Design the Future of User Interfaces

#85
I don't think the 'terminal' model of UI gets enough attention. I don't know why that is, perhaps it is a feeling that it is the "old" way to do things and so not a source of good ideas.

Xerox's XDE had a very nice terminal. It could use proportional fonts and you still had precisely formatted text for code. It was not as fast as a VT100 or an xterm which relied on monospaced fonts. But that was the root of the issue.

Terminals conflate "formatting" and "content" in the worst way possible, there is content that "is" formatting (whitespace). This closely mimicked how typewriters did it but they did it that way not because it was "best" but because it was "possible" given the mechanics of building lines of type without a bunch of lead letters.

It is insidious how that in band content/formatting mixing of ASCII and then later ISO-Latin-x drove compromises in editor and text manipulation tool design. But here we are.

I wrote a pretty printer for come code once that pulled apart the format from the content and it would print out source code with a nice proportional font (I think a2ps(1) could do this too at some point) and I admit that the code "looks wrong" in that form but I also have to admit that it only looks wrong because I'm not used to seeing it in that form. It is harder to read when things like parenthesis fade into the text because they are so much thinner, but this is again the design vs eyeball sorts of trade-off.

When I read this bit what I heard was "Gee, it would be really awesome if some designer could capture the flow of terminals with a modern set of capabilities." But that XDE terminal? Dave Curbow, who was with Xerox Business Systems, once tracked down how many function calls had to be made before the glyph ever hit the screen and it was a lot. It made it hard to run efficiently on the hardware of the time (great when you can code new microcode, less useful on CPUs without that capability).

Re: Learning from Terminals to Design the Future of User Interfaces

#86
post #66

Earlier quoted context omitted.

This goes to the article's point about caching; a chat app -- of all programs -- should cache conversations for a fast boot up. Sure, _updating_ the conversations -- the "cloning" stage -- may take some time, but why should you have to wait for the network requests to complete before seeing your past conversations? The git equivalent would be if you had to wait for git to do a fetch/pull every time you ran "ls" on a…

Don't get me wrong, Electron has a lot of issues. I think Slack should switch toolkits. But I don't see how we argue that a famously poorly implemented app is somehow indicative of the entire space of GUI apps and that a space equally fraught with UX issues is somehow obviously better. Especally when we have excellent examples like VS Code, which is cheerfully giving neovim and emacs a run for their money and displac…

Yeah this was my takeaway as well. Category error - author didn't like electron apps, and therefore wants to dump GUIs in favor of terminals (which would slowly become GUIs with his improvements).

Re: Learning from Terminals to Design the Future of User Interfaces

#87
I wrote a comment under a different post just a few days ago. My comment got _way_ out of hand and wasn't as articulate as I had hoped. But the salient point I made with it is simple and applies equally well to this article.

UI is hard.

User interfaces seems really simple. Every programmer I know has looked at a UI and thought to themselves "I can code that in an hour!" and then ended up spending weeks, sometimes _months_ building the UI.

I believe UI is a big, unsolved problem in modern computer science. Just as hard as any other unsolved problem in our field. Right up there with general artificial intelligence and P=?NP. I'm not even joking.

We will eventually solve the problem of UI. But there are a thousand and one articles posted every day either A) complaining about existing UI or B) telling everyone the solution (without providing real, concrete new libraries, frameworks, code, etc). No one wants to admit that this stuff is just plain hard and we shouldn't beat ourselves up over the fact that we haven't solved it yet.

In other words, it's easy to complain. It's easy to display hubris. It's hard to put forth real, practical solutions. Or at least be humble and admit that we _don't_ have the solution.

Re: Learning from Terminals to Design the Future of User Interfaces

#88

So to sum up, Terminals Are So Responsive & Fast Users Always Feel It [1]. Animations are bad because they take too long but add no value [2], and terminals render non-english characters super well [3]. I've been researching for a bit, and actually research on how to make a "good" and "accessible" terminal interface is pretty thin on the ground. You can find a lot of opinions but very few with any data backing them.…

What does "accessible" mean?

Screen readers sure work better on text than on GUI elements, for one.

Re: Learning from Terminals to Design the Future of User Interfaces

#89
post #66

Earlier quoted context omitted.

This goes to the article's point about caching; a chat app -- of all programs -- should cache conversations for a fast boot up. Sure, _updating_ the conversations -- the "cloning" stage -- may take some time, but why should you have to wait for the network requests to complete before seeing your past conversations? The git equivalent would be if you had to wait for git to do a fetch/pull every time you ran "ls" on a…

Don't get me wrong, Electron has a lot of issues. I think Slack should switch toolkits. But I don't see how we argue that a famously poorly implemented app is somehow indicative of the entire space of GUI apps and that a space equally fraught with UX issues is somehow obviously better. Especally when we have excellent examples like VS Code, which is cheerfully giving neovim and emacs a run for their money and displac…

Slack's problems have zero to do with Electron.

Re: Learning from Terminals to Design the Future of User Interfaces

#90
post #66
post #60

Earlier quoted context omitted.

> 45-second video of Slack opening (surely the worst offender among modern apps I hate to defend Slack as it's far from snappy, but comparing it to a console app seems hardly fair. I wonder how much of it's slowness is due to network requests? I could make the argument that git is slow because when I clone a large repository it takes a while.

This goes to the article's point about caching; a chat app -- of all programs -- should cache conversations for a fast boot up. Sure, _updating_ the conversations -- the "cloning" stage -- may take some time, but why should you have to wait for the network requests to complete before seeing your past conversations? The git equivalent would be if you had to wait for git to do a fetch/pull every time you ran "ls" on a…

It's obvious from the outside, isn't it. Hindsight is everything.

But the reality is is that Slack is an application made by a real company by real people/developers who all faced real constraints. Go build Slack for yourself, through the same history they have, and lets see what we come out with.

Post reply on HN