1. 34
  1.  

  2. 12

    I really dislike the tone of this article. It is overly condescending to the person who made this mistake. Especially this sentence:

    However, this was clearly too robust of a solution to the problem of determining where to install the pkg-config files, and so innovation™️ happened

    The tone detracts from the content of the post.

    1. 3

      I tried the recommended pkg-config command on several systems, and on some, it worked, and on others, it didn’t.

      1. 3

        In such circumstances, it would have been better to fail than to use a “solution” as in the article.

        1. 1

          Where did it fail?

          1. 1

            On an older Linux system I have sitting around. About 10, maybe 12 years old at this point.

            1. 1

              It worked on a fairly recent RHEL, openSUSE, FreeBSD, OpenBSD, macOS and MSYS2 though (yes, I’ve checked all of those)

        2. 1

          I think the tone is appropriate to the garbage produced here. Like, sometimes you have to produce garbage to make something work, but that doesn’t make it not garbage.

          I think software developers, myself absolutely included, need to avoid getting attached to the trash we produce. I think there needs to be a shared understanding of - no one person is to blame for the perennially bad state of the ecosystem, but neither can we coddle and defend bad decisions. Bad code impacts everyone; users, maintainers, and not least the original developer.

          Everyone produces trash sometimes. Lord knows I produce trash. At work, at home, in $HOME, on Github. You don’t need to take a stand and say “don’t say trash, that’s insulting.” To me, it’s insulting to think that I can’t stand being called out on bad ideas. I am not my code; if anything, I am the intent behind the code, and the intent is not furthered by obfuscating my mistakes from me.

          At least there should be a comment with a rationale.

          1. 3

            It’s not OK to hurl abuse at your coworkers or their work when they send out a suboptimal solution. I only see this childish behavior in open source projects, but I guess it could happen anywhere. It’s a good way to get people to leave your workplace and for others to avoid working there.

            Everyone produces trash sometimes. Lord knows I produce trash. […]

            Your argument boils down to you not caring about abusive behavior. Ok, but why would anyone else feel the same as you? There is a HUGE disconnect between your words and how myself and my coworkers interact. I would explain what to do instead, but it’s pretty fucking obvious.

            no one person is to blame

            When the poster writes “and so innovation™️ happened,” that’s blaming.

            At least there should be a comment with a rationale.

            No thanks! We screen for kindness in my company’s hiring process. It’s that easy for me to avoid these interactions. Most people are capable of learning kindness by the age of 12.

            1. 1

              Kind of annoyed that you didn’t respond to what I consider the core argument in my post, starting with “I am not my code.”

              Your argument boils down to you not caring about abusive behavior.

              I fundamentally disagree with this take on my argument. I suspect that you could construct a scenario where I would think otherwise, but to a first approximation, I don’t think abuse of a person through criticism of their code should be something that people consider a thing. I am not my code; you are not your code; nobody is their code. Calling out bad code is not an accusation of any sort, nor is it a character slight. We learn through feedback.

              There are trash fires in the codebase at the company where I work that people, even people still working here, at various points contributed to. Everyone agrees these projects are trash, because everyone can see that; nobody takes that personally. In fact, I suspect more people would take it personally if you told them that you couldn’t call it trash, because that would destroy all hope that it would some day get better.

              When the poster writes “and so innovation™️ happened,” that’s blaming.

              I don’t even think that it is; at most, it’s griping. Griping is healthy. I don’t know how people can get through the day without griping, considering the state of the field.

              At least there should be a comment with a rationale.

              No thanks! We screen for kindness in my company’s hiring process.

              I fail to see what that has to do with anything? I’m saying if there is a point to this, it should be documented in the file.

              edit: There’s several files that I’ve personally written where I could imagine a new hire coming to me and being like, “feep, isn’t this code kind of … shit?” And I’d be like “careful!………. it’s shit for a reason.” But it is, definitely, shit. I don’t see what the benefit is supposed to be in pretending otherwise.

              1. 2

                Kind of annoyed that you didn’t respond to what I consider the core argument in my post, starting with “I am not my code.”

                I mostly agree with the sentiment in your argument applied in general, but I am pre-empting it with my claim that this instance crosses the line into abuse.

                I don’t think abuse of a person through criticism of their code should be something that people consider a thing.

                I think there is a spectrum of reasonable criticism, and this linked post is beyond that point. To compare to cooking, there can be harsh criticism (of a cooked meal), and there is Hell’s Kitchen criticism. I believe the average person would not consider Hell’s Kitchen to be a healthy work environment. Ramsay’s criticism was probably often correct, but that is beside the point. He tore people down. I do not want our work environment to be Hell’s Kitchen.

                I don’t even think that it is; at most, it’s griping. Griping is healthy. I don’t know how people can get through the day without griping, considering the state of the field.

                This is a poor excuse for poor behavior. The author of the post did the digital equivalent of shaking hands for the first time with someone they never met and saying “Hi, nice to meet you, your work is really shit.” Griping privately is fine. Griping publicly and shitting on the VERY FIRST MISTAKE other random people make is not going to accomplish anything.

                No thanks! We screen for kindness in my company’s hiring process.

                I fail to see what that has to do with anything? I’m saying if there is a point to this, it should be documented in the file

                My bad, I misunderstood your comment. Please disregard.

                edit: There’s several files that I’ve personally written where I could imagine a new hire coming to me and being like, “feep, isn’t this code kind of … shit?” And I’d be like “careful!………. it’s shit for a reason.” But it is, definitely, shit. I don’t see what the benefit is supposed to be in pretending otherwise.

                Yep, I’ve been in this situation before too. So let’s run with this example. What if they didn’t come up and tell you it’s shit privately? They were just hired, run git blame on the code and write a long rant about how shit it is and send it to the author (you) and CC all your coworkers? That is what happened here. How many people would that convince? I think zero. If it convinces you, remove yourself from the example and re-run it with a random reasonable person. Ranting is not a useful rhetorical device. I’ll now expand on this idea a bit more.

                Let’s go back to my original post:

                I really dislike the tone of this article. It is overly condescending to the person who made this mistake. Especially this sentence:

                However, this was clearly too robust of a solution to the problem of determining where to install the pkg-config files, and so innovation™️ happened

                The tone detracts from the content of the post.

                I made the narrow claim that “The tone detracts from the content of the post.” It did. It was less convincing. I was reading the article thinking “this person is right, but they are being such an asshole that I don’t care.” And look what the maintainer of ncurses said: https://lists.gnu.org/archive/html/bug-ncurses/2021-10/msg00051.html Basically the same thing. It doesn’t matter how right you are. If you are an asshole, no one will care.

                When I find something shit I might rant about it privately, with the understanding that it will accomplish nothing. If I actually want to fix the problem, I write a proposal for the solution and send it out. If that proposal is ignored or treated like it’s stupid, I will escalate. Here is an example of a justified rant: https://lwn.net/Articles/629259/

                1. 1

                  Yep, I’ve been in this situation before too. So let’s run with this example. What if they didn’t come up and tell you it’s shit privately? They were just hired, run git blame on the code and write a long rant about how shit it is and send it to the author (you) and CC all your coworkers? That is what happened here. How many people would that convince? I think zero. If it convinces you, remove yourself from the example and re-run it with a random reasonable person. Ranting is not a useful rhetorical device. I’ll now expand on this idea a bit more.

                  Yeah, I mostly agree with that. On the other hand, every time I see a post on r/programminghorror I nervously check if I recognize the code…

                  I think to a large extent this is a disagreement about perception of hostility in social media. To me, the innovation™ line is sufficiently dissociated from the maintainer that I wouldn’t feel targeted if it was me. I might go “now come on here” but I wouldn’t feel attacked¹ by it. As such, to me this seems somewhat beneficial with no downside, whereas I suspect to you it seems marginally beneficial with a clear downside? I see the point more as an attempt to consensus build code quality than to make anyone look bad.

                  They were just hired, run git blame on the code and write a long rant about how shit it is and send it to the author (you) and CC all your coworkers?

                  Honestly? Thinking about it, I kind of want this as a newsletter in the company I work now. As long as I’m not singled out as a target, this sounds fun.

                  ¹ “Attacked” to me are posts where the poster is explicitly trying to attack my standing or relations, or make people think worse of me as a person. Those raise my hackles like nothing else. I don’t feel that here, I don’t think the author and the maintainer have a feud. I think they could grab a beer together. (And I don’t even drink beer, but it’s the spirit of the thing.) So my brain classes it as “harmless community interaction” and moves on.

                  edit: A fun metric I came up with on the spot to gauge the quality of hostility is, “in the Reddit/Hnews/lobsters comments to this article, would the maintainer be upvoted or downvoted?” I think this is still on the upvote side.

                  edit edit: I think you’re coming at this from a reasonable perception, but I can’t help but note that a community that is more sensitive to hostility is also a community that’s going to have fewer interactions by some people, because it presents them with higher effort costs. Maybe the quality of interactions or the gain from the people who have lower effort with less hostility makes up for this, but I could easily even see it be a net loss. I don’t think you’re wrong here, but I do think it’s a matter of - like, I think a programming community with this level of hostility as normal is valid. I think it should ought to be able to exist, even in a perfect world. Don’t you?

                  1.  

                    Thanks for the thoughtful responses. I did read your entire reply. I don’t mean to give TMI, but I will cut straight to the point.

                    I think a programming community with this level of hostility as normal is valid. I think it should ought to be able to exist, even in a perfect world. Don’t you?

                    It’s impossible for me to separate out my own neuroses enough to pass such judgement. When I see hostility of this level in a programming discussion, it is very, very, difficult for me to process it in a constructive manner. I can barely do it, after tens of minutes calming myself down and much stress. What you are getting at, basically “constructive hostility,” I am blind to. I think I have experienced too much true hostility quite early in my life. So I see no value in it. If it bleeds into my community, I fight against it. I know that other people see things another way, but that does not change my mind.

                    I am not saying that anyone owes me anything. I just have zero tolerance for hostility. And I will keep arguing against it.

                    1.  

                      Fair enough, makes sense.

        3. 5

          Yes, you are reading this right: it is scraping debug output to find the pkg-config search path.

          I could barely read the thing at all, it looks like gibberish.

          1. 2

            It’s just some m4 mixed in with shell scripting mixed in with awk. What’s so hard about that? 🙃

          2. 3

            Maybe instead of ranting first investigate the history behind it, since this used to work. There must have been a good reason this has changed (perhaps working around systems which are broken in some way)

            1. 7

              This is the thread that prompted the change. Basically, some installations use non-standard paths and ncurses needs a way to detect this.

              Looks like Thomas just couldn’t figure out a way to get this information from pkg-config/pkgconf in a clean way: “I don’t see a way to ask pkg-config what its built-in search order happens to be”, so he fell back to this rather ugly method. I doubt he was happy with it in the first place. A mistake on his part for not being able to find the correct way of doing things; but these thing happen to the best of us.

              His reply to this rant made me laugh. Paragraphs of text wasted, when three lines would have been enough.

            2. 1

              Forgot the /rant