Reality is what matters. When glibc changed memcpy, it created problems. Saying "not my problem" is irresponsible when it hurts users.
Reality is what matters. When glibc changed memcpy, it created problems. Saying "not my problem" is irresponsible when it hurts users.
How should Linus have addressed the other guy?
This causes massive compassion fatigue. Take that into account, and it becomes clear that Linus is not as big an asshole as you think.
Of all the arguments for being brusque on the web, this is the one I find most unappealing... as well as the least applicable for the matter at hand.
As far as I can tell, there's nothing about Linus' reply that depended on his admittedly high level of technical competence. In fact, it seemed he was saying "don't rely on being technically correct, consider the consequences"... in a way that got people's attention.
"I'm smart, so it's OK to an asshole" is about as shitty as an attitude as "not my problem, I'm just going by specs" - in fact, it's kind of similar. ... I bet all the up-voters thought they were the "highly technically proficient people"!
They being so damn smart does not give them the right to be condescending and insult people who can't keep up. So I'm not as smart as he is, does that make invaluable? Does that give him the right to call me stupid? What if I am doing my best? If my best try isn't really helping, then they should simply ignore me, not attack me. Nothing gives anybody the right to insult people.
It's the guiding principle here on HN: be civil. Just like others need to polish their technical abilities, being nice is something they should work on.
In general, sites like Hackernews or Stackoverflow wouldn't work at all if smart people couldn't handle answering basic questions without being jerks.
For every Steve Wozniak there is a Steve Jobs.
It might also be a european thing. We are more direct. Less talking around the issue at hand.
They eventually learned to do the initial sell in a much more sideways manner as when confronted with 'do you want this or not?', British clients tended to just say yes to get them out of the office - even if they had zero intention of taking the product. Caused a lot of confusion until that was identified.
>In fact, I'd argue that it is even less than useless as if someone talked to be like that, I'd be even less reticent to try to help.
you sound like you're an ass with overgrown ego.
In general, one chooses whether to get things done or waste the time on gentle handling of ego of the people who can't control their own ego. It is a great boon for humanity that Linus has been choosing the former.
See, in your post, the "You're an ass with overgrown ego" doesn't help your point at all; it's just provocative and seen as aggressive.
Try to remove that phrase from your post and you'll see that there's no difference at all. In fact, you would have wasted a little bit less of everyone's time. (See how easy it can be to be aggressive and provocative; even thought it wins nothing at the end.)
Anyway, if I understand your post, you are saying that either you gets things done or you're ass kissing the ego of people. First, that is plainly totally wrong. You can be productive without being an ass. Secondly, not being aggressive, is not the same thing as ass kissing.
It's like fighting to win a battle or a war. By being aggressive, you fight to win that small battle.. but if the contributor is pissed enough and decide to not work with some asses, everybody loses.
That exactly what Linus did.
>you are saying that either you gets things done or you're ass kissing the ego of people. First, that is plainly totally wrong. You can be productive without being an ass.
if you analyze the logic of your statement you'd find what it puts "not ass kissing the ego of people " as equivalent to "being an ass". We're back to square one.
Quite frankly, I find your attitude to be annoying and downright stupid.
He was being insulting and unnecessarily aggressive.
Post #128 was stating logic and facts. Linus responded with logic and facts also, but before he did so, he stated the insult. Unnecessary and didn't add anything to the debate except emotional provocation.
If someone else doesn't get it, he can say, "This is my point, I hope it makes sense, if it doesn't, I don't know what else I can do to make you understand me." Something like that. And then just stop replying. Instead, he turns it into a pissing match.
> you sound like you're an ass with overgrown ego.
stands in direct contradiction to this expressed desire:
> get things done [and not] waste ... time
because what you think the other person sounds like is not relevant.
This:
> Absence of ass kissing isn't an insult.
is useless for a different reason. If you are a manager, which Torvalds is, you need to be able to keep the people you're managing in a usable state. This is only very rarely done with brusqueness.
If you're trying to make a world-class product, you can't afford the time to wrap all comms with your developers in niceties - you need to define where you stand and what's expected in solid terms.
Also: given his thorough explanations that go along with the chiding, I'd much rather be on a forum that has that kind of poster.
For the record, Linus's behaviour is not typical of Asperger's Syndrome.
"The user doesn't care.
Pushing the blame around doesn't help anybody. The only thing that helps is Fedora being helpful, not being obstinate.
Also, the fact is, that from a Q&A standpoint, a memcpy() that "just does the right thing" is simply _better_. Quoting standards is just stupid, when there's two simple choices: "it works" or "it doesn't work because bugs happen".
Reality is what matters. When glibc changed memcpy, it created problems. Saying "not my problem" is irresponsible when it hurts users.
And pointing fingers at Adobe and blaming them for creating bad software is _doubly_ irresponsible if you are then not willing to set a higher standard for your own project. And "not my problem" is not a higher standard.
So please just fix it.
The easy and technically nice solution is to just say "we'll alias memcpy to memmove - good software should never notice, and it helps bad software and a known problem"."
Not being an ass isn't difficult with practice, and it can even save time when communicating.
Go back and look at the thread. Linus isn't wading in with abuse. He's a solid part of the discussion from the start (I stopped counting his responses when I got to 7 in the first 50) and at least for those first 50 he's polite as everyone seems to demand him being. Explaining both his point about the function and about the user-doesn't-care view, repeatedly, politely - just as all the naysayers in this thread are demanding of him.
Heaven forfend Linus actually show frustration at having to repeat himself again and again, like an ordinary human would!
Molehill, meet mountain.
But I don't think I'm really in a good position to advise Linus on how to manage an open-source development community. Linux seems to be running at a high level of average competency despite the occasional hostility. Who am I to say that the hostility is dispensable? I'd like to believe it is, but I want to see an existence proof.
Oh, but I guess since this point requires actual thinking to understand, it's not in the realm of reality...
Linus explains in-depth why the distinction between memcpy and memmove is arcane and useless nowadays, shows how glibc's over-engineering crap actually hurts performance instead of helping, and that being a tight-ass (ie. doing /more/ than the spec) just makes the situation worse for everyone.
Are you all seriously thinking that Linus doesn't know about performance? He's not Miguel, dammit...
This isn't relevant to the technical issues at hand; it's just an insult. Exactly what I was trying to criticize Linus for doing. (That was actually the point of my comment.)
Are you all seriously thinking that Linus doesn't know about performance?
No, that's completely unrelated to anything I said.
I'm not familiar with the history of glibc here. I didn't read anything except the single comment from Linus that was linked to. And I'm only addressing the comments he made in that post.
You have not addressed what I actually said, at all.
I'm thoroughtly disgusted with the way I've been treated here, especially the number of downvotes I've gotten. What happened to the hacker news ethic of voting up things you like, but only voting down when someone is rude or malicious? Unbelievably, I'm now actually at negative votes. I guess I ought to take this as a signal that my comment was a disservice to this community, and consider that maybe I'm not wanted here.
By the way, I'm not interested in continuing this thread.
That has never been the ethic here: http://news.ycombinator.net/item?id=117171 http://news.ycombinator.com/item?id=392347
EDIT: Well, on second thought, notice that in both cases, although pg stated the he thought downvotes should be used to express disagreement, more upvotes were given to other commentors that though downvotes should only be used to boo rudeness (which is my personal opinion, as well). So I think maybe there is a division in the community on how this is supposed to be done.
Actually, the experience I was just whining about is case in point for why some people think downvotes should only be used to boo rudeness. I think a lot of people downvoted me just because there was a response to me that was strongly worded, even though it was (in my opinion) not really even relevant.
The first sentence of your post that is being downvoted is okay; it contributes something to the conversation:
> A spec is a contract between programmers and in the long run, it's better (for users and programmers) to follow specs and expect others to follow them, rather than to let others break them willy-nilly and just bend over backwards to accomodate.
I believe your second sentence is the reason you're being downvoted:
> Oh, but I guess since this point requires actual thinking to understand, it's not in the realm of reality...
That sentence is sarcastic, insulting to people's intelligence, and contributes nothing to the conversation. If you lose that attitude, I think your contributions would be better received.
I was parodying Linus.
I was making the point that that's exactly what you should not do.
Your comment was a passive-aggressive declation of stupidity in the other party.
The two are not the same.
Well, that is exactly how I perceived Linus' comment, which is why my comment came across that way.
Clearly I was wrong, but I thought everyone would find it obvious that Linus' reply was pretty much unacceptable (and thus understand the point I was trying to make... which was not a passive-agressive declaration of stupidity in the other party, despite how it came across).
As least in the comment that was linked to, all he does is "yell" (all caps) at the person he's attacking, and although he presents an argument, it doesn't address the things his attackee actually said; I (personally) found it to be thoroughly unsatisfying in an intellectual/technical sense.
No, I in fact have not; I just looked at Andre's last comment and Linus' flaming response which did not address his points and was very rude.
You may be right that Andre was being a pedantic, obnoxious, rigid idiot. I have no idea, I didn't read the thread. My only point is that "THE USER IS ALL THAT MATTERS" is not a valid software principle and that rather than communicate anything useful, Linus just yelled at people (in the particular commen that was linked to from HN).
Even worse, you aren't interested in getting a clue by reading the damn material.
However, I was pissed off by one of Linus' comments (which, taken by itself was pretty ridiculous), and made a comment on HN about it.
My comment was sarcastic in a way that I think was misunderstood and made many people angry. Many insults were hurled my way, and I tried to defend myself, resulting in an ever-worsening spiral. It's pretty much just become a massive shitfest.
I wish people hadn't been so quick to attack myself and my character (yourself included). This kind of thing is definitely contributing to the decline of HN, which is something being discussed lately (as always, I guess). And, yes, I'm contributing to it too by even trying to defend myself, or maybe by defending myself too aggressively.
I can understand if you read the whole 100+ thread and then point out that what I'm talking about is completely unrelated. That's true, but I wasn't talking about the whole discussion; just picking at a bit of unreasonable rudeness on Linus's part that failed to make any intellectually worthwile point. And I stand by that: the individual comment I was picking at (i.e., the one linked from this HN post) was pretty ridiculous.
If you intend this as defense, you'd best go back and look at your posts. You've been plenty rude, and arguably at least a little malicious.
That's because it's not.
The spec ( http://pubs.opengroup.org/onlinepubs/009695399/functions/mem... ) explicitly states, "If copying takes place between objects that overlap, the behavior is undefined."
Which means the real debate is between two technically valid interpretations of the spec: one that arbitrarily breaks existing software for no discernible benefit✻, and one that does not.
(✻ Unless, for ideological reasons, one believes that breaking said software is the benefit, in which case this is still a sneaky and passive-aggressive way to go about it.)
It's even fair to cast this particular debate as nonsense vs. pragmatism, because that's what it is.
If someone truly believes you should break software that made bad assumptions about memcpy, as a matter of engineering principle, then just stick this at the top of memcpy and be done with it:
if((src <= dest && src+len >= dest) || (dest <= src && dest+len >= src))
abort(); /* valid - spec says behaviour is undefined */;)
Seems to me kind of an important thing to recognize in this kind of discussion.
I sort of agree with you but I think what you're saying applies to a different context.
As the person who was rudely lambasted by Linus pointed out, Fedora is not there to "get on top." It shouldn't be trying to go by the same metrics that Windows goes by. And this isn't an issue of supporting legacy software; if Fedora makes a particular decision, Adobe can just update their software to follow suit.
So in a way, it is about supporting legacy software.
Maybe Fedora in particular has a mission statement that says, "The user is most important," but I'm not aware of it. I'm certain that's not the case for the distro I use (Arch Linux) :-)
"Since its first version, in 2003, Red Hat's Fedora Linux has been the best place to track what's on the leading edge of Linux and open source software." — Jason Brooks, eweek.com
"Fedora has [...] released an amazingly rock-solid operating system." — Jack Wallen, TechRepublic.com
Are either of those quotes truly true if the developers are okay with breaking existing functionality?
"Since its first version, in 2003, Red Hat's Fedora Linux has been the best place to track what's on the leading edge of Linux and open source software." — Jason Brooks, eweek.com
I personally would consider something like Arch Linux to be much more on the leading edge, and they would definitely not hesitate to improve their software at the expense of something possibly not working on somebody's system until they get the new update.
Case in point: Arch Linux was the first to switch to Python 3 from Python 2. A long time after that probably should have happened everywhere. And everybody whined a lot about how it was "too soon" and lots of software would break. Personally, I haven't had any problems with that transition on Arch Linux. Did it break things for some people, temporarily? Yes. Did it move forward the state of the Arch Linux operating system and, honestly, Python 3 adoption in general? Certainly yes.
If Linus had been on their forum yelling IT'S ALL ABOUT THE USER and telling people their attitude is stupid, maybe it wouldn't have happened. (Actually, he would have just gotten ostracized from the community.) In fact, they did get a huge amount of flak, but they stood up to it anyway.
What's the goal of Fedora? To satisfy intellectual purity or to make sure software runs for it's end users?
I know in some ways Fedora is a testing ground for Red Hat, and if that's the "purpose" of Fedora, then the reason for doing anything shouldn't be "user experience" but "being a testing ground for Red Hat." Which may lead to the same thing, but is not the same thing.
I mean, there really is no 11th Commandment that says "Software is all about the user." No, it's about whatever the programmer(s) making the software want it to be about.
The conflict here is between going above and beyond the call of the standards and in so doing encouraging expectations of that extra functionality in all software, or implementing only the bare minimum specified by the standards and in so doing breaking software as actually written. Given that this change involved literally checking for the relation between the source and destination address, and copying upward in one case and downward in the other (in so doing, implementing a function which is <i>also</i> required in the standard) adding this functionality to the de facto standard does not significantly increase the barrier to entry for new developers.
I think the ideal solution would be a note in the standard hinting that memcpy can be implemented with memmove, or even better, a deprecation of memcpy in favor of memmove with memcpy being in the interim aliased to memmove, but standards changes are always a pain.