13 ms·
Torvalds: Standards are paper. I use paper to wipe my butt every day.
- dendory 16y agoAm I the only one that finds it amazing that in 2011 a mainstream Linux distribution like Fedora is still having issues playing YouTube videos? I mean... Linux on the desktop? wow...
- code_duck 16y agoYes, you're probably the only one thinking that, because the idea that there is a problem with Youtube and Fedora is based in an inaccurate reading of this article. He said Youtube worked fine. It was compared to as a control. The problem was with some other site using Flash.
- yuvadam 16y agoYou gotta _love_ Linus' writings.
- dtby 16y agoI do wonder on what basis I must _love_ his writings. I'm not a Linux guy, so I am out of the loop. What makes these writings so lovable?
- jpk 16y agoI would also include that he's furiously pragmatic. Which stands in contrast to other Free software personalities, who are often furiously idealistic.
- esmevane 16y agoThe nature of the Father of Linux being, in essence, an enraged (often insightful) crusader is just a point of pride for a lot of people who know about him and like Linux.
- rjbond3rd 16y agoHe's straightforward.
- cema 16y agoAnd smart. This is an important ingredient.
- ascendant 16y agoAs the originator of the OS and still working at a low level, it's nice to see him (A) care about the user experience all these year later and (B) cut through other people's bullshit the way a lot of us wish we could.
- irfn 16y agoindeed. this one is my fav. http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918 http://thread.gmane.org/gmane.comp.version-control.git/57643...
- deleted 16y ago[deleted]
- yonilevy 16y agoI actually find it to be really bad, and I'm not the only one -http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=411 http://www.informit.com/guides/content.aspx?g=cplusplus&...
- srram 16y agoWhile I agree with his focus on users, he has passed up a valuable coaching opportunity and probably antagonized a whole bunch of developers. He turned a potential coaching opportunity into a pissing match. Ridiculing volunteers on a open source project is inappropriate, irrespective of whether the opinion of that person was right or wrong.
- gommm 16y agoIf you look at the history, the comments at the beginning were much less abrasive. It's only after the discussion continued for a long time that he started being more aggressive in his comments.
- jpk 16y agoBut I think it's wise, in all debates, to maintain that civility. At the end of the day, which comments are getting the attention? I think he's right, I think it's important to defend what he thinks is right, and I understand how it can be frustrating, but we all just have to have the fortitude keep the flames in check.
- vacri 16y agoAt the end of the day, which comments are getting the attention? The ones with content. In the sample quotes in the article, Linux is attacking ideas and attitudes, not people.
- deleted 16y ago[deleted]
- vacri 16y agohe has passed up a valuable coaching opportunity ??? In the comment I read, he goes into detail about why it's wrong. His next comment that starts "Bullshit." goes into 500 words of coaching. He is backing up his arguments with developer-level people here, not newbie coders who are still figuring out how an array works.
- mjs 16y agoI find it interesting that Linus seems to have originally come across this particular bug report as a user; he, too, was having a problem with Flash player: https://bugzilla.redhat.com/show_bug.cgi?id=638477#c8 https://bugzilla.redhat.com/show_bug.cgi?id=638477#c8 "I see this as well. Sounds like clipping or some really bad sample rate frequency conversion." (It's only later that it becomes clear that this is due to a glibc "regression".)
- acqq 16y agoFor the long history of how some glibc developers are enjoying to make more problems to the users see also: http://www.tuxradar.com/content/debian-ditches-glibc-eglibc http://www.tuxradar.com/content/debian-ditches-glibc-eglibc I consider all this a real attitude problem.
- tptacek 16y agoThe first bit of evidence linked to by that article is glibc's maintainer complaining that he's being asked to improve the strfry() function, after a detailed technical analysis. If you don't know what strfry() is, that response does look unreasonable. But he's right! strfry() is, literally, a joke function.
- simoncion 16y agostrfry's man page gives no indication that it's a joke function. Contrast with memfrob(3).
- tptacek 16y agoFrom the man page: The function below addresses the perennial programming quandary: “How do I take good data in string form and painlessly turn it into garbage?”. To make the argument that strfry isn't a joke, you might find a real program that uses it productively. I'd be interested in seeing if one exists.
- 16y ago
- famousactress 16y agoI think it's awesome how focused someone who works on the very lowest level of the OS remains so focused on users, and their experience.
- j2d2j2d2 16y agoYou might also enjoy this "USE KDE!" rant from a bunch of years back. http://tech.slashdot.org/story/05/12/13/1340215/Torvalds-Says-Use-KDE http://tech.slashdot.org/story/05/12/13/1340215/Torvalds-Say...
- sudonim 16y agoI wonder what he thinks 5 years later? It seems like Gnome is the default on most distros. Are the attitudes he describes still influencing Gnome?
- streptomycin 16y agohttp://tech.slashdot.org/story/09/01/24/1842218/Linus-Switches-From-KDE-To-Gnome http://tech.slashdot.org/story/09/01/24/1842218/Linus-Switch...
- hyperbovine 16y agoSeeing the forest instead of the trees is a common trait of successful people.
- bonch 16y agoLinus is a patch shepherd. It's his job to see the bigger picture.
- chuhnk 16y ago"Bullshit. You clearly don't know what you're talking about." Tells it like he sees it. I'm not going to argue with the man. He makes some good points. The user really doesn't care what the underlying changes are as long as everything continues to work, in this case it does not. Reading back through the comments its clear Linus makes great suggestions which are left unheard. I like comment #222 https://bugzilla.redhat.com/show_bug.cgi?id=638477#c222 https://bugzilla.redhat.com/show_bug.cgi?id=638477#c222 "Breaking existing binaries with a shared library update IS A BAD THING. How hard can that be to understand? If you break binary compatibility, you need to update the library major version number."
- e40 16y agoThis hit the product I work on and I agree 100%. We had to scramble for days to fix this. (Find a test case, diagnose it, make the fix, release a patch.) It was a pain in the ass. At least the solution was a 1 liner.
- xilun0 16y agoexplain how you fix any bug or change any implementation by still respecting your side of a contractual interface without breaking said "binary compatibility" when using this broken definition of "binary compatibility" exposure of a random proprietary software bug written by morons does not imply breakage of "binary compatibility". some free software developers have no time to test their standard compliant library against all crappy proprietary software ever written under the sun. if that makes you sad, at least you are free to modify the fucking library for your own little use case, or even to fork the library and maintain your fork with an explicit policy of never ever changing externally observable behaviour (probably meaning you won't make any change to said library (other than in comments) if you REALLY apply this rule...), which happily glibc never had and hopefully never will have.
- ot 16y agoThese fights between "specs lawyers" and "pragmatic" programmers are painfully frequent. Reminds me of the ext4 controversy on the out-of-order metadata synchronization. Linus himself has already expressed his point of view many times, for example here (http://www.h-online.com/open/features/GCC-We-make-free-software-affordable-1066831.html?page=4 http://www.h-online.com/open/features/GCC-We-make-free-softw...): > Torvalds has his own take on this, which is that "For some reason, compiler developers seem to be far enough removed from 'real life' that they have a tendency to talk in terms of 'this is what the spec says' rather than 'this is a problem'." I couldn't agree more.
- bmj 16y agoAgreed. We have to produce a lot of paper doc in my domain, and in our bug base, there's a section dedicated to spec bugs. Just cos it's in the spec doesn't make it right.
- kabdib 16y agoAnd the spec may be right, but it's still the wrong thing to do. Applications are complex, fragile things. If you care about keeping them going over time, you wind up kowtowing to a lot of workarounds. Welcome to the software industry. The attitude of "I can change library Z, be spec compliant and still sleep at night even though the change took half an industry down" might be /correct/ but it is not going to retain customers. Do it enough, and you'll see users flee.
- mgkimsal 16y ago"Do it enough, and you'll see users flee." Unless there's no where else for them to go. :)
- kabdib 16y agoIBM was a master of this: Get a customer cornered and then bleed them. There are modern versions of this, too (Oracle springs to mind). "Nice business you have here. It 'ud be a shame if something were to . . . /happen/ to it? Right?" "Right, boss." "Shaddap, I ain't talkin' to youse." It's a successful, ancient business model.
- genera 16y agoLinus makes fine points, but it's asinine to say that standards don't matter. His entire contribution to the world could not exist without them.
- exch 16y agoI couldn't agree more with this. I may be overdoing it a bit here, but personally I don't agree with Torvald's p.o.v. at all. While user experience is obviously important, allowing mistakes like this to go unchallenged by simply providing a work-around just encourages people to write broken software. Specs exist for a reason. Ignoring them is not it. I do this in my own software as well. If a user files a bug because input X fails to process as expected -- and it turns out his/her input does not meet the spec -- I do not supply a fix. Even if his/her supplied input is widely used in 'the wild'. While this alienates a considerable user base, I refuse to be part of the problem.
- radagaisus 16y agoum, good luck with that.
- ascendant 16y agoDo you at least attempt to show the customer the error of their ways?
- exch 16y agoOf course. If the supplier of their input is a third party, I will even go so far as to file the appropriate bug reports with said third party for them.
- simias 16y agoMyself I would go for a compromise. Flash's behaviour (using memcpy when then mean memmove) is definitely faulty, and it's not an obscure C undefined behavior either, I'm sure any C tutorial worth mentioning has "if you want to copy overlapping regions of memory, use memmove" somewhere in the middle. I'd just fill a bug on adobe's bugtracker, tell them "we'll keep the current for X months, but then we'll switch to a new implementation, so if it still breaks it's up to you". With X being a reasonable enough lapse of time. By the way, if flash was open source it would probably be a one line patch to fix the issue, but it's not, and I wouldn't blame the fedora/glibc devs for that. Breaking things because "you can" is no good policy, but it doesn't mean you have to be backward compatible for ever, that's what being realistic is about.
- tluyben2 16y agoAlthough I like the attitude on some level and in this case he is obviously right, the problem with it is that our (and others I know) programmers feel like cowboys after reading HN posts like this. 'Ruby master bla says I don't need comments and documentation man!' 'Testing is sooo 00s; we use our brains!' 'Specs and standards are paper, read Torvalds; he uses that in his watercloset! Yeah he isn't talking about specs, but those are paper too!'.
- abdd0e78 16y agoLinus himself has said that he has an ego the size of a small planet.
- SoftwareMaven 16y agoEgo, properly applied, changes the world.
- raquo 16y agoSometimes even to the better.
- bcl 16y agoI like comment 132 better - https://bugzilla.redhat.com/show_bug.cgi?id=638477#c132 https://bugzilla.redhat.com/show_bug.cgi?id=638477#c132
- rwmj 16y agoGood, although that's also an argument for ditching C and using a decent high level language instead.
- sriramk 16y agoThe upstream glibc bug is worth reading too. My favorite bit 'Everyone is interested in using the code idiots write'.
- javert 16y agoA spec is a contract between programmers, and in the long run, following specs is good for users. Letting Adobe ignore specs and then bending over backwards to accomodate them doesn't seem like a good policy. And even if following the spec weren't better for users in the long term, it is technologically superior, and Fedora is free to choose the technologically superior alternative over pleasing the masses if they want. Despite what Linus suggests, there is no Ten Commandments of software that dictate the rules here. I guess Linus could have used this opportunity to convince a naysayer like me why I'm wrong, but instead he was just insulting and didn't address the real points at all. (And FYI, I'm a diehard Linux user)
- linuxguy 16y agoQuite frankly, I find your attitude to be annoying and downright stupid. How hard can it be to understand the following simple sentence: THE USER DOESN'T CARE.
- jpr 16y agoHow hard can it be for Adobe to write standards conforming code? The user doesn't care, but professional software developers, which I assumes Adobe's developers are, should make it a priority to follow the relevant standards.
- rwmj 16y agoPrecisely. It also indicates that Adobe don't run their code through valgrind, which would have picked this problem up. Considering that flash is (a) security critical and (b) often full of security bugs, you'd think they might run valgrind over it once in a while. Entirely Adobe's fault this one. BTW with Firefox 4 the need for flash has virtually gone. All the popular video sites can play most of their videos using the native video support in the browser.
- krakensden 16y agoI was under the impression that Valgrind didn't play nice with virtual machines.
- fleaflicker 16y agoThat's a deceptive title. The real point is more important (but less sensational): Reality is what matters. When glibc changed memcpy, it created problems. Saying "not my problem" is irresponsible when it hurts users.
- javert 16y agoA 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. Oh, but I guess since this point requires actual thinking to understand, it's not in the realm of reality...
- mrcharles 16y agoI understand your point and the purist programmer in me agrees but maintaining compatibility in the face of horribly broken software is how Microsoft managed to get on top with windows. If you've ever spent time reading The Old New Thing ( http://blogs.msdn.com/b/oldnewthing/ http://blogs.msdn.com/b/oldnewthing/ ) you'd realize the lengths MS went to to make sure that even when they improved things, they didn't break bad software, and how much that meant for people adopting the platform. Seems to me kind of an important thing to recognize in this kind of discussion.
- javert 16y agoThanks for the thoughtful response. 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.
- mrcharles 16y agoAnd I agree with you, but Linus is still right that the user is more important. When a Fedora user sees that Fedora is broken, all the user knows is that Fedora is inferior to other things. So in a way, it is about supporting legacy software.
- guan 16y agoLinus: “I (obviously) always compile my own kernels”
- DeusExMachina 16y agoGoing down the thread I found this little gem in one of Linus' replies: Why? Because _users_ are the only thing that makes software useful. Software isn't useful on its own. You cannot say "this is the right thing to do" unless you take users into account.
- ximeng 16y agoUpstream glibc bug here: http://sources.redhat.com/bugzilla/show_bug.cgi?id=12518 http://sources.redhat.com/bugzilla/show_bug.cgi?id=12518 Assigned to the inimitable Ulrich Drepper, who comments: "The existence of code written by people who should never have been allowed to touch a keyboard cannot be allowed to prevent a correct implementation."
- CamperBob 16y ago"The existence of code written by people who should never have been allowed to touch a keyboard cannot be allowed to prevent a correct implementation." Sounds like Drepper needs to read the standard C library spec (or else there's a human-language barrier at work here). It is not incorrect to map memcpy() to memmove(). ("Be conservative in what you send, and liberal in what you accept." -- Postel) Can anyone imagine this debate happening inside Microsoft? This is why they win.
- xilun0 16y agosounds like you misunderstood what Ulrich wrote
- CamperBob 16y agoCould be. What's your interpretation? Bear in mind that I'm an experienced developer, and consequently am reluctant to call someone a "moron" who should "not be allowed to touch a keyboard" on the basis of the occasional bug in their code. Yes, confusing memcpy() and memmove() is a novice mistake, but I've done dumber things, and it'd be nice if my users didn't have to pay the price. If the OS or CRTL can save them from my error by rendering the error harmless without any real downside, then it should do so.
- mitchellh 16y agoI wanted to note that Ulrich Drepper has proposed a way around the issue, and clearly said at the end "I'm happy to entertain a patch to this effect." When I first read the parent comment it sounded as though Ulrich immediately shot it down, which he did not. (Note I'm not blaming the OP of the parent comment for this, I am just trying to help future readers from making the same mistake I did) While he is not immediately agreeing with what Linus proposed, at least it is progress.
- intellection 16y agoTechnical Aggression. I prefer more people standing against intransient word & law. (Much is called Standards, or Rights.) Codes hold you. Our support systems could allow critical viewpoints better.
- marshray 16y agoKeep in mind the specs were written to standardize the behaviour that existed at the time: there were implementations of memcpy that worked a bit faster because they didn't have to test for overlapping regions. That's why there's a separate memmove function in the first place. So people saying that memcpy should work like memmove are really the ones advocating for changing a spec that is currently quite explicit. Enabling this type invalid behavior from app code is a classic example of introducing dependencies on undocumented behavior. Over time these dependencies accumulate in complex systems with the resulting effect of increasing software incompatibilities, not reducing them.
- Confusion 16y agoIs this submission a deliberate attempt to make Linus look bad? The title is not at all what his comment amounts to; it could be removed from comment post without changing the meaning. I don't doubt you can find a multitude of quotes of Linus in support of various, official or pragmatic, standards. He was just polemizing.
- statictype 16y agoIt wasn't an attempt to make him look bad. I think many/most people here would agree with the sentiment about standards vs actual usage. And that line was delivered with classic Linus style - blunt and with the subtlety of a chainsaw. That's why I chose it for the title.
- rcthompson 16y agoSo, did anyone try out the workaround in comment 55? I tried it just for fun, but Flash already doesn't crash for me, so I didn't see any difference.
- wazzupflow 16y agoInteresting; i wonder why more people don't get into Linux hacking.
- binspace 16y agoNow we know Torvalds is regular.
- vorg 16y agoSpecs are great: Java and Scala both have specs. Not having a spec can be OK if the language designer doesn't change things too often, and announces it well in advance when they do, e.g. Python. What's worst is, say, when the language "Product Manager" leads a standardization committee that hasn't done anything for 7 years, yet often changes the language implementation overnight so code samples in other people's books and blogs no longer work.
- pnathan 16y agoWhat language is that?
- zeynel1 16y ago"Standards are [just] paper." He misunderstands how the world works. Standard is not just paper; standard is the thing. From this site: http://science1.wordpress.com/2007/04/26/matter-does-not-exist/ http://science1.wordpress.com/2007/04/26/matter-does-not-exi... For physicists Newton’s atomic materialism is blinding. It will take many generations of humans to perceive that standard is the thing. There is no “physical” world other than standards and density differentials.
- rch 16y agoI don't use Flash on Linux. But! what's interesting is how much I dislike the first sentence of comment 133.
- known 16y agoPopular == Standard
- s3graham 16y agoKernighan & Pike: The ANSI C standard defines two functions: memcpy, which is fast but might overwrite memory if source and destination overlap; and memmove, which might be slower but will always be correct. The burden of choosing correctness over speed should not be placed upon the programmer; there should be only one function. Pretend there is, and always use memmove. Shucks. Also, static linking.
- srram 16y agoan analogy to the web: Quirks mode is a good thing