Live data from Hacker News

You can't do that because I hate you

bvisness.me

101–110 of 216 posts

Re: You can't do that because I hate you

#101
I have a similar pet peeve in software, what I refer to as ‘Don’t Suck’ Buttons.

A ‘Don’t Suck’ Button is a setting, turned off by default and usually hidden in a corner of the UI or configuration file, which fixes a common issue that new users experience, and/or turns on the behavior that everyone wants from the product in the first place.

The best examples of ‘Don’t Suck’ Buttons involve settings with no obvious disadvantage to turning them on. They’re just turned off by default and the software makes you go through extra effort to tell it “No, I don’t want you to suck.”

Usually these originated from some kind of automation, new protocol or new feature that started out as experimental and was locked behind a setting, then became universally relied upon but somehow never enabled by default.

I used to have a list of examples of these. One that comes to mind from my TV: “Allow HDMI Devices to Control this TV”. If you have an Apple TV or something, it won’t change the volume or be able to turn the TV on or off automatically unless you know enough to go into settings and tell the TV “Don’t Suck”.

Re: You can't do that because I hate you

#102
post #59

Earlier quoted context omitted.

Not having a feature is fine. Kind of having a feature but hiding it behind obnoxious gatekeeping is not fine. Features that are buggy or inexplicably complex is not fine. Some open source projects get this right, and others don't. Some projects don't care about wasting the user's time. Or they berate the user for wanting to do something in the 'wrong' way. Or they break things that worked just fine in the pursuit of…

I really appreciate the way Rust feature gates unstable features. It's easy to opt into nightly if you need them, it's nice that new features are iterated until they are correct and it is nice to rely on stable being stable.

You can just prefix features with --experimental so people can use their own judgement. Software should warn users when they do something that might harm them. But it shouldn't patronizingly refuse to run.

"I'm sorry bryanlarsen, I'm afraid I can't do that." - 2023 a rustfmt Odyssey.

Re: You can't do that because I hate you

#103
If you think these are examples of why programming is hard do I have news for you

Python's error message is a compromise, they could've just printed the unknown variable error

Rust has unstable features to prevent tooling running into issues like ci failing everytime there's a minor version update

Re: You can't do that because I hate you

#104
post #101

I have a similar pet peeve in software, what I refer to as ‘Don’t Suck’ Buttons. A ‘Don’t Suck’ Button is a setting, turned off by default and usually hidden in a corner of the UI or configuration file, which fixes a common issue that new users experience, and/or turns on the behavior that everyone wants from the product in the first place. The best examples of ‘Don’t Suck’ Buttons involve settings with no obvious di…

One common reason these exist is because a lot of people got used to the state where the "Dont Suck" button didn't exist, and for those users changing their workflow would be even more annoying. I do agree it's not a great state of affairs, though.

Re: You can't do that because I hate you

#107
post #101

I have a similar pet peeve in software, what I refer to as ‘Don’t Suck’ Buttons. A ‘Don’t Suck’ Button is a setting, turned off by default and usually hidden in a corner of the UI or configuration file, which fixes a common issue that new users experience, and/or turns on the behavior that everyone wants from the product in the first place. The best examples of ‘Don’t Suck’ Buttons involve settings with no obvious di…

Emacs is full of these.

In its defense, Emacs predates most modern UI paradigms (including, y'know, Ctl-C/V for copy-paste, or calling things "windows" vs "frames"), and is very conservative about updating defaults due to inertia.

Re: You can't do that because I hate you

#108
post #70

> But it does neither. It acknowledges your intent and refuses it. It’s saying “I know exactly what you want to do, but you’re doing it wrong. Do it right next time.” Programming languages follow rules and programmers should follow the rules. Just because mistake is common doesn’t mean the language should incorporate it into its functioning. That makes inconsistent behavior and is a pain in the long run because inste…

I think it's more a communication problem than a question of rules or behavior (which is why I also disagree with the article's take)

People react strongly to "I'm Sorry Dave, I'm Afraid I Can't Do That" types of messages, and the exit command one is pretty close to that. If instead they went for a more question like "unrecognized command. Did you mean 'exit()' ?" type of prompt users would react in a milder way.

In particular, choosing an imperative tone in help messages is probably not optimal.

Re: You can't do that because I hate you

#109
post #3

First example seems odd? The author acknowledges that the two proposed alternatives (printing " " or actually exiting) aren't great. The fact that the Python REPL provides a helpful hint seems like extra effort to make your life easier. This is especially notable given that in the next example, the author's complaint is about a command _not_ providing special guidance about the thing the user is probably trying to do…

> The fact that the Python REPL provides a helpful hint seems like extra effort to make your life easier.

I agree; Python is actually helping you out here, since just typing `exit` doesn't actually call the callable.

Also, Python being Python, while not recommended, there's nothing stopping the user from assigning to `exit` then printing it in the repl:

    >>> exit = 42
    >>> exit
    42
What would the author expect Python to do in this instance?

Re: You can't do that because I hate you

#110
post #10

Such a weird rant. Yes, some tools do some things, but not others. Making tools do everything for everyone just bloats them to unmaintainable messes. And it’s a special kind of entitlement to believe that the way _I_ imagine things must be working is the only possible correct interpretation. Reality is messy, there are trade-offs, and a lot of smart people think very hard about what the correct trade-offs should be g…

Writing code should be part of the OS as fundamentally as web browsing. You should get a cursor to write code, have a tree worth of files and have a button to publish the application as a single clickable program. Anything else is a tribute to the rant.

Just like there was only one OS out there…

But I could see the the madness anytime I squint my eyes, a large part of computing is just this.

It’s a miracle that it works at all..

Post reply on HN