Linus Torvalds and C++

Started by
149 comments, last by Anon Mike 16 years, 3 months ago
Linus is a typical social inept. High logical intelligence, low social intelligence. And he is surrounded by open source zealots who refuse to tell him so. So it turns out he hates c++. Despite having the support and authority to improve the langjuage, he goes on a rant and knocks it. He also has a "them vs us" attitude towards certain OSes and certain Languages.

I have some code for Mr Torvolds to read, should he frequent these boards (I suspect aersixb9 is in fact Mr Torvolds)

Task task;Tool tool;Person person;if(person.canUseTool()){	if(bestToolForTask(tool,task)){		useToolForTask(tool,task);	};}else if(person.isConceited()){	person.decideToolIsCrap(f);	if(person.isNarrowMinded() {		person.dissThoseWhoUseTool(tool);	}		if(person.isPublicFigure()){		person.preachOpinionOnToolAsFact(tool);	}}else if (toolIsPopular(t){	person.learnMoreAboutTool(tool);}else{	person.findMoreSuitableToolForTask(task);};
I just wanted to see if he would actually do it. Also, this test will rule out any problems with system services.
Advertisement
Hey, that's complete and utter crap. In fact, I port my STL code to his hacked together non-standardized OS from hell without any problems. Are these quotes actually real, or does he actually have his head up "in the clouds" that far?
Guess I have somebody to lookup to since I'm a C and procedural progamming type of guy.
--------Ratings - Serious internet buisness
Quote:Original post by Lode
Quote:- infinite amounts of pain when they don’t work (and anybody who tells me
that STL and especially Boost are stable and portable is just so full
of BS that it’s not even funny)


I use STL everywhere, how's it not portable? My code compiles on all major OS platforms.

"Portable" means many different things to different people depending on context. If I use "portable" then I'm almost certainly refering to something that works across linux, win32 and mac. For other people it might mean ps3, 360 and win32. For OS people it's more likely to include linux, win32, mac, solaris and a whole bunch of obscure platforms that practically no one ever uses yet are still important to them for various reasons.

I remember watching his presentation about GIT (IIRC it's on YouTube somewhere) about why it's so much better than every other source control system. He's obviously a smart cookie, but his presentation style and communication leaves a lot to be desired. He'd often make sweeping statements which may very well be accurate from his POV (like, CVS is terrible and SVN isn't any better) but without supporting arguments (like "CVS is shit for kernal development because it's not distributed" which is what I think he meant) he just sounds arrogant and not worth listening to.
Quote:Original post by davepermen
Quote:Original post by Crypter
Quote:
C is just more convenient for kernel development

I personally find C++ more convenient for kernel development over C, tbh. (I personally use MSVC++ 2005 for my kernel) This is all opinion, of course.


C# is much ore convenient for kernel development.. linus torvalds is really old-minded.. :)

oh, and btw, if you think, it's a joke.. google for singularity.. i really like c# kernels :)


I know about Singularity. But I doubt you've written a C# kernel yourself [grin]
But my point (and perhaps I should have been clearer) is that it takes a lot more infrastructure to get C++ (or C#) up and running in your kernel. C is relatively straightforward among other reasons because it's smaller, has a tiny standard library, and has a well-defined ABI. (and you will need to call into it from the bits of ASM you have)

So at least for parts of the kernel, C is an obvious choice of language. Of course it doesn't need to spread to the entire OS, but that's what happened with the *NIX family.

Quote:
Quote:He is a highly unprofessional, arrogant, incompetent asshole.
That is almost exactly what I was about to post, before seeing it had already been said. I'll debate the "incompetent" charge; I'm sure the guy can code. But he embodies everything which makes open-source zealots exactly the kind of people you wouldn't really want as colleagues.


Incompetent C++ programmer. I don't know enough about his coding skills to judge him as a kernel (or C) programmer, but I'm sure he's good enough to get the job done there.


As SiCrane said, the thing about C++ is that you need to be an expert to avoid shooting yourself in the foot. That's a fair criticism of the language. Linus isn't an expert C++ programmer, so he shoots himself in the foot, and so he doesn't like it.

[Edited by - Spoonbender on December 28, 2007 10:42:54 AM]
Quote:Original post by Yann L
He is a highly unprofessional, arrogant, incompetent asshole.
I'd like to amend this:

He is a highly unprofessional, arrogant, incompetent asshole. Furthermore, you'd have to be a completely blind fool not to realize this almost immediately.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
Quote:Original post by Spoonbender
Quote:He is a highly unprofessional, arrogant, incompetent asshole.

Incompetent C++ programmer.


You mean, he's competent at being an asshole?

Just askin'
Quote:Original post by Promit
Quote:Original post by Yann L
He is a highly unprofessional, arrogant, incompetent asshole.
I'd like to amend this:

He is a highly unprofessional, arrogant, incompetent asshole. Furthermore, you'd have to be a completely blind fool not to realize this almost immediately.

+1. I find it hillarious that he uses what other people do in C++ as a reason to not use C++. If that were a valid reason for not using a language, I wouldn't have learned Java, C#, or VB.NET. I like to think that my competency in these languages is why I'm paid more than the incompetent people in the field.

[Formerly "capn_midnight". See some of my projects. Find me on twitter tumblr G+ Github.]

Of course, he is completely right.

Except about choosing C instead, but that stems from the fact that he is primarily a kernel developer.

To be perfectly honest, C++ is a horrible language. For low level code, it is too unwieldy. Once you cut the runtime, you cut exceptions, which cuts a lot of the STL, which leaves the language looking pretty unimpressive.

For high level code, it simply isn't high level enough.

I prefer writing C++ to C, because I like RAII and the Standard C++ Library and boost. But I prefer writing other languages to C++.

The only place it is useful is in those areas where we'd like to write in a real high level language but cannot because said languages cannot provide the performance we need. Thankfully I don't feel the urge to make fancy games that stress modern computers, and can get by with having lots of code in a scripting language and a slowly reducing amount in C++.
Surely even without exceptions and STL, classes and encapsulation are a benefit? Sure it's harder to exactly what will happen when, but a good C++ programmer will be able to.

This topic is closed to new replies.

Advertisement