Top
Best
New

Posted by theanonymousone 1 day ago

Good Tools Are Invisible(www.gingerbill.org)
535 points | 252 commentspage 9
dtj1123 1 day ago|
I like TUIs because I can pipe the output of CLIs directly into them, and I don't have to leave my terminal environment. GUIs can't compete with that.
jodrellblank 11 hours ago||

    ls | gvim -
or in PowerShell

    gci | ogv -PassThru
Programs which call GUI library functions can read stdin too... why wouldn't they be able to?
dtj1123 5 hours ago||
Gvim is a TUI with a GUI taped on top, and whilst the PowerShell you've given there does call a GUI library function as described, I'm pretty sure the author is referring to non trivial examples of a GUI like sublime or VS Code.
lionkor 1 day ago||
TUI and CLI isn't the same thing. A badly written TUI will fail to check isatty() on stdin and will dump ANSI escape codes, which are not trivial to remove from the output as they follow a format that has different formats, lengths and sentinels that denote the ending.
dtj1123 14 hours ago||
I'm fully aware they're not the same thing, I'll not sure what gave you the impression I think they are.

I agree that a badly written TUI is... badly written? Obviously I'm referring to well executed TUIs.

For example, I regularly pipe the result of ls, grep or fd into Helix then use multicursor editing to set up a script. You simply can't do that with a GUI.

lionkor 10 hours ago||
Those are not TUIs, or rather, when we say TUI we usually mean interactive UI in the terminal.
dtj1123 5 hours ago||
Helix is a TUI.

Perhaps you should read my comments more carefully before writing a reply.

JonathanRaines 1 day ago||
*not true of hammers (jk, great post)
regexorcist 1 day ago||
Skill issue.
atoav 18 hours ago||
I mostly agree with the points made, however I would not call this "invisible" as it was chosen to be called in the title.

Good tools should be obvious, with the main ways to use it being very low friction and low cognitive overhead. That is not the same as them being invisible. It is just a different type of visibility (one that doesn't require users to get a driving license before they can use the tool properly).

When I design such tools, I tend to think about the problem from the users perspective. What is the information they really need to know? In which environment does the rest of the context reside? Which error cases exist, who will have to deal with them and what will they need to know?

psychoslave 1 day ago||
The article topic is interesting, but the example it picks to illustrate deserve the purpose a bit. There isn’t any text editor that is really invisible. Dæmons/services are invisible. Copy-paste single clipboard is invisible. Switching displayed context is invisible.

Probably becoming skilled at using Sublime afterward become nice in some cases, but personally I never achieved the cumbersome of integrating multiple text pointers in my habits. In the rare occasion it feels like it might be useful, I know I will need to look at what are the keyboard dance moves again, and by the time I go search for it, my brain already generated several ready to go alternative paths to achieve the change. And I don’t even know if it can do things out of the box like `:grep pattern-to-select-buffer | g!:pattern-line-to-exclude:s:initial-string:target-string:g | update`. That’s already awesomely powerful for this level of granularity.

But that’s a rare case where to make the tool shine: most editor deal with full literal substitution just as well (if not better in term of UI), more complex refactors will be better dealt with with whatever decent modern IDE, and whatever more cases that want would want to cover using some more advanced macro is probably going to be just as easy to deal with a bespoke script.

Also Sublime is not everywhere. Nor is Vim or Emacs to be clear (as soon as you are outside of a Unix lineaged box). Though probably if one need to ssh in some remote box `vi` will most likely be an option, even busybox integrate one. But we are no longer talking about whole contemporary project edition here of course.

Still the underlying point is nice to highlight, melting it with editor war didn’t make it a favor.

netbioserror 1 day ago||
I know the link is by the creator of Odin, but I can speak personally for my passion for seamless tools. I have ever had as seamless, high-flow of a development environment as I do now using Nim with Sublime on Mint at work. Every one of these tools is intended to slide out of the way of your thoughts, and they do so deftly. I'm never fighting the tools; instead, the tools are facilitating me transforming my thoughts into compiled programs. All of my time and energy is spent formulating a sound model rather than fiddling with configs or fighting obtuse features.
cryo32 1 day ago||
This is why LLMs are shit. They get between you and everything and turn it into a negotiation.
shevy-java 1 day ago||
So that's why they are so hard to find!
senfiaj 1 day ago||
Yeah, I'm so sick of hearing "it's way faster to install app on linux by using terminal than using that bloated gui softare center".
ozim 1 day ago|
Huh? Facebook mindless scrolling for drones?

Don’t agree especially with Vim. There are tools you have to learn first to use them properly not to harm yourself.

Author picked wrong analogy.

It is like nagging that excavator has some leavers instead of steering wheel.

Someone nagging they can’t quit Vim is far from Vim being example of bad tool.

Year of Linux on desktop is there as most of games actually run on Linux now thanks to Steam and SteamDeck.

More comments...