Live data from Hacker News

You can't do that because I hate you

bvisness.me

81–90 of 216 posts

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

#81
post #40
post #28

Earlier quoted context omitted.

Except in the case of the 'exit' clearly this is accepting and parsing imprecise input in order to guide the user. If the code wasn't looking for 'exit' in order to correct the user (to use 'exit()'), it would just spit out some other error for 'I don't know what you're talking about'. Instead, they actually detect the intent by specifically coding for it... and then ignore it anyway. That's bloody minded.

How do you feel about java/c++ compiler that give hints like "missing semicolon"? Clearly it knows what's wrong. Why not automagically fix that for you[1]? https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...

JavaScript automatic semicolon insertion does a great job most of the time, but still leads to bafflement when code like

    const b = 1
    [1, 2, 3].forEach(console.log)
(from your linked page) does the wrong thing, because both forms (with and without a semicolon) are syntactically valid. I would much rather just always use semicolons (or, like Python, never use them) than have to memorise the 5% of oddball cases where I need to add them manually to resolve ambiguity.

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

#82
post #51

The author provides very surface-level criticism of two Rust tools , but they don't look into why those choices were made. I'm ignoring the Python complaint since it's discussed in other comments. With about five minutes of my time, I found out: wrap_comments was introduced in 2019 [0]. There are bugs in the implementation (it breaks Markdown tables), so the option hasn't been marked as stable. Progress on the issue…

> you can continue to write about how much free software sucks. I think that's unfair. He wasn't writing about how much free software sucks, he was writing about how some of the rust tooling sucks. Even in the larger context, everything he wrote applies just as readily to proprietary software. These sorts of issues are everywhere.

The post itself isn't very generous; its title is “You can’t do that because I hate you.”

You're right that "frustrating to use software" applies to proprietary software as well, but the author only gives very specific examples all of which involve open source.

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

#84
post #12
post #9

The last example is actually a great argument in favor of this “user-unfriendly” mindset. The removal of that CLI flag forced the user to actually figure out the root cause of the problem rather than paper it over with a workaround they didn’t really understand, which would inevitably metastasize and explode later in an even more frustrating way. All of these examples are devs trying to make sure users understand wha…

> The removal of that CLI flag forced the user to actually figure out the root cause of the problem rather than paper it over with a workaround they didn’t really understand, which would inevitably metastasize and explode later in an even more frustrating way. I wish the author had written what the real issue is. It feels like they are contributing the the very problems they are complaining about with a flippant line…

The problem was a strange monorepo setup where multiple packages came from the same GitHub repo. Then I tried to switch one of them to my fork. The error message did not help me understand this reality at all; I only figured it out the very hard way after blowing up my project in two different ways.

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

#85
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…

> “Just because mistake is common”

A good example of why having a language that is squishy to common errors is valuable. I still understood your point even though it’s grammar wouldn’t compile.

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

#86
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…

I'd have done both the hint and the actual result. Like this: >>> print >>> exit Hint: Use exit() or Ctrl-D (i.e. EOF) to exit >>> This way, it does do the thing you literally asked for, but also does help a newbie out.

Yes, I completely agree. If you want to teach the user the rules, then you follow the rules. The problem with the Python example is that they DID special-case it, but in an unhelpful way.

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

#87

>It wasn’t seeing my file, despite it absolutely being part of the project. It even found the lib.rs in my crate but not this particular source file. I have no idea why, Because it's not in fact part of their project, despite their assertion that it is. >But you can’t. cargo fmt doesn’t have an option for that. How is even possible for your format command to not let you format an individual file? Because cargo is a t…

Some of us just wander into the Rust part of the codebase every so often for our work.

I cd’d into the folder with the cargo.toml, ran cargo fmt, and nothing happened. I dunno what else to tell you. Sometimes things just aren’t set up the “right way”, and yet we still have to do our jobs.

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

#88
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…

What's weird is that there is a special exception for this -- it's literally not following it's own rules to tell you that you're not following the rules!!

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

#89
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…

> “Just because mistake is common” A good example of why having a language that is squishy to common errors is valuable. I still understood your point even though it’s grammar wouldn’t compile.

Humans aren’t programming languages. So programming languages don’t need to do everything humans do.

It’s ok for things to be different.

It’s cool that I understood what you meant when you said “it’s grammar wouldn’t compile” but I would definitely expect a compiler to barf unless you entered “its grammar.”

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

#90
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…

What's weird is that there is a special exception for this -- it's literally not following it's own rules to tell you that you're not following the rules!!

I think the exception follows the logic of giving tips and hints to make fixing it easier. So the intent is to create correct behavior, not enable incorrect behavior.

This follows its internal rules.

Post reply on HN