Linus Torvalds Doesn't Like Bad Code

HardOCP News

[H] News
Joined
Dec 31, 1969
Messages
0
When I say Linus Torvalds "doesn't like bad code," I really mean it. Hit the link to read the full response to a bit of new code found in Linux version 4.3. Here's a snippet:

Christ people. This is just sh*t. The conflict I get is due to stupid new gcc header file crap. But what makes me upset is that the crap is for completely bogus reasons. The above code is sh*t, and it generates sh*t code. It looks bad, and there’s no reason for it.
 
This is damn polite for him, he's an uncompromising perfectionist.
 
No sugar coating.

See way too much bad/bloated code, but everyone's in a hurry so often times it just goes through because no time to fix.

Later... Fixing/optimizing takes longer...
 
It really is time for him to go.

People like Linus Torvalds are one of the reasons why open source communities are so toxic.

We owe him the existance of Linux, and I am thankful for all his work over the years. I have personally benefitted from it. We just need people with better inter personal skills working on these projects, or they will just wind up pissing people off and going nowhere.

There are ways to drive home the message about good coding home without being an asshole.

You know, reject a patch, and in the comments provide CONSTRUCTIVE feedback.

There is a reason Linus Torvalds sticks to the Open Source community. He wouldn't last a week in business with that attitude.
 
This is what happens when teachers teach students that everyone is a winner and there are no losers. You get shit code because no one gives a shit anymore.
 
This is what happens when teachers teach students that everyone is a winner and there are no losers. You get shit code because no one gives a shit anymore.

Well, that and the fact that a lot of people contributing to Open Source projects don't necessarily have computer science degrees.

Unlike in a business where you can choose to not hire someone who writes shit code, there is very little stopping a self taught "1337 coder" who over optimizes, under-comments, and in general follows bad form in their code from submitting a patch.

The problems arise when whomever is reviewing the patches doesn't catch it, and it somehow makes its way into a project.

The Open Source community has gotten much better though in this regard over the years. I think the whole re-coding of Xfree in the early days of Xorg in 2005 or so, into its current modular format helped highlight how poor coding practices can - over time - really hurt a project, and make it unmanageable.

Linus Torvalds is right for calling out poor code, and not moving forward with it. He really ought to do it more constructively though.

The whole Open Source community has become WAY to toxic, driving a way a lot of good talent, who otherwise could have made some amazing contributions.
 
Zarathustra[H];1041945719 said:
It really is time for him to go.

People like Linus Torvalds are one of the reasons why open source communities are so toxic.

We owe him the existance of Linux, and I am thankful for all his work over the years. I have personally benefitted from it. We just need people with better inter personal skills working on these projects, or they will just wind up pissing people off and going nowhere.

There are ways to drive home the message about good coding home without being an asshole.

You know, reject a patch, and in the comments provide CONSTRUCTIVE feedback.

There is a reason Linus Torvalds sticks to the Open Source community. He wouldn't last a week in business with that attitude.

You realize that all the things you bring up are why he works on the development branch of the kernel and then passes it on to someone else, right? No one goes developing anything for the Linux kernel and doesn't know that this kind of thing goes on. He shoots straight and says exactly what he means and doesn't try to talk around it with wishy-washy PC doublespeak. I admire him for that. Don't like it? Don't develop for the kernel. It really is as simple as that.

There are plenty of open source projects that aren't "toxic". The Python community has always been extremely friendly and welcoming, for example. It's all about who's running the show.
 
Linus is a dick with little to no personal skills. As stated by other people, this is a minor rant by this petty dictator. While I have benefited from the creation of Linux, I will not excuse Linus for his apparently inability to be civil and foster a good community within the Linux world.

This is the main reason why I will never contribute anything to the Linux world. It is also why Linux will never be more than what it is today.
 
I'd argue the optimized code isn't written well either (It would never pass my companies peer review process), but that's more a statement on the way kernel devs style then anything else.

Funny though, for a community project, how one person wields so much power.
 
Shooting strait can work well for some people but work very poorly for others. The Linux community is toxic in general and scares a lot of people away from it including myself for these reasons and others. And since most people are not bound by the need for income its a real problem for them. But then again its also probably why a lot of people are in the Linux community total lack of interpersonal skills is easier to accept when you have to rely on volunteers.

Also bad / bloated code can certainly be a problem but a lot of you forget there is a balance between doing things perfectly right and just getting something done. We like to say don't let perfect get in the way of done. A great example of this is windows for as much as everyone cries and complains that windows is not efficient, windows has bad code, windows has bad documentation. One forgets that windows is the worlds most popular desktop OS. I think its a great example of not becoming too much of a perfectionist. Open source people often spend so much time trying to make sure the code no one can see is right they totally miss way more relevant issues and features.
 
oh-really-please-tell-me-more.jpg
 
The Linux community isn't toxic. Why, look how they respond to criticism in this thread with "lmfao" and "lol" in all-caps.

Clearly this is a well adjusted community with great communication skills.
 
Any email that includes the words "compiler-masturbation" is an email definitely worth reading. :D

That said, after reading a little more of the thread, I'm not sure I entirely agree with him. I agree that the example he gave is difficult to read, but the fellow that wrote that example made a moderately strong case for the way he did it.
 
This is what happens when teachers teach students that everyone is a winner and there are no losers. You get shit code because no one gives a shit anymore.

That's right folks, Barney and Friends is the root of all our problems. :rolleyes:
 
The Linux community isn't toxic. Why, look how they respond to criticism in this thread with "lmfao" and "lol" in all-caps.

Clearly this is a well adjusted community with great communication skills.
Those responses have sprouted in result of years of Linux community toxicity. :D
 
A great example of this is windows for as much as everyone cries and complains that windows is not efficient, windows has bad code, windows has bad documentation.

It's extremely rare to see quality code. I'd guess you'd be lucky to see quality code as a programmer even a handful of times in your lifetime.

But as for documentation? Windows is light years ahead of Linux in terms of documentation. Sometimes I feel Linux is purposely designed to be esoteric with terrible documentation to make sure it's not useable to anyone but the "enlightened".
 
Any email that includes the words "compiler-masturbation" is an email definitely worth reading. :D

That said, after reading a little more of the thread, I'm not sure I entirely agree with him. I agree that the example he gave is difficult to read, but the fellow that wrote that example made a moderately strong case for the way he did it.

Could you direct me to the reply from the author? I didn't see it in the "next message" or a few after. Maybe I just missed it. Thanks!
 
I thought this was from Linus from Linus Tech Tips at first. Was definitely confused.
 
On the one hand, I agree that Mr. Torvalds is a gigantic asshat that I would never want to work with (even taking into account the incredible learning opportunity that would present).

On the other hand, given the extremely sensitive nature of their work (OS kernel development is not for the faint of heart, and Linux powers hundreds if not thousands of mission critical servers and applications around the world) I "get" why he uses this approach. It still sucks, but I get it. While most other applications are allowed to have a certain amount of "slack" as far as the quality of code, something with such a wide variety of applications like Linux (or really, ANY operating system kernel) can't afford to have that. Your OS is the platform on which the applications people actually use will run. The application developers need to not have to worry about bugs in the OS (within reason); it needs to "just work" for them.
 
On the one hand, I agree that Mr. Torvalds is a gigantic asshat that I would never want to work with (even taking into account the incredible learning opportunity that would present).

On the other hand, given the extremely sensitive nature of their work (OS kernel development is not for the faint of heart, and Linux powers hundreds if not thousands of mission critical servers and applications around the world) I "get" why he uses this approach. It still sucks, but I get it. While most other applications are allowed to have a certain amount of "slack" as far as the quality of code, something with such a wide variety of applications like Linux (or really, ANY operating system kernel) can't afford to have that. Your OS is the platform on which the applications people actually use will run. The application developers need to not have to worry about bugs in the OS (within reason); it needs to "just work" for them.

I guess my point though, is that it is possible to have the same (or even better) effect on the end product without having such a combative attitude.

No one is suggesting that he accept code he thinks is inadequate into the kernel. You just don't have to be rude and full of nerd rage when doing so.

Rejecting it along with a comment to the affect what is wrong about it, and encouraging whoever wrote it to try again with improvements would keep more people on the project, while at the same time doing a better job of teaching the folks around him in th eproject the level of excellence he expects.

As it stands, its a project run on tyranny, and the fear of being publicly insulted on mailing lists. That's no way to run any project.

Flies, honey, vinegar and all that.
 
a) Finnish, if you've worked with Finns you'll know they call it as they see it and it's very rare for the interlocutor to cry about it.

b) You generally keep kernel code as free of higher order functions as you can as it gets confusing and just leads to maintainance sprawl, backporting ugh. So as a general rule he's right, but I haven't looked at the function so the author may have an amazing reason for doing it, but even so you don't do pull shit like that in a release candidate, you talk about it, plan for it, get it in early in the cycle and then everyone knows what it is, why it is and hopefully is jealous of your erudite genius in such a well crafted world solving function.

c) Any large software program has it's puritans and (sometimes self perceived) custodians of quality, if you screw with them you're in for a bad time. It's just with open source it's a mailing list rather than someone showing up at your desk calling you out. It's even more important for parts of your codebase that can disproportionately affect others, like you know, the kernel. Try breaking userspace and see how he reacts.
 
Heh, that's not even rude.

Maintaining the kernel is no joke. I can tell some of posters in this thread have already had their weekly estrogen injections.

:D
 
Heh, that's not even rude.

Maintaining the kernel is no joke. I can tell some of posters in this thread have already had their weekly estrogen injections.

:D

Being rude and being polite get to the same end result, just one makes people hate the work they do and the other helps to inspire. It isn't 'manly' to be a dick to everyone, it shows more weakness than it does strength.
 
I don't understand you people. It's his way or the highway. These people knew perfectly well what they were getting into. They're not slaves, nor his employees.

PC is perfectly fine at most places, just not everywhere. As with everything, at some point it gets in the way. You can't have that in his shop. Deal with it.
 
As much as I luff my Linux stuff and agree with the totally obvious idea that bad code is not a good thing, I think Linus fits the stereotype of what a nerd who never grew up sounds like when given any kinda delusion of having power over something. It might be some sorta fake persona though. He can't be like that IRL because his wife Tove is a karate champion so she prolly puts him in his place when he's not talking to other nerds. He needs it too. Most nerdy power mongering types do better like by bathing and taking care of themselves when someone is around to remind them to take care of themselves and smacks them around a little when their nerd pet gets out of line.
 
Well from what I got out of that thread, I think the developer had good intentions, but shouldn't have been pushing them in rc7 (if I remember right), should have been mindful of code clarity, and shouldn't have been introducing code requiring new compiler features at this point in time.

I think the developers reasoning was good and intentions were good. In the end it sounded like they were trying to prevent possible over/under-flow security problems.

Without more context I can't really say what I think of his response. First offense? Should he have known better? etc...
 
Zarathustra[H];1041945768 said:
Well, that and the fact that a lot of people contributing to Open Source projects don't necessarily have computer science degrees.

Unlike in a business where you can choose to not hire someone who writes shit code, there is very little stopping a self taught "1337 coder" who over optimizes, under-comments, and in general follows bad form in their code from submitting a patch.

The problems arise when whomever is reviewing the patches doesn't catch it, and it somehow makes its way into a project.

The Open Source community has gotten much better though in this regard over the years. I think the whole re-coding of Xfree in the early days of Xorg in 2005 or so, into its current modular format helped highlight how poor coding practices can - over time - really hurt a project, and make it unmanageable.

Linus Torvalds is right for calling out poor code, and not moving forward with it. He really ought to do it more constructively though.

The whole Open Source community has become WAY to toxic, driving a way a lot of good talent, who otherwise could have made some amazing contributions.

He should look at the mirror if he wants to call out poor code. Someone who hasn't figured out how to create a stable ABI is not in a position to criticize other people's code.
 
PC is perfectly fine at most places, just not everywhere. As with everything, at some point it gets in the way. You can't have that in his shop. Deal with it.

It's not about being blunt nor about being PC, it's all about being tactful and civil. Instead of getting frustrated and firing off emotionally charged responses, it's far more useful to remind yourself that we're all working towards a common goal, and to help make everyone better at pursuing that common goal, instead of treating someone like an incompetent jerk that is wasting our time.

A true leader places utmost importance on the value of diplomacy. But people want to paint things in black-and-white terms because they either see it as being rude (blunt) or side-stepping the issue (PC). People, and situations in general, are far more complex than that, and a one-dimensional mindset will limit you to one-dimensional perceptions, and the things like true progress will be stunted.
 
"Linus Torvalds Doesn't Like Bad Code"

Is there anyone that does? I mean, when I saw the thread title I knew exactly what they were talking about, and I'm well aware that Linus has interpersonal skills that could use some work, but when the code being reference is Linux and it's got his name all over it since day one then I can understand why he's got the attitude he does. If people/devs are willing to put their time and effort into developing for Linux then it goes without saying that the code being contributed should be of the highest possible quality overall so it moves things along and doesn't force everyone involved to constantly back-track to fix all the shit that the bad code does wrong.

Honestly I don't have a problem with him or his attitude, I'd probably find him to be a good friend and excellent person to be around but that's because I'm that way myself I suppose: I have major issues dealing with stupid people and when I say that I mean stupid in the sense that they know and can do better but willfully choose to be lazy and careless on purpose. That shit is not to be tolerated and called out at every possible opportunity whether those being called out like it or not.
 
Zarathustra[H];1041945719 said:
It really is time for him to go.

People like Linus Torvalds are one of the reasons why open source communities are so toxic.

We owe him the existance of Linux, and I am thankful for all his work over the years. I have personally benefitted from it. We just need people with better inter personal skills working on these projects, or they will just wind up pissing people off and going nowhere.

There are ways to drive home the message about good coding home without being an asshole.

You know, reject a patch, and in the comments provide CONSTRUCTIVE feedback.

There is a reason Linus Torvalds sticks to the Open Source community. He wouldn't last a week in business with that attitude.

latest



Sometimes what is done is more important or more important that its done right, than leaving everyone feeling happy and their fragile self-esteem kept safe.
 
Sometimes what is done is more important or more important that its done right, than leaving everyone feeling happy and their fragile self-esteem kept safe.

The thing is right or wrong if you talk to the wrong person this way they are going to kick living shit out of you or at the least try.
 
We need an amendment to the constitution "programmers/coders from this date forth shall be coddled".
 
There is no excuse for disgusting production code.
Do whatever you want in your sandbox, but when it's time to commit you better commit quality code OR you can back up your unreadable one-liner with solid performance data.
99% of people can't provide any justification because they googled some micro-optimization from stackoverflow...
 
There's a difference between being a "straight shooter" or blunt, and being professional and tactful.

From OP's snippet, Linus is venting and raging a little without contributing back to what he is knocking down. Pissed with the quality of work being submitted recently? Take a breath, bite your tongue, and make an announcement at the beginning of next week. To be a leader is to remain composed and inspired a higher standard - not going on tirades like a child when something isn't going your way.

That said, he can do what he wants, I guess. But Linus shouldn't complain when contributors and volunteers start to dwindle, increasing the burden on whoever is left.
 
Back
Top