The day I'll have to use an AI will be the day I either resign to be developer or quit my job. My company first disallowed AI and now they say "if you don't keep up we will pay that off someday" and I disagree and stand by that I'll never touch any AI stuff.
My knowledge, my experience and my passion to development is made from tinkering, failing, retrying and challenging. When a friend or colleague ask me a question there is a high percentage I can already fix the issue just by the experience I've accumulated (obviously, if the question is in an area I already explored, I'm not a book).
Thus, I don't want to be integrated in this new AI world and I feel like someday I'll have to do something else as even companies will tell people to use AI by the fact "you should be more productive and cost less". No, AI is a mental disorder.
Though most of the software do the right thing by checking if the standard output is an actual tty (isatty) to avoid colors when redirecting to something else (e.g. socket, fifo, etc).
The name NO_COLOR suggests a really binary choice which may be okay. Though GNU coreutils usually have a more selective option like --color=always|auto|never.
I'd prefer supporting a more general COLORS=on|off|compatible|...
Meaning:
- on: always on even when redirecting
- off: fully off
- compatible: maybe something like on by default and off if redirecting to a non-tty
> do the right thing by checking if the standard output is an actual tty (isatty)
This is a very questionable heuristic. I'm not sure the exact date that support began, but I have been piping color output to `less -r/-R` for decades. This can be nice even for less than multi-terminal-page output just for "search".
isatty(stderr) would actually be more accurate for my specific use cases for when I don't `|&` or maybe even `isatty(stdin)`, but those are also imperfect heuristics.
The point is, since "auto" is a questionable heuristic, it is not so crazy/wrong to just default to color-on and have an off switch and that off switch is what NO_COLOR is about (as explained by the very first sentence in the linked article). Desirable defaults ultimately depend upon the distribution of your user's tastes (as always, more|less).
> Though most of the software do the right thing by checking if the standard output is an actual tty (isatty) to avoid colors when redirecting to something else (e.g. socket, fifo, etc).
NO_COLOR is orthogonal to the isatty suppression.
NO_COLOR ensures that colors are off even when stdout is not redirected.
For example, when you have poor vision, poor quality display, or sit near a window, (or worse – a combination of these) the colored parts of the output might have lower contrast, low enough to make them impossible to read.
Yeah, my first thought on seeing this was that I really want a way to force color just as easily; when I output diffs in CI, they're much more readable with color but it's a pain to enable it when running headless.
When I quit my job and had to get my own laptop I bought a Chromebook. If your usecase is Terminal + Browser they're really very good.
I don't like that I'm supporting the Browser monopoly, but the battery life is supreme++(ARM versions at least), the Linux integration is great, I can run Android apps too(rarely though).
PWA's are integrated really well into ChromeOS so you won't be running one Electron instance per webapp. (My PWA's are Kagi Assistant, WhatsApp, SchildiChat(Element), Discord)
> Prompt for user input. If a user doesn’t pass an argument or flag, prompt for it. (See also: Interactivity)
prompting is usually the worse choice in a command line utility. on error you lost what you've type and have to copy back and forth unless the terminal disappeared.
> Prefer flags to args
Options are designed to be... wait for it... optional. as the name suggests. If you actually require to pass at least one option to a command to get it working then it's bad designed. An option is there to change what a default is not suitable for you.
For example, tar uses -x, -c to determine what to do. We're all used to it now but that is not the way we should design a command. A correct way is more like tar/untar similarly to zip/unzip. That would make more sense.
To me, rpm is definitely the worse in terms of use of options. If I'd redesign it I'd imagine something like:
Do I miss something? I've been following the project since the beginning and just checked the wiki, the website and all over the documentation and haven't found something relevant to anime.
It was inspired by tools like Warp and VS Copilot, started as a personal project to enhance my own Git workflow. Just sharing it in case others find it useful too.
I'm more of a mercurial guy (since 2009) and I honestly never understood the success of git with its total nonsense of options, UX and documentation. Each command does too much thing and has different behavior. Type git diff -x and git switch -x in a non-git repository and check the output...
Jj is arguably also in this vein, albeit much more heavyweight.
By virtue of almost universal adoption, git as an on-disk and interchange format give us an opportunity to treat is simply as an API and experiment with new UX on top. Would love to see more of this kind of thing.
Mercurial is slower than git. It has a few minor features that git does not have, but git has major features that Mercurial doesn't have. Git also supports interoperability with SVN out of the box, but Mercurial only has unofficial (and probably broken) plugins to do that. I used Mercurial for a few years but there is absolutely zero reason for me to go back. I would miss several lesser-known git features that I have come to rely on.
It is an OpenBSD culture reference though [1], not some sort of attempt at an insult. I would personally be sad to see it go as it does make me smile when a program is not too "corporate" and reminds me every time I see it that I have the power to pull through on my own (most of the time) if I just put my mind to it.
Why do you hope it gets removed? Personally I'd prefer to keep it - removing it would be another (small, but still) step in the corporate homogenization of everything.
I think removing a joke to be considered as corporate is a bit exaggerated.
It's okay to have "fun". I consider a software more corporate when it has a large website with dozen of MB of Javascript, analytics, XML documentation, ten automatic bots with CI checking every part of a merge request and a contributing guide larger than the whole got documentation to be more corporate than a clean and simple UX without jokes.
Remember: a clean UX should present output only when necessary. This is exactly where I prefer a lot hg status than git status for example.
My knowledge, my experience and my passion to development is made from tinkering, failing, retrying and challenging. When a friend or colleague ask me a question there is a high percentage I can already fix the issue just by the experience I've accumulated (obviously, if the question is in an area I already explored, I'm not a book).
Thus, I don't want to be integrated in this new AI world and I feel like someday I'll have to do something else as even companies will tell people to use AI by the fact "you should be more productive and cost less". No, AI is a mental disorder.