Advertisement

Linus Torvalds and his smackdown speech

Started by August 13, 2012 01:02 AM
31 comments, last by Heath 12 years, 5 months ago
Honestly I do not give a shit what Linus or Carmack or Tim Sweeney thinks about any language.

Why? Because I'm not in the same league as them and more importantly, I don't need to be. For 99% of programmers productivity > performance. If you are writing the core of unreal 4 or idTech 6, the code had better be damn fast. For the rest of us, it's more important that it works, it's easy to read and we didn't spend 6 months on 2 weeks work.
if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight
On 8/13/2012 at 4:18 PM, ChaosEngine said:

For 99% of programmers productivity > performance.

And for the other 1% productivity is still more important 99% of the time.

But of course C vs. C++ is not really about productivity or performance. C++ noobs can be just as unproductive as anyone else. The issue is almost always relative proficiency and expertise with the languages/tools in question throughout your (potential) development staff.

Any engineer (or small group) can get their head buried in their particular product for long enough periods of time to not gain or maintain expertise with the latest languages or language evolutions they haven't been using. And that will inevitably affect the best choices for them at any given point in time.

And when languages/tools are new to an industry, it's a lot less practical to try to hire expertise, and there can be significant costs in terms of growing pains and mistakes in trying to transition.

In certain situations growing pains lead to the codification of programing idioms and paradigms, and ultimately language evolution. In other situations it leads to backing away from the new language/tool for as long as possible - "'Till they get their crap worked out".

Every one of those high profile programmers who at some point had misgivings about C++ probably had to struggle through that language transition and deal with engineering groups doing the same. And, in fact C++ really did have some crap to work out, above and beyond lack of proficiency or expertise in the programming populace. But it has, in fact, worked most of it out. And as for those (unnamed) dark corners that don't want to go away, C++ is still "pay as you go". You can, for the most part, choose not to go there, for free.

Advertisement

[quote name=John Carmack]
I had C and Objective-C background, and I sort of "slid into C++" by just looking at the code that the C++ guys were writing. In hindsight, I wish I had budgeted the time to thoroughly research and explore the language before just starting to use it.
Today, I do firmly believe that C++ is the right language for large, multi-developer projects with critical performance requirements, and Tech 5 is a lot better off for the Doom 3 experience [of transitioning to C++]
[/quote]
I find it interesting that Carmack has Objective-C experience and still thought that C++ was the better solution. Aren't they pretty much the same?

Beginner in Game Development?  Read here. And read here.

 


[quote name='Hodgman' timestamp='1344857019' post='4969013']
[quote name=John Carmack]
I had C and Objective-C background, and I sort of "slid into C++" by just looking at the code that the C++ guys were writing. In hindsight, I wish I had budgeted the time to thoroughly research and explore the language before just starting to use it.
Today, I do firmly believe that C++ is the right language for large, multi-developer projects with critical performance requirements, and Tech 5 is a lot better off for the Doom 3 experience [of transitioning to C++]
[/quote]
I find it interesting that Carmack has Objective-C experience and still thought that C++ was the better solution. Aren't they pretty much the same?
[/quote]

No, not really. C++ is a multi-paradigm language which happens to support generic programming and Simula-style OOP. Objective-C is a strict superset of C with some dynamic programming features and OOP syntax inspired by Smalltalk. You can certainly write equivalent OO code in both languages, but then again, you can do the same with various other languages pairs - C/C++, Java/C#, Python/Lua, etc. That doesn't mean that the two languages are identical in idiom, however; look at how different C# and Java code can be, and they're so similar that with some contortions you can get a C# compiler to compile Java - that's not really possible with Objective-C and C++ unless you stick to the language both are based upon - C.

I find it interesting that Carmack has Objective-C experience and still thought that C++ was the better solution. Aren't they pretty much the same?
Not at all. ObjC basically just adds 'Messages' as a native concept to C, which are basically duck-typed interfaces, instead of static-typed interfaces. Messages are called by performing a runtime string lookup to fetch the function pointer (as opposed to a vtable lookup in c++) - the c++ equivalent would be something like std::map<std::string, std::function>. C++ also added a lot of other features to C besides OOP helpers.
Also, I'm sure the choice of language has a lot to do with the compilers/debuggers/IDEs available for the target platforms...
Advertisement

All OSS guys fight and bicker like this. You can see the end result of it by booting into Linux.


Mmmmm, infighting definitely seems to be far more prevalent in those communities for sure. Without wanting to derail too much, my personal theory is that this comes more from Unix culture than from OSS culture, however. Might be an interesting topic for a separate discussion?

Linus does not come across as a pleasant person much of the time. It's certainly true that C++ is a great tool for those who like to waste time by writing endless boilerplate, but to slam the entire language in that way with apparently no rational analysis whatsoever? Great if you want to be a populist cheerleader, not so great if you care much about your reputation and credibility.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.


[quote name='Daaark' timestamp='1344898254' post='4969229']
All OSS guys fight and bicker like this. You can see the end result of it by booting into Linux.


Mmmmm, infighting definitely seems to be far more prevalent in those communities for sure. Without wanting to derail too much, my personal theory is that this comes more from Unix culture than from OSS culture, however. Might be an interesting topic for a separate discussion?[/quote]Not much to say, because there isn't much room for debate on the topic.

Linus does not come across as a pleasant person much of the time. It's certainly true that C++ is a great tool for those who like to waste time by writing endless boilerplate, but to slam the entire language in that way with apparently no rational analysis whatsoever? Great if you want to be a populist cheerleader, not so great if you care much about your reputation and credibility.[/quote]He seems like a good guy on G+.
When you're in his position and you have tons of questions, suggestions, and debates coming your way, you have to put your foot down and end them. Especially with the idiots who argue just to argue. Sometimes that means strong language. And a lot of times, the internet filter makes everything come out negative.
I gotta be honest and I am not sure why but when I read his C++ a while back I strangely (with no good reason) began not only to hate C++ but also rage childishly like him too, I never did find out why, I guess I needed an excuse to hate on C++. Anyway looking at all his other rants, I find them somewhat amusing and entertaining but no different than from a troll who is angry at the world.

The worst part about his rantings are they're a lot like all the crap you see everywhere anyway, I think theres only a few decent forums that dont attract or allow crap like that, for the rest of the internet however, well lets just put it this way, people like Linus only attract people like Linus even unintentionally.
Language wars have existed since the internet was conceived (and, probably before that too, just over telephone or in the uni's corridor).
The only surprising thing about this is how many people actually care when Your God Torvalds, may you all bow before him, says that "everything ABC is shit" and "all XYZ are idiots". It's not like this guy has written anything that's decisive for what Linux is today. Without Peter Anvin, Linux would never have as much as booted, without a thousand GNU people it would not have as much as a shell or a compiler or a file system, and without people like Ingo Molnar (he definitively gave the biggest bangs, but there's at least half a dozen others with many important contributions) it would not be nearly competitive in any way.
My first Linux install was Slackware 1.1.1, which was much closer to "made by Linus Torvalds" than what you get today when you install e.g. SuSE or Debian (*shudders* at the thought of manually unpacking several dozen .tar files from floppy and editing /etc/fstab and /etc/passwd...). Oh boy, it really sucked. It was just lucky for Linux that Windows 3.1 sucked even more when you wanted to run a webserver, and Windows 95 (at the time of Slackware 3.0) and Windows 98 weren't truly an improvement for that kind of thing (though Win98SE totally anihilated Linux in every other respect).

So really, I don't get it why so many people deem Linus Torvalds a religious leader when really most of what's good in Linux nowadays was written by other people.

That said -- back on track with the language war rolleyes.gif -- there are lots of rubbish C++ programmers. OK. Who cares. There are a lot of rubbish <insert language> programmers. One might reply that the entire suite of autoconf-based programs is a single monolithic proof-of-concept of rubbish C programmers.

For example, trying to build GMP [size=1](which ironically has a C++ binding too) yesterday gave me an error because [font=courier new,courier,monospace]configure [/font]failed to determine the size of [font=courier new,courier,monospace]mp_limb_t[/font] (which is a typedef for [font=courier new,courier,monospace]int[/font]). Now tell me why any sane person would want to run an extra "platform configuration" program for that kind of thing (which is the sole reason for the failure!) when the language readily supplies a [font=courier new,courier,monospace]sizeof [/font]operator.

Anyway, whether or not one likes what some particular person has written in some particular language, this hardly gives a leverage to judge on the language itself. If you're honest, you have to admit that most "rubbish C++ programmers" are in fact C programmers (and likely not even good C programmers).

This topic is closed to new replies.

Advertisement