Slashdot Mirror


Linus Torvalds Will Answer Your Questions

Linus Torvalds was (and still is) the primary force behind the development of the Linux kernel, and since you are reading Slashdot, you already knew that. Mr. Torvalds has agreed to answer any questions you may have about the direction of software, his thoughts on politics, winning the Millenial Technology Prize, or anything else. Ask as many questions as you'd like, but please keep them to one per post. We'll send the best to Linus, and post his answers when we get them back. Remember to keep an eye out for the rest of our upcoming special interviews this month.

460 comments

  1. The Absolute Death of Software Copyright? by eldavojohn · · Score: 3, Interesting

    Recently you spoke out about software patents and the patent process. But I was interested in what you said about how "nasty" copyright issues could get. You use SCO as the obvious nightmare case but what about violations against open source licenses like the GPLv3? Would you care if someone forked the Linux kernel and made major modifications to it and started selling it without releasing the code to the customers? What does your ideal situation look like for open source and commercial closed source? Would you just copy the Finnish model and aren't you afraid American experts are just as daft as American juries?

    --
    My work here is dung.
    1. Re:The Absolute Death of Software Copyright? by Anonymous Coward · · Score: 0, Insightful

      I would hope he is wise enough to understand that without exclusivity over distribution of the forked kernel, there is little to no advantage in violating GPL. We can take the fork and do the same, and distribute it as we see fit. Without copyright, there is no 'closed'. It's all open. Everything would become public domain, which is the best of all possibilities.

    2. Re:The Absolute Death of Software Copyright? by Anonymous Coward · · Score: 4, Funny

      Linus: What's your tool of choice for giving eldavojohn the severe beatdown he deserves?

    3. Re:The Absolute Death of Software Copyright? by hairyfeet · · Score: 5, Interesting

      That sounds like a question more for Perens than for Torvalds.

      My question for Torvalds would be thus: Now that all mainstream OSes other than yours, BSD, Solaris, OSX, Windows, have a stable ABI to help make sure that drivers continue to work why do you think your way is better than all those other OSes? How can the kernel devs do QA and QC for tens of thousands of drivers when there are so few of you, so many drivers, and such a hectic release schedule? Why is an ABI such a bad thing when it seems to work for everybody else? If it is because you hope to use lack of an ABI to force drivers to be open what do you say to the fact that the most stable graphics driver in Linux is Nvidia, who is closed?

      If you are gonna ask the man questions don't play pattycake and throw softballs, give him the hard ones. While I'm sure to be modded down for asking the hard questions and I doubt anybody would have had the guts to ask him I for one would have liked to have seen if he had a truly legitimate answer or if it would have boiled down to dogma or "If things are stable then i can't tweak all I want" instead of having a legitimate programming reason why he thinks his design is better than everyone else on the planet.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    4. Re:The Absolute Death of Software Copyright? by kumanopuusan · · Score: 0

      all mainstream OSes other than yours, BSD, Solaris, OSX, Windows

      What other mainstream OSes are there besides Linux, BSD, Solaris, OS X and Windows?

      --
      Use of the words "good", "bad" or "evil" is almost invariably the result of oversimplification.
    5. Re:The Absolute Death of Software Copyright? by nschubach · · Score: 3, Funny

      Haiku, ReactOS ... you know, mainstream.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    6. Re:The Absolute Death of Software Copyright? by Anonymous Coward · · Score: 0

      nForce drivers are really not good and the 3 times i tried to install it i had very awful problems, the most annoying issue is with the USB ports turning on/off every 1 minute, the video driver was more stable except for the sudden window resolution change, i had to uninstall the graphic and chipset driver and install a generic one. And i found almost no support. ATI has some issues alike too.
      Intel is the only one i have no problems and is the one i always recommend.

    7. Re:The Absolute Death of Software Copyright? by hairyfeet · · Score: 1

      Uhhh...I'm confused as to your complaint about that sentence. I said all other mainstream OSes, then I listed them...and? Would you have preferred I said "such as" instead? I can't think of any other OSes that have any userbase of any noticeable size on the desktop, so what more did you wish me to add?

      ReactOS isn't anywhere near ready for daily use, Haiku is about keeping a dead OS alive...what others did you wish me to name? ChromeOS is a thin client, Android is for phones and tablets, what else is there you wanted me to name?

      --
      ACs don't waste your time replying, your posts are never seen by me.
    8. Re:The Absolute Death of Software Copyright? by Anonymous Coward · · Score: 0

      Thanks for giving everyone on the Linux Haters' Blog a good laugh, hairyfeet. We always enjoy your material.

      My expectation is Torvalds will ignore the question and bang on about the kernel's stable userland ABI, just like he ignored Miguel De Icaza when he mentioned the Linux kernel's lack of stable driver ABI (in his blog post about the problems with desktop Linux, and again in the subsequent discussion on Google+).

    9. Re:The Absolute Death of Software Copyright? by Anonymous Coward · · Score: 0

      Linux has flabby moobs which I suspect is the reason why he is always so angry when answering questions about Linux.

    10. Re:The Absolute Death of Software Copyright? by bcmm · · Score: 1

      If it is because you hope to use lack of an ABI to force drivers to be open what do you say to the fact that the most stable graphics driver in Linux is Nvidia, who is closed?

      Having used it and also used the open Radeon driver, the answer is that it simply isn't. It may be the best-performing Linux graphics driver, but it is far from the most stable.

      --
      # cat /dev/mem | strings | grep -i llama
      Damn, my RAM is full of llamas.
    11. Re:The Absolute Death of Software Copyright? by zixxt · · Score: 1

      If it is because you hope to use lack of an ABI to force drivers to be open what do you say to the fact that the most stable graphics driver in Linux is Nvidia, who is closed?

      Any proof that of that at all? Sounds like wishful thinking, just read the bug reports lists. The Nvidia driver is about as stable as as a sand castle in a hurricane.

      --
      ---- GENERATION 26: The first time you see this, copy it into your sig on any forum and add 1 to the generation.
    12. Re:The Absolute Death of Software Copyright? by lister+king+of+smeg · · Score: 0

      You could of added Plan9 QNX Darwin (not the closed Apple variant) and Minuet but I agree along with you that they and Haiku and ReactOS are to minor to mention in the desktop space along with BSD Windows Solaris and OSX, but I do take issue ChromeOS, it as a full Linux that merely has a browser as its primary gui although later versions have added more traditional desktop features.
      I think I can answer why he has chosen not to include a static abi. Apple Windows and Solaris are all closed proprietary OS's with relatively few versions supporting very few architectures, here a proprietary driver is the norm, and seeings as it will only need to be supported by on average 2 maybe three architectures at the most on probably two OS releases a time so a stable abi makes since. Now lets look at Linux, Linux supports most every 32 and 64 bit processor available. It has countless distributions each running a slightly different kernel and software for it is expected to just work on most of them. This cannot work with a proprietary binary blob system where a driver or program is complied for only x86, x64, (for OSX and Windows) and spark (for Solaris). So to insure that Linux programs work across kernel versions, distro, and possessor lines the source code is needed so that it can be recompiled and work with relatively little tweaking. If they were to have a static abi software vendors would compile for once and be done and everyone else would be screwed and be stuck with an old kernel on one processor on one distro until the vendor felt like recompiling.
      Whether or not it has succeeded, help or hindered Linux adoption is debatable but i think that is the reasoning. As for the BSD having it which I left out above they have a major focus on stability and hardware comparability not as high as any of the other big 5 OS's, if they did not have it they could lose much more hardware support then they are willing to trade off for the rapid change. that said what they do support they do a very good job of supporting.

      --
      ---Saying gnome 3 is better than windows 8 not so much a compliment as it is damning with light praise.
    13. Re:The Absolute Death of Software Copyright? by Anonymous Coward · · Score: 0

      Linux has a far better track record for continuing to support old hardware than those systems. About a billion printers for Windows and the NE2000 for Solaris spring to mind.

    14. Re:The Absolute Death of Software Copyright? by Raenex · · Score: 1

      While I'm sure to be modded down for asking the hard questions

      Nope, you included the magic charm to get upmodded instead. Good job playing the game.

    15. Re:The Absolute Death of Software Copyright? by Anonymous Coward · · Score: 0

      I can talk from experience that the NVIDIA driver is the least stable driver on my system (FTFY). Oh, and about the windows one, why is it that my sisters printer stopped working with the new system when it worked with the old one? You mentioned something about 'they always make sure their drivers continue to work' and that's (clearly) a big fat whopping lie. You also forgot that (eg: for windows), drivers for products are written by the company that makes the hardware (usually windows drivers only). Microsoft doesn't know or care whether they work, they only care that the companies writing the drivers to give them cash for the privilege.

    16. Re:The Absolute Death of Software Copyright? by TranquilVoid · · Score: 2

      I suspect your parent is going for a joke as your grammar was unclear. Compare
      * all mainstream OSes (other than yours, BSD, Solaris, OSX [and] Windows)
      * all mainstream OSes other than yours (i.e. BSD, Solaris, OSX [and] Windows)

    17. Re:The Absolute Death of Software Copyright? by Anonymous Coward · · Score: 0

      What makes you think nVidia is the most stable graphics driver? The last I saw, it was one of the top causes of crashes of not just Linux but also Windows.

    18. Re:The Absolute Death of Software Copyright? by Anonymous Coward · · Score: 0

      +1

    19. Re:The Absolute Death of Software Copyright? by BobPaul · · Score: 1

      While I'm sure to be modded down for asking the hard questions and I doubt anybody would have had the guts to ask him

      What the hell is this shit? Your comment reads like you asked why he murdered your wife. You're not publically interogating Salvatore Riina, you're asking Linus about ABIs. That's not a question that takes "guts" to ask. Cut the dramatic bullshit.

    20. Re:The Absolute Death of Software Copyright? by Anonymous Coward · · Score: 0

      I assume you haven't heard of Symbian, various IBM OSs, Cisco IOS, and so on?

    21. Re:The Absolute Death of Software Copyright? by Anonymous Coward · · Score: 0

      pfft, all of my x86 machines run MinuetOS.

  2. Your 2007 Comments on C++ by eldavojohn · · Score: 5, Interesting

    In 2007 you made some rather polarizing remarks about C++. Coincidentally, Slashdot absolutely loves language wars and I seem to only find evidence that you use C based on the lack of malice and contempt I can find you publicizing on it. Do you find anything terrible about C? Conversely, do you have anything nice to say bout C++, Java, Ruby, Perl, JavaScript, Lisp, Prolog, Microsoft's languages or any other language you feel particularly vehement about at the moment?

    --
    My work here is dung.
    1. Re:Your 2007 Comments on C++ by i_ate_god · · Score: 5, Funny

      what about PHP?

      --
      I'm god, but it's a bit of a drag really...
    2. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 1

      that would be like giving AIDS to a cancer sufferer,,,

    3. Re:Your 2007 Comments on C++ by serviscope_minor · · Score: 2, Insightful

      In 2007 you made some rather polarizing remarks about C++.

      If by polarising, you mean astonishingly ignorant and chock-full of logival fallacies, then sure, polarising.

      See http://warp.povusers.org/OpenLetters/ResponseToTorvalds.html for an excellent picking apart of some very silly remarks by Torvalds.

      don't get me wrong: I loce Linux, the kernel is excellent and Torvalds is a great engineer and a much better C programmer than me. However, his knowledge of C++ seems to centre around 25 year old information, FUD, bigotry and some very odd opinions about C programmers.

      --
      SJW n. One who posts facts.
    4. Re:Your 2007 Comments on C++ by Kjella · · Score: 3, Insightful

      You want Linus to do a book project?

      --
      Live today, because you never know what tomorrow brings
    5. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 2, Insightful

      He was absolutely, 100% right on this. The number of people who write "good" C++ (if you can get people to agree on what that means, which you can't) is very, very small. The number of unqualified people writing bad C++ is huge and vastly outnumbers the good code out there, and I can tell you that it's frustrating to work with the code bases that these people produce.

      This is probably true of every language, and there is also a lot of bad C out there. But writing your code in C with a sane set of styles and conventions is a good shibboleth to keep those people out. (Like the troll in the thread you linked to.) As a simpler language C is also easier to audit and spot bad practices in.

      With C++ it is far too easy for bad programmers to build crappy, memory-inefficient abstractions that have no place in a project like a kernel. In practice this is what most people do. I suppose there's nothing wrong with that per se - even if they don't pass my snobbery test such a programmer can still come up with workable solutions that people are happy to use. But I'd be happier if those folks were more honest with themselves and just used Java or C# exclusively, because they are using none of what C++ can do well.

    6. Re:Your 2007 Comments on C++ by iggymanz · · Score: 1

      are *any* operating systems (the kind that run on real bare metal) written using C++ or similar language? just saying there might be good reason most are written in assembly, C, Forth, Pascal, etc.

    7. Re:Your 2007 Comments on C++ by Tough+Love · · Score: 0

      The number of people who write "good" C++ (if you can get people to agree on what that means, which you can't) is very, very small.

      So is the number of people who write "good" C. And you hit rock bottom when you try to write "good" C++ in C.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    8. Re:Your 2007 Comments on C++ by betterunixthanunix · · Score: 3, Informative

      his knowledge of C++ seems to centre around 25 year old information

      Not really. C++11 is as bad as C++98; for every problem C++98 has that C++11 solves, C++11 introduces some other problem. C++ actually has more problems than C, which is where Torvalds is spot on (he is wrong, though, in saying that C is the only sane choice for anything).

      The problem with C++ is that the standard allows programmers to do things that cannot make sense at all. What is "undefined" in C is often "a total disaster, waiting to attack you like Jack the Ripper" in C++. Here, for example, is a C function with undefined behavior:

      int f(void){}

      See, it says it will return an int, but has no return statements; thus the behavior is undefined. Now, here is a C++ version that will crash your program if you are lucky, but which might actually not crash your program:

      std::string f(void){}

      See, this time, the compiler is going to try to copy and then destroy the object the function returns. The problem is that such an object is not created, and so whatever the compiler generates will be guaranteed to do something you do not want. This might crash immediately when you call the function; it might call a destructor for some unrelated object; it might even call a member function that is not a destructor, for some object of a totally different type, and you will have no idea why your data is being corrupted until you find that one line (this is made worse by the fact that most C++ programmers will start the debugging process by checking for dangling pointers when data is being corrupted for no apparent reason, yet the offending code has no pointers).

      Of course, everyone knows that you are supposed to use a compiler that either forbids this (but the standard doesn't) or turn on warnings so that your compiler will flag it (but it might not). This is the problem with learning C++: rather than learning how to use its features, you really need to learn how not to use its features, and also how to use your compiler's optional features (so much for portability). This is loosely connected to learning C, except that in C you can do OK even if you do not know the "oral tradition" about what should never be done.

      Note that this is as true in C++11 as it was in C++98, and C++11 even lets you do things that are even worse. Look at this:

      std::function f(void)
      {
      int i = 0;
      return [&](){return i++;};
      }

      This looks like what I wanted to do: create a lexical closure that increments a counter every time it is called. What this actually does is to screw up everything, because as we all know, you were supposed to use a smart pointer and capture by value. Once again, we see that the language allows you to do something that cannot make sense, and does not force you to do "what everyone knows you are supposed to do."

      So, yes, Torvalds was right about C++. Now, C is probably the wrong choice for everything that is not the lowest level of kernel code, but at least the list of "bad things you should never do" in C is concise and mostly clear to someone who understands the abstractions presented by the language. In C++, that list is not concise, it is not obvious even to experts (example: never allow exceptions to propagate out of constructors, which is usually news even to people who know about exceptions and destructors).

      I would like to hear Torvalds' opinion on higher level languages and the model used by Emacs: a small core written in C that includes a compiler for a high level language, with the rest written in that high level language.

      --
      Palm trees and 8
    9. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 5, Interesting

      This site you link to is mostly gibberish. Linus is more concise and a much better writer.

      This author views it as a logical fallacy for Linus to say that C++ is terrible because terrible programmers use it. I think to call that a "logical fallacy" misses the point - the point that in practice, it's actually true.

      The idea that criticism of common practice in the C++ community comes from ignorance is also kind of amusing. I'm no stranger to C++ personally, there are things that are great about it. I dig that templates can generate good machine code while still allowing generics at the source code level (much better performance than doing generics with function pointers and void*, like libc's qsort for example). I think RAII is great and it's interesting that the technique replicates some of the practices I already do in my C code, but with less room for programmer error. That's all good. I'm a fan of some of what C++11 brings to the table, lambdas are nice, it's good to have the whole "move semantics" to fix those annoying issues with copy constructors getting called more than they ought to.

      At the same time in my career I haven't worked with any programmers who understand these points and what they mean. I mean, I know that the "good" C++ programmers are somewhere, I see them occasionally make intelligent points on forums or hear them give talks about C++11. But I never seem to work with these people. Instead what I get are either (1) people writing C++ with a Java accent, or (2) people writing C++ with a C accent. In both cases they tend to do this poorly. The results are pretty crap to work with.

      Yes there is bad C code out there, like there is bad code in every language. The mplayer example is fair. But I don't think that's as fundamental to the language as inefficient use of STL is. How many times have you seen a programmer introduce tons of heap allocations or copies without realizing it, due to un-careful use of STL? That's a problem that C has a lot less of. Sticking to a simple language to avoid those issues doesn't seem that unreasonable to me, especially in a development model where people contribute from all over, and being able to quickly audit for bad practices is important.

    10. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 1

      How very slashdot of you. You quote a line from the first paragraph and ignore that your point is conceded in the second paragraph. :-)

    11. Re:Your 2007 Comments on C++ by betterunixthanunix · · Score: 1

      are *any* operating systems (the kind that run on real bare metal) written using C++ or similar language? just saying there might be good reason most are written in assembly, C, Forth, Pascal, etc.

      I do not think any operating system is written in any single language, and that is a good thing. You see a lot of built-in utilities written in Python in RHEL/Fedora/(clones), you see lots of C# applications in Windows, etc. On the other hand, kernels are typically written in C, and I would say that is mainly because:

      1. Kernels are one of the few places where programmers are concerned with where variables are stored in memory.
      2. Kernel programmers need to do unsafe things as a matter of course.
      3. Kernel programmers do not usually have a strong need for high level features.

      Now, I think we still put a lot into the kernel that can and should be implemented at a higher level, but that is beside the point...

      --
      Palm trees and 8
    12. Re:Your 2007 Comments on C++ by next_ghost · · Score: 0

      Torvalds was spot on in those comments and the response is completely clueless about what Torvalds was talking about. Anything you can do in C++ you can also do in C but it takes a little bit of extra effort. That little extra effort is just enough to get rid of clueless programmers because when they try to do something complicated, it'll keep blowing up in their face until they give up. In C++ on the other hand, the language (and STL and Boost) will take away some of the complexity thus allowing the clueless programmers to get away with much worse and more broken designs that seem to work at first but will eventually blow up with a much bigger bang.

      In other words, using plain C is a test of how much complexity you can hold in your head at a time. If you need extra syntactic sugar to make something work, you're not fit to hack the Linux kernel. If you don't, those few extra lines of code to implement the same object pattern in plain C won't kill you.

      If you want examples of complete and utter crap that can be written in C++, I suggest you try to read and make sense of the sources of UShock and FreeOrion. These are the worst cases of C++ OOP abuse I've seen so far but I'm sure someone else could provide links to something even worse.

    13. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 4, Insightful

      This is remarkably stupid. Your argument about return values is literally the same thing in C. Your program is just as prone to crash if you return garbage instead of a char pointer. You just hid that by using an int instead, which could also crash if you use the int somewhere where its validity is important. C or C++, you should just use -Wall -Wfatal-errors.

      For the record, Linus was obviously performing his usual exaggeration routine to get his point across, just like "NVIDIA... Fuck you" and several other remarks that make him notorious.

    14. Re:Your 2007 Comments on C++ by UnknownSoldier · · Score: 3, Informative

      That letter *completely* misses the point Linus was making.

      * C _forces_ a programmer to _always_ be thinking about efficiency.

      * C++ _allows_ programmers to be _sloppy_ and not even bother to _think_ about efficiency.

      When you have idiots calling a virtual function inside an inner loop because they don't know how a virtual function is _implemented_ that is PRECISELY the type of programmer Linus says is a crap programmer because they have never learnt the 0th rule of programming: TINSTAAFL

      There Is No Such Things As A Free Lunch

      Yes, C can be tedious, but it encourages a certain mindset. The GREAT programmer is always thinking about the high level theory AND the low level implementation. That is a more _balanced_ programmer then one who doesn't understand how to write atoi() and itoa() (aka printf) which is the typical C++ programmer.

      The STL is a great example of the "rebuttal" completely ignorant of real-world needs.

      The API _design_ of the STL is great because it is orthogonal and consistent. However STL is total crap when you need to :

      - debug a container
      - serialize and unserialize it in a FAST and PORTABLE manner

      Part of the problem is that C++ compilers are crap and put out verbose messages because they can't output a simple, short type alias.
      When you have tools like "An STL Error Message Decryptor for C++" you know your language _design_ AND _implementation_ is FUCKED. Sadly the C++ community doesn't have the balls to be honest and admit their ego is out of control. "OK, We screwed up in certain areas of the language. How could we simply the grammar and language for people _using_ the language AND people _implementing_ the language?"
      http://www.bdsoft.com/tools/stlfilt.html

      _That_ is why Linus says STL is crap. Programmers start using C++ features without thinking about the _consequences_. A hard-core C programmer will go "OK, this looks like a great design -- where are the areas where it excels in, and where are the areas where it sucks in?" In C you are locked into someone else's bad design.

      To prove my point: WHY do you think EA (Electronic Arts) invented their OWN version of STL for game programming? Because the standard C++ STL has several KEY DESIGN FLAWS. Ignoring them doesn't make it go away!
      http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html

      C++11 _finally_ got Move Semantics. Gee, we've only had to deal with _that_ problem for the past 20 years. Typical over-engineer design-by-committee C++ ignoring real-world (performance) problems.

      In closing, there are 2 points I'd like to make:

      The *best* programmer is one who balances the simplicity of C with the features of C++; on that I agree that Linus is incorrect. Sadly you can't disable all the crap in C++. Linus' only _pragmatic_ solution was to ban the language outright. His project, his call.

      and

      The author(s) of the rebuttal need to put up or shut up -- when they have shipped their own kernel THEN they will have earned the right to disagree with Linus.

      Hope this provides a little more insight into why C and C++ both suck. ;-/

    15. Re:Your 2007 Comments on C++ by betterunixthanunix · · Score: 3, Insightful

      Your program is just as prone to crash if you return garbage instead of a char pointer

      Unless you discard the return value. For example:

      char * f(void){
      if(some_condition) return "Some string";
      }

      /* ... */
      if(some_condition) printf("%s\n", f());
      else f();

      Sure, this is horrible code, but it won't crash. The equivalent C++ code will crash whenever some_condition is false, because it still expects to have an object to destroy.

      you should just use -Wall -Wfatal-errors.

      1. If everyone should use that, then those should be in the standard.
      2. That is "folklore" -- it is not standardized, it is just something every C++ programmer is "supposed to know."
      --
      Palm trees and 8
    16. Re:Your 2007 Comments on C++ by betterunixthanunix · · Score: 2

      C _forces_ a programmer to _always_ be thinking about efficiency.

      The problem is that being efficient in C is hard -- and doing it in a portable way is even harder. An example that comes to mind is CL-PPCRE, an implementation of a PCRE library for Common Lisp, which actually outperforms libpcre and Perl itself. The reason for that is that CL-PPCRE uses high level features of Lisp that are not available to C programmers, in particular, the ability of a Lisp program to invoke its own compiler (what it does is to write a Lisp program that matches the RE, then it compiles that program; a good Lisp compiler will optimize this far better than any C PCRE implementation could, because the C implementation is stuck creating tables or complex pointer structures).

      My hypothesis is this: the more high-level information you can give your compiler, the better it can optimize your programs. The problem in C is that you cannot specify high level concepts in a way that is useful to your compiler, and so your compiler has to do the best it can. Good compilers for higher level languages can do better, because the programmer can tell the compiler more about their intent; much as I criticize C++ exceptions, they are a good example of this, as the programmer is telling the compiler that a particular line of code is signaling an error or should handle some error (as opposed to have a long string of if statements, which will slow down code that is not generating errors).

      The GREAT programmer is always thinking about the high level theory AND the low level implementation

      No, a great programmer will put program logic above all else, and good languages facilitate this, which is where C++ fails. Good languages also allow programmers to specify program logic in a way that can be optimized by the compiler, which is where C fails. That is why I agree with your final statement:

      C and C++ both suck.

      Spot on.

      --
      Palm trees and 8
    17. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 0

      I don't think your or the author of that article understands what "logical fallacies" means. It does not apply to a statement simply because you disagree with it.

    18. Re:Your 2007 Comments on C++ by next_ghost · · Score: 2

      Your argument about return values is literally the same thing in C. Your program is just as prone to crash if you return garbage instead of a char pointer.

      C doesn't add implicit function calls to simple returns from a function like C++ does. When your C code crashes, it crashes in code you have called directly.

    19. Re:Your 2007 Comments on C++ by UnknownSoldier · · Score: 1

      > In C you are locked into someone else's bad design.

      Correction to typo: In C++ you are locked into someone else's bad design; the language libraries. You don't know what design trade-offs they made, or why.

      i.e.
      It almost appears that Dinkumware _intentionally_ obfuscates their version of the STL.

    20. Re:Your 2007 Comments on C++ by next_ghost · · Score: 1

      example: never allow exceptions to propagate out of constructors, which is usually news even to people who know about exceptions and destructors.

      What do you mean? IIRC when a constructor is terminated by exception, the object is left in undefined state, the destructor won't be called and no memory is allocated in case the object was created using the new keyword. So if you clean up the object before the exception leaves the constructor and then don't access the object from outside, it's perfectly fine to propagate exceptions from constructors.

    21. Re:Your 2007 Comments on C++ by Lumpy · · Score: 2

      Yet he has credibility and you have none. Post under your account and do it in a way that is far less Dousche-baggy.

      --
      Do not look at laser with remaining good eye.
    22. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 0

      Aha! This looks like a job for Captain Logical fallacies Man !

    23. Re:Your 2007 Comments on C++ by Kjella · · Score: 1

      * C _forces_ a programmer to _always_ be thinking about efficiency.

      * C++ _allows_ programmers to be _sloppy_ and not even bother to _think_ about efficiency.

      When you have idiots calling a virtual function inside an inner loop because they don't know how a virtual function is _implemented_ that is PRECISELY the type of programmer Linus says is a crap programmer because they have never learnt the 0th rule of programming: TINSTAAFL

      There Is No Such Things As A Free Lunch

      And if absolute performance was the only metric the Linux kernel should be written in hand-optimized assembler. I've worked on database tables that have hundreds of millions of rows - then you'd better be real smart about how you query and join them. But I've also written a ton of queries for a bunch of tables that don't have more than 100 rows and never will, then I don't care if it does it smart. I don't care if the tables are properly indexed. It's a report nobody cares if finishes in two seconds or five because they run it once a month, they just care that it's correct. They just care that it's understandable so someone else could modify the code.

      A language that _always_ forces you to think about efficiency will often force you to focus on the wrong thing. I'll gladly admit that I in general don't write the most optimal code. For example I don't try to skimp one byte here and two bytes there on whether a int16 instead of an int(32) will do, for one it's not worth the time for the second the cost if this dies in production because somebody, somewhere managed to hit that limit it's not worth it. I often pass around larger structures than strictly necessary because it's easier to expand a structure of things that naturally belong together than to change function definitions all over the place because I figured I need value X over in function Y. I don't always care if I pass by value or const ref for a microscopic performance difference.

      Of course the kernel *does* have a lot of performance critical code. But I care more that I plug in a device and it works than if it uses 3% more CPU than it should. Maybe it's a project that can justify an "efficient code or not at all" policy but it's in the 1% of open source projects that can. Most of the rest are still on steps 1 or 2 of "make it work, make it work well, make it work fast". Seriously, this computer doesn't have any kind of breathing problems unless it's doing heavy rendering or video encoding or something, I could accept it being a bit slow if everything else was top notch.

      --
      Live today, because you never know what tomorrow brings
    24. Re:Your 2007 Comments on C++ by doshell · · Score: 1

      My hypothesis is this: the more high-level information you can give your compiler, the better it can optimize your programs.

      It is worthwhile to point out that GCC actually adds some non-standard facilities to the C language that enable the programmer to do so; witness, for instance, the use of the likely() and unlikely() macros (the actual GCC builtins have different names) in the Linux kernel to nudge the compiler into optimizing for the common case of an if statement.

      --
      Score: i, Imaginary
    25. Re:Your 2007 Comments on C++ by DaVince21 · · Score: 1

      logival fallacies

      I loce Linux

      Completely unrelated to your point, but... Switching the c and v, was that intentional?

      --
      I am not devoid of humor.
    26. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 0

      * C _forces_ a programmer to _always_ be thinking about efficiency.

      There Is No Such Things As A Free Lunch

      In this case this means a C programmer has to needlessly think about efficiency even in the 99% of places it is totally irrelevant, whereas the STL provides a usually efficient and much easier to use alternative.
      And there's exactly as many bad C coders as there are for C++, who will then cop out of doing those hard things efficiently by using static buffers and crap like that, whereas they could just use the STL with efficient underlying algorithms.

    27. Re:Your 2007 Comments on C++ by Tough+Love · · Score: 1

      writing your code in C with a sane set of styles and conventions is a good shibboleth to keep those people out

      By your argument, writing in Assembler with a sane set of styles and conventions would be an even better shibboleth to keep those people out.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    28. Re:Your 2007 Comments on C++ by Tough+Love · · Score: 1

      How very slashdot of you. You quote a line from the first paragraph and ignore that your point is conceded in the second paragraph. :-)

      There was no such point conceded. In fact, the statement was "and there is also a lot of bad C out there". If my point was being conceded the statement should have been "and the vast majority of C out there is bad". But as is readily apparent, the GP just meant to perpetrate the fallacy that working with substandard tools somehow makes the code base better. Which Linus has claimed in words not much different from that.

      It seems clear that some "Linus can do no wrong" fans have gotten into this thread, including one with mod points. Look, I have the greatest respect for Linus's talents and contributions. But sometimes he is just wildly wrong about certain things, and this is one of those. The detailed reasons why Linus is wrong about C++ have been stated many times, so why should I re-argue them? Well, because the FUD is flying so thick here, I will summarize: it is no great trick to configure g++ to generate byte-for-byte identical object code, given the same source code. In addition, C++ allows some optimizations that are beyond the capability of gcc to obtain from C source written in "C++ in C" style. Member function invocation for example. And there are important code organization facilities available in C++ that are missing from C. Extensible classes for one. There are exactly zero unavoidable cases where C++ introduces additional overhead, such as the often-cited "hidden allocations" in constructors. Such allocations are hidden only from the eyes of the programmer who is insuficiently skilled to be working on the kernel. My own experience is, the only C feature I really miss in C++ is designated initializers, a nice way to improve readability and maintainability in C programs. Other C-only features like flex arrays get only minor grumbles from me. (In all honesty, most C programmers probably don't even know what they are.)

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    29. Re:Your 2007 Comments on C++ by hairyfeet · · Score: 1

      So making things more obtuse, fiddly, and generally a PITA is a GOOD thing?

      Ya know, I could make a crack about how "Well that explains Linux in a nutshell" but I won't because the simple fact that you treat programming as a "club" where things should be as hard as possible to "weed out the undesirables" I think explains why Linux has gone nowhere on the desktop better than I ever could, and its toxic attitudes just like yours.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    30. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 0

      More than a book project.

    31. Re:Your 2007 Comments on C++ by epyT-R · · Score: 1

      Surely someone with your UID would not stoop to attacking with fallacies? The argument stands or falls on its own merit. It doesn't matter who makes it or whether they identify themselves.

    32. Re:Your 2007 Comments on C++ by next_ghost · · Score: 1

      So making things more obtuse, fiddly, and generally a PITA is a GOOD thing?

      Ya know, I could make a crack about how "Well that explains Linux in a nutshell" but I won't because the simple fact that you treat programming as a "club" where things should be as hard as possible to "weed out the undesirables" I think explains why Linux has gone nowhere on the desktop better than I ever could, and its toxic attitudes just like yours.

      Again, you're not getting the point. I didn't say "things should be as hard as possible" and neither did Linus. OS kernel is the kind of code which has to be written by people who know exactly what they're doing. In this case, too hard is bad, bud too easy is even worse. When you hide complexity, you also remove any incentive to learn how to design things properly.

      You have to realize that abstraction can be used in two ways: either to reduce complexity of the problem, or to pile tons of additional complexity on it. It takes lots of experience to be able to tell the difference. The most reliable sign that you can tell the difference is that you stop thinking that switching from C to C++ would improve the code in any meaningful way. And I say that as someone who mostly writes C++ code.

    33. Re:Your 2007 Comments on C++ by Xanny · · Score: 1

      Linus is like Bill Nye or John Carmack. I can listen to what they have to say forever. I absolutely want him to do a ranting podcast or blog rants or something (Linus like Steve Yegge!)

    34. Re:Your 2007 Comments on C++ by Xanny · · Score: 1

      I agree that the best programmer balances, but you just can't use templates in C, or smart pointers, or inheritance, and C doesn't have a standard supporting modern concepts like threading or regexes. It is always a tradeoff, but the fact that one of the best programmers wants to use C, where doing math on an aribtrary numeric value requires either 10 or 12 depending on platform functions or type coercion that creates unexpected behavior is bad because it is painful.

      Also you seem to be setting your expectations too high for a C++ programmer. Every Java, C#, Python, etc -basically, every other language, is already doing virtual function calls in their loops. They create garbage objects all the time. Just because C++ focuses on performance doesn't mean that because performance is hard the average C++ developer is a retard while other language devs are geniuses. I bet 90% of Java developers don't even understand how virtual functions work because it is always on in their language of choice.

      If I was writing something low level myself, I would always use C++ because it provides me much more productivity, clarity in code (if I write it properly and don't hack everything together with compiler exploits) and access to paradigms C can't emulate cleanly (OO at the least, but C++ lambdas do functional ok, I'd argue that without pure function enforcement it is lacking, but that is tangential) . If I was working with a development team of competant peers, I would still love C++ because their code will make more sense if they write in the feature set of C++ that promotes clean design and development. But if I was walking into complete strangers? Using C++ is insane, because it has a bottomless pit around every corner to snare a project and has glyphic compiler and runtime errors because the language itself is so hackneyed.

    35. Re:Your 2007 Comments on C++ by epyT-R · · Score: 1

      This doesn't justify bloating we see in modern applications written with high level languages. There's no excuse why simple gui'd applications should take tens or 100s of megabytes of ram before loading any user data. The net result of this is that the last 15 years of hardware performance increase hasn't benefited the user, it has allowed the programmers to be sloppy. I'm not talking about a few wasted bytes here and there.. I'm talking about many cycles wasted on useless churning because the programmer thinks his shiny high level java-of-the-day virtualized/sandboxed environment produces better code on the sole assumption it prevents him from making more mistakes. The 0th rule is right. There is no free lunch. There's no compensating for lack of skill. Programmers like this pass off the dirty work/bugs to their users' machines, costing them time, money, and aggravation. No one is saying to write everything in assembler, but writing efficient code in languages that can output efficient machine language IS important, especially if it's the middle of interdependent stacks.

    36. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 0

      C _forces_ a programmer to _always_ be thinking about efficiency.

      So then why is gcc, written in C, slower at compiling than clang, written in c++?

    37. Re:Your 2007 Comments on C++ by Raenex · · Score: 1

      Linus was obviously performing his usual exaggeration routine to get his point across

      "exaggeration routine" is too kind. Linus has admitted to being a bastard, and even a bit mystified as to why people think he's the opposite.

    38. Re:Your 2007 Comments on C++ by Raenex · · Score: 1

      But I don't think that's as fundamental to the language as inefficient use of STL is. How many times have you seen a programmer introduce tons of heap allocations or copies without realizing it, due to un-careful use of STL? That's a problem that C has a lot less of.

      How many times have you seen a C programmer forget to free or double free or free and use a heap allocation without realizing it?

      Sticking to a simple language to avoid those issues doesn't seem that unreasonable to me, especially in a development model where people contribute from all over, and being able to quickly audit for bad practices is important.

      In some cases C is too simple by giving very little help to the programmer, as with memory allocation and modules. In other cases it is too complex in some of its inconsistent or ill-defined rules, such as its declaration syntax or ambiguities in the order of evaluation, or the dangers of mixing signed and unsigned arithmetic.

      That C is "simple" is a myth. Compared to C++ it is, but that's not saying much.

    39. Re:Your 2007 Comments on C++ by UnknownSoldier · · Score: 1

      If what you say is true, that is indeed an interesting question.

      I haven't looked at the code for clag, but taking a wild guess -- it could be using better algorithms.

      i.e.
      A bubblesort in C is almost never going to be faster then a quicksort in C++.

      Compilers due heavy symbol lookup -- it the clang is using a better hashing function that could account for one possibility. You really would need to compare the design of the algorithms before one could fully answer that question.

      Have you also compared bulk / unity builds in gcc and clang? That at least would completely remove I/O bottlenecks and force a purely CPU bound test.

    40. Re:Your 2007 Comments on C++ by Imagix · · Score: 1

      What is "undefined" in C is often "a total disaster, waiting to attack you like Jack the Ripper" in C++.

      You mean in C++ it is far more likely to notice the undefined behaviour? This is a _good_ thing. _Please_ blow up every time Undefined Behaviour is invoked. Undefined behaviour is bad. Just because your program didn't explode, doesn't mean your program works. Better to die than to silently screw up the program.

      [lambda example snipped]

      And you do the same thing in C by returning a pointer to a local variable from a function. This is all standard variable lifetime management issues. (And as I recall, the default for lambdas is to take its parameters by value, so you explicitly chose to capture by reference to create the lifetime issue)

    41. Re:Your 2007 Comments on C++ by TranquilVoid · · Score: 1

      Precisely. OO arose because the increasing size of programming projects necessitated more focus on top-level design than low-level efficiency. C probably is the correct choice for the Linux kernel but the reasons don't make C++ programmers worse, it's a different tool for a different job.

      In fact the opposite argument can apply. I work with a large backend of reasonably well-designed C code which, when it requires maintenance, is so littered with details that the top-level design is actually difficult to determine.

    42. Re:Your 2007 Comments on C++ by serviscope_minor · · Score: 1

      Sure, this is horrible code, but it won't crash. The equivalent C++ code will crash whenever some_condition is false, because it still expects to have an object to destroy.

      No, it won't because the equivalent C++ code is identical. What you have written is not equivalent C++ coe. You are making several mistakes:

      1. Assuming that because C++ looks a bit like C it is somehow equivalent. It is not.

      2. Assuming that the C code is nasty, but OK. It is not. it is undefined behaviour and may well crash or cause unexpected behaviour.

      The equavilent C code to the C++ code is:

      char * f(void)
      {
          if(some_condition)
              return "Some string";
      } ...
      do_something(f()); ...

      That will always crash.

      2. That is "folklore" -- it is not standardized, it is just something every C++ programmer is "supposed to know."

      Again, this is very, very subtle FUD against C++, but FUD nontheless. Firstly, it's something that any C OR C++ programmer should do. No disadvantage to C++ there. Secondly, there's the implicit assumption that you'll get C++ programmers who don't know this. I.e. that something will make incompetent C++ programmers infect your code. Your repository is not a free-for-all and incompetent C++ programmers will not ruin your code any more than bad C programmers will.

      --
      SJW n. One who posts facts.
    43. Re:Your 2007 Comments on C++ by serviscope_minor · · Score: 1

      When your C code crashes, it crashes in code you have called directly.

      this is spoken like a non-fluent C++ programmer who is still in the C way of doing things.

      Once you get fluent in C++, you know that all variables are destructed when they go out of scope. You expect that to happen. You know that structs are copied when returned.

      In fact, that's the whole point of C++, you know it does this because you bask in the delightfulness of not having to do the compiler's job and write every blasted copy function by hand.

      When your C code crashes, it crashes in code you have called directly.

      Spoken like someone who's never smashed the stack and had a program crash in a random place.

      --
      SJW n. One who posts facts.
    44. Re:Your 2007 Comments on C++ by serviscope_minor · · Score: 1

      Torvalds was spot on in those comments and the response is completely clueless about what Torvalds was talking about.

      No, he's talking utter shit and is way wide of the mark.

      Anything you can do in C++ you can also do in C but it takes a little bit of extra effort.

      If by "a little bit" you mean "a lot", then yes. And, of course you can all do it in ASM anyway, or LLVM ASM if you want to be portable. Tha will weed out even more people.

      That little extra effort is just enough to get rid of clueless programmers because

      No, this is so far from being right that it's not even wrong. There have always been HEAPS and HEAPS of bad C programmres. Writing it in C won't weed them out. What weeds them out is not allowing their commits to your repository. This also works equally well for C++, Python, Java, Ruby, PHP, brainfuck, unlambda and befunge.

      when they try to do something complicated, it'll keep blowing up in their face until they give up.

      Or tthey go and do something like use an array (with linear time insertions) or linked list with linear time traversal, rather than an RB tree because it's a PITA to implement an RB tree. The C++ programmer will use a std::set and move on.

      In C++ on the other hand, the language (and STL and Boost) will take away some of the complexity thus allowing the clueless programmers to get away with much worse and more broken designs that seem to work at first but will eventually blow up with a much bigger bang.

      You have no evidence to support that whatsoever. There is heaps of bad C code out there and heaps of bad C programmers.

      Don't allow them to commit to your repository.

      You don't? Oh that must make C better than C++ because C++ somehow forces you to have bad programmers on board.

      In other words, using plain C is a test of how much complexity you can hold in your head at a time.

      Just what I like in my languages. Instead of getting shit done, I need an arbitrary test. Nice. Funy thing, by managing the complexity for me, C++ allows me to hold vastly larger and more interesting systems in my head in one go, meaning I can do much better, more interesting and more efficient stuff by not micro-managing the compiler.

      --
      SJW n. One who posts facts.
    45. Re:Your 2007 Comments on C++ by serviscope_minor · · Score: 1

      And I say that as someone who mostly writes C++ code.

      If you think that writing C++ code doesn't make your code more concise, more readable, less buggy and more efficient with a given effort, then I pity your employer.

      --
      SJW n. One who posts facts.
    46. Re:Your 2007 Comments on C++ by serviscope_minor · · Score: 1

      * C _forces_ a programmer to _always_ be thinking about efficiency.

      Bullshit. There is no excuse for such blind stupidity of that comment.

      C as often forces the opposite (e.g. using linear time algorithms) because writing the lower complexity ones is much, much harder. With the STL, efficient, generic structures are right there.

      * C++ _allows_ programmers to be _sloppy_ and not even bother to _think_ about efficiency.

      So does C. If not, why does GCC nor have the str* stdlib functions builtin, so it can perform optimizations such as removing redundant calls. Surely if C programmers always thought about efficiency, such optimizations would be unnecessary. The fact that they are now built into GCC proves thay you're talking crap.

      - debug a container

      Um really? So none of the major compiler vendors have STL container debugging options then? I guess I'll not use that debug mode now it suddenly vanished in a puff of non existence.

      - serialize and unserialize it in a FAST and PORTABLE manner

      Exactly the same as C. There are no fast, portable generic serialisation options n either language because of having naked pointers and no object model. So why bring this up in a C versus C++ thread, unless you're piling on the FUD?

      Part of the problem is that C++ compilers are crap and put out verbose messages because they can't output a simple, short type alias.

      You do not understand C++. Tmplates are programs. When the programs fail at their runtime (the compile time of the main program) you get a stack trace with a listing of the entire stack state in every frame.

      That's why they suck, not the reasons you think.

      Sadly the C++ community doesn't have the balls to be honest and admit their ego is out of control.

      You ingnorance and invective about the C++ community is telling. You should be ashamed of yourself. The C++ community and especially the standards body know that areas of C++ are crap. They also know that too many people use them (there are 10s of billions of lines of C++ code out there) and if they make a nice new language it will be nothing more than an academic curiosity. So they try very hard to make do with the ase they have wille providing paths for new code to avoid the bad bits.

      Oh and ALL the bad bits are inherited from C. So in a C vs C++ thread this is very much a point in defense of C++: it allows you to avoid most of the bad bits of C.

      _That_ is why Linus says STL is crap. Programmers start using C++ features without thinking about the _consequences_. A hard-core C programmer will go "OK, this looks like a great design -- where are the areas where it excels in, and where are the areas where it sucks in?" In C you are locked into someone else's bad design.

      Which is a pile of utter crap again. It's claiming that C is somehow better because an expert C programmer is better than a crap C++ one.

      Nothing forces you to give crap C++ programmers write access to your repository.

      C++11 _finally_ got Move Semantics. Gee, we've only had to deal with _that_ problem for the past 20 years. Typical over-engineer design-by-committee C++ ignoring real-world (performance) problems.

      Really don't understand this problem. In C++ before you could always do it the bad old C way (not really an improvement that C offers). Now you can return containers efficiently by swizling a pointer.

      What's inefficient about that?

      The *best* programmer is one who balances the simplicity of C with the features of C++;

      WTF does that even mean?

      It sounds like saying the best programmer is the one who uses C++ the best.

      No shit!!

      Linus' only _pragmatic_ solution was to ban the language outright.

      No, the _pragmatic_ solution as opposed to insane one would be to ban bad programmers from making commits. Rather than making it a free for all like his Linux git repo, where any monkey can commit bad C code. Oh? They can't?

      The author(s) of the rebuttal need to put up or shut up

      Rubbish. Anyone even remotely versed in rhetoric can see why his arguments have no merit.

      --
      SJW n. One who posts facts.
    47. Re:Your 2007 Comments on C++ by serviscope_minor · · Score: 1

      But writing your code in C with a sane set of styles and conventions is a good shibboleth to keep those people out.

      How about using write permissions on your repo? That's the shibboleth used to keep bad C programmers out of the kernel. Funny thing is that it works with C++ as well.

      --
      SJW n. One who posts facts.
    48. Re:Your 2007 Comments on C++ by betterunixthanunix · · Score: 1

      Unless your constructor was called during the initialization of a global object, in which case the exception cannot be caught anywhere. Although some people think this is a good thing, it is probably not what you actually want to have happen, because you might want to destroy other global objects before you exit.

      --
      Palm trees and 8
    49. Re:Your 2007 Comments on C++ by betterunixthanunix · · Score: 1

      You mean in C++ it is far more likely to notice the undefined behaviour?

      No, I mean it is more likely to be noticed long after it was written and committed, after numerous other changes have been committed, and will then require hours of debugging to figure out. Leaving out a return statement from a function that claims to return an object by value may not cause a crash, if the destructor is not virtual and has an empty body; then one day someone makes the destructor virtual and the program starts behaving wrong. The problem is that C++ inserts a lot of extra pointers and function calls, which is what turns undefined behavior into a landmine.

      And you do the same thing in C by returning a pointer to a local variable from a function.

      Except that a lexical closure is not dealing with a pointer, it is dealing with a reference, which comes with a different set of rules and restrictions. The solution is counter-intuitive (that the lambda should capture variables by value) and makes the code needlessly complex (as you must now use pointers where there was no real need). The solution is also unique to the case where the closure is returned from a function; if it is passed as an argument to a function call, you can capture by reference without a problem.

      And as I recall, the default for lambdas is to take its parameters by value, so you explicitly chose to capture by reference to create the lifetime issue

      I am pretty sure the default is "no capture," but even if what you are saying is true, capture by value is counterintuitive for a lexical closure. I do not want my own separate copy of the variable, I want the same one as the function call that the expression was returned from. The problem is that in C++, the lexical environment is destroyed when the function returns, rather than when the environment is no longer needed. Yes, this is a consequence of having no garbage collector; the solution is to have a garbage collector, and perhaps to give programmers a standardized way to enable/disable it if C++ programmers really do need to not have GC sometimes (although I suspect that such cases are comparatively few and far between, given that the overwhelming majority of C++ programs are high-level and given how popular smart pointers are).

      --
      Palm trees and 8
    50. Re:Your 2007 Comments on C++ by next_ghost · · Score: 1

      If you think that writing C++ code doesn't make your code more concise, more readable, less buggy and more efficient with a given effort, then I pity your employer.

      Concise is the only word I agree with. Readability and bugginess has nothing to do with the programming language. When your programming language supports at least structures and functions, it's all about your programming skill. If you make bugs in C because you can't think the design through, you'll make the same bugs in C++ as well. And for those few bugs that C++ actually takes care of for you, you'll make several more bugs by breaking the rules you must follow when you use things like exceptions and STL containers (for example accessing invalidated iterators).

      And efficient? Seriously? What efficiency metric are we even talking about?

    51. Re:Your 2007 Comments on C++ by next_ghost · · Score: 1

      If by "a little bit" you mean "a lot", then yes.

      No, I mean "a little bit". When your system is well designed, it doesn't take as much extra effort to implement it in C as you think. "Well designed" is the key requirement though. If it's not well designed, it'll take forever.

      And, of course you can all do it in ASM anyway, or LLVM ASM if you want to be portable. Tha will weed out even more people.

      But unlike C, it'll also prevent any useful work from getting done because ASM (including LLVM ASM) has very limited support for structures and functions.

      You have no evidence to support that whatsoever. There is heaps of bad C code out there and heaps of bad C programmers.

      The total amount of shitty code is not important. The size of each individual pile of shit is. And the simple fact is that piles of shit written in C tend to be much smaller than those written in C++. Bad C programmers usually don't make major contributions to big projects because they figure out very early on that the task is out of their league. C programmers are not better than C++ programmers, they just know their place better.

      Funy thing, by managing the complexity for me, C++ allows me to hold vastly larger and more interesting systems in my head in one go, meaning I can do much better, more interesting and more efficient stuff

      If your ability depends on the choice of language so much, then you still have a lot to learn.

    52. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 0

      Exceptions propagating out of constructors is a standard and appropriate way to signal that the object didn't construct properly. It's key to implementing RAII

    53. Re:Your 2007 Comments on C++ by next_ghost · · Score: 1

      Hmm, good point.

    54. Re:Your 2007 Comments on C++ by serviscope_minor · · Score: 1

      Readability and bugginess has nothing to do with the programming language.

      Trivially you must be wrong: try writing in brainfuck.

      That's obviously a carefully selected example, but there's a scale. Some languages are more readable than other. Selecting production languages, you almost certainly find C easier to read than Fortran 77.

      you make bugs in C because you can't think the design through, you'll make the same bugs in C++ as well.

      I also make bugs because I'm ont perfect and sometimes I forget to do things. If I can automate away common tasks, there are entire classes of bug that I won't make.

      C++ allows such automation. C does not.

      And for those few bugs that C++ actually takes care of for you, you'll make several more bugs by breaking the rules you must follow when you use things like exceptions and STL containers (for example accessing invalidated iterators).

      huh? Like what? I don't tend to have heaps of active iterators lying around to be invalidated. Also, exceptions are orthogonal to that problem, much like setjmp/longjmp are orthogonal to the problem of invalid pointers in C.

      And efficient?

      Yes.

      Seriously?

      Seriously.

      What efficiency metric are we even talking about?

      The usual one where the program runs faster. You can make C as fast (obviously), but it requires vastly more effort.

      --
      SJW n. One who posts facts.
    55. Re:Your 2007 Comments on C++ by next_ghost · · Score: 1

      Once you get fluent in C++, you know that all variables are destructed when they go out of scope.

      What about temporary variables that didn't get constructed in the first place?

      You expect that to happen.

      Yes, but the list of things you have to expect in C++ is a mile long. That's why bad C++ programmers cause so much more damage when their code blows up compared to bad C programmers.

      Spoken like someone who's never smashed the stack and had a program crash in a random place.

      That's actually right because I've stopped doing this kind of mistakes years ago. And I believe that Valgrind can detect and clearly report this kind of bugs, whereas Valgrind's report of falling out of function that is supposed to return an object by value will be really confusing.

    56. Re:Your 2007 Comments on C++ by betterunixthanunix · · Score: 1

      The equavilent C code to the C++ code is: char * f(void) { if(some_condition) return "Some string"; } ... do_something(f()); ... That will always crash.

      In fact, it will not always crash, and here is what happens when I run this version of "do_something" on my system:

      void do_something(const char * c)
      {
      if(some_condition) cout << c << endl;
      cout << "If I have not crashed, I should wind up here." << endl;
      }

      Which does not crash (at least when compiled with g++ 4.4.6) when some_condition is true or when some_condition is false. On the other hand, using string instead of const char * crashes whenever some_condition is false (which is lucky, because it need not crash). Try it yourself if you do not believe me.

      Firstly, it's something that any C OR C++ programmer should do

      Then it should be in the standard. If there is no good reason not to do it, then there is no reason for it to be excluded from the standard (for C, you might claim that the goal of portability necessitates a simple compiler; no such excuse can be made for C++, given how complex the language is to begin with).

      Secondly, there's the implicit assumption that you'll get C++ programmers who don't know this

      Or that you'll get C++ programmers who are more familiar with a different compiler, which has different flags (or maybe one that does not even have such options -- after all, if it is not required, you cannot expect it).

      --
      Palm trees and 8
    57. Re:Your 2007 Comments on C++ by serviscope_minor · · Score: 1

      When your system is well designed, it doesn't take as much extra effort to implement it in C as you think.

      Yes, it does. Quite a lot of the code I write is numerics code. A good library like Eigen strips away all of the syntactic overhead, and replaces it with code that looks like maths. Numerics code is hard ot get right and such an assistance is immensely helpful.

      Or try writing a little ad-hoc parser in C. Then try writing one in C++ using boost (Spirit).

      Or try implementing a k-D tree, with priority based searching (requiring a priority queue).

      All of those will be vastly shorter in C++ because C++ gives you the abstractions to create powerful libraries. They'll be less buggy because the amount of code you have to write is much shorter. Every line you _don't_ write is a bug that cannot happen.

      What about writing GUI code. Every C level GUI code I've messed with has been a right royal pain in the ass, full of boilerplate, pain and bugs. By comparison, FLTK, for instance is very, very easy. I've also heard great things about QT, though I've never used it.

      I've never heard anyone say great things about writing GUIs in C. Sure it can be done. I used to know enough M*tif to be dangerous, but it is not easy, end they all involve not only haveing to learn the GUI toolkit, but also the toolkit's ad-hoc implementation of features built into C++.

      You are also acting like I do not know C. I know it very well: I actually have an IOCCC winning entry to my name, and I know low level stuff well enough from hacking PIC assembler.

      But unlike C, it'll also prevent any useful work from getting done because ASM (including LLVM ASM) has very limited support for structures and functions.

      And unlike C++, C prevents a lot of useful work from getting done because C has very limited support for abstraction.

      And the simple fact is that piles of shit written in C tend to be much smaller than those written in C++.

      I don't believe that you have anything to back that up. Historically, vast amounts of crap was written in C.

      C programmers are not better than C++ programmers, they just know their place better

      You have no evidence for that whatsoever. You're also ignoring the point that your repository should not allow write access for all.

      If your ability depends on the choice of language so much, then you still have a lot to learn.

      You said earlier, and I quote:

      But unlike C, it'll also prevent any useful work from getting done because ASM (including LLVM ASM) has very limited support for...

      so you believe that *your* ability does depend on the choice of language. Specifically C being better than ASM.

      --
      SJW n. One who posts facts.
    58. Re:Your 2007 Comments on C++ by serviscope_minor · · Score: 1

      In fact, it will not always crash, and here is what happens when I run this version of "do_something" on my system:

      OK, we're getting really into pedantry. Replace do_something with always_do_something() which doesn't depend on global variables. Then you know what I mean.

      Which does not crash (at least when compiled with g++ 4.4.6) when some_condition is true or when some_condition is false. On the other hand, using string instead of const char * crashes whenever some_condition is false (which is lucky, because it need not crash). Try it yourself if you do not believe me.

      I believe you that it does not crash. That's besides the point: it's not fnuctionally equivalent to the C++ code.

      Then it should be in the standard.

      Perhaps, but the complaint levelled at C++ only has no bearing on a C vs C++ thread, since it's an equal complaint for both. It's the truth, but not the whole truth, and thereby deceptive.

      Or that you'll get C++ programmers who are more familiar with a different compiler, which has different flags (or maybe one that does not even have such options -- after all, if it is not required, you cannot expect it).

      You're lurching into massive hypotheticals here. Again, how on earth does that make C++ WORSE tham C?

      --
      SJW n. One who posts facts.
    59. Re:Your 2007 Comments on C++ by serviscope_minor · · Score: 1

      What about temporary variables that didn't get constructed in the first place?

      Er, how?

      You expect that to happen.

      No, not without a compiler bug. The constructor (if it exists) is called as soon as the variable is in scope.

      Yes, but the list of things you have to expect in C++ is a mile long.

      No. You expect variables to have their constructor called when the enter the scope and the destructor called when they leave it. You see operator+ and know that it's just a fancy function call syntax, etc etc.

      If you mean that if your base is C and you're trying to list the differences, then yes, C++ is not the same language as C, it is quite different. If you treat it as "identical to C but with a huge list of exceptions" then it will seem like C but with a huge list of exceptions. Treat is as a different language, and you will find it much easier.

      And I believe that Valgrind can detect and clearly report this kind of bugs

      No, it detects use of uninitialised memory, but agumenting every memory location.

      Valgrind's report of falling out of function that is supposed to return an object by value will be really confusing.

      The compiler detects it just fine.

      --
      SJW n. One who posts facts.
    60. Re:Your 2007 Comments on C++ by BenoitRen · · Score: 1

      That letter *completely* misses the point Linus was making.

      * C _forces_ a programmer to _always_ be thinking about efficiency.

      * C++ _allows_ programmers to be _sloppy_ and not even bother to _think_ about efficiency.

      If you had bothered to actually read the letter you'd have seen that the letter addressed those points.

      The *best* programmer is one who balances the simplicity of C with the features of C++; on that I agree that Linus is incorrect. Sadly you can't disable all the crap in C++. Linus' only _pragmatic_ solution was to ban the language outright. His project, his call.

      You can have project language rules that would disallow the use of certain C++ features.

      The author(s) of the rebuttal need to put up or shut up -- when they have shipped their own kernel THEN they will have earned the right to disagree with Linus.

      If the letter was about kernel programming you'd be right. But it isn't, so what you're saying is horseshit.

    61. Re:Your 2007 Comments on C++ by BenoitRen · · Score: 1

      This site you link to is mostly gibberish. Linus is more concise and a much better writer.

      Please, enlighten us instead of making broad statements which at first glance seem to be a knee jerk reaction. I've read both and it's obvious that Linus isn't a great writer at all. The letter does a good job of discussing what Linus was saying while trying to remain fair. Dismissing it as "mostly gibberish" won't do.

      This author views it as a logical fallacy for Linus to say that C++ is terrible because terrible programmers use it. I think to call that a "logical fallacy" misses the point - the point that in practice, it's actually true.

      Which in the end doesn't matter and says more about today's programmers than C++ as a language.

      Sticking to a simple language to avoid those issues doesn't seem that unreasonable to me, especially in a development model where people contribute from all over, and being able to quickly audit for bad practices is important.

      That seems incredibly short-sighted to me and introduces other problems that you and Linus seem to want to ignore, like maintainability.

    62. Re:Your 2007 Comments on C++ by BenoitRen · · Score: 1

      With C++ it is far too easy for bad programmers to build crappy, memory-inefficient abstractions that have no place in a project like a kernel.

      You mean like C++'s object-oriented programming? The Linux kernel has what's essentially a C version of it which I imagine is hard to maintain like all abstractions that need tons of code to make in C.

    63. Re:Your 2007 Comments on C++ by BenoitRen · · Score: 1

      Most kernels were written when C++ wasn't standardised yet and as a result C++ compilers were of poor quality and didn't agree on everything.

      Haiku's kernel is partly written in C++.

    64. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 0

      But I care more that I plug in a device and it works than if it uses 3% more CPU than it should.

      Amazingly Linux isn't only used by obtuse desktop users.

      I've worked on database tables that have hundreds of millions of rows

      If you're going to brag about your big data experience as it pertains to performance, make sure you actually talk about big data.

    65. Re:Your 2007 Comments on C++ by next_ghost · · Score: 1

      Readability and bugginess has nothing to do with the programming language.

      Trivially you must be wrong: try writing in brainfuck.

      That's obviously a carefully selected example, but there's a scale. Some languages are more readable than other. Selecting production languages, you almost certainly find C easier to read than Fortran 77.

      I was referring to the old saying that real programmers can write Fortran in any language. When your coding style is fucked up, changing a language won't magically fix it. Not even Python with its ridiculous indent-delimited code blocks. If your programming style is good, you can probably figure out a way to write readable code even in Whitespace. Also, I said the thing about language support for structures and functions for a reason.

      you make bugs in C because you can't think the design through, you'll make the same bugs in C++ as well.

      I also make bugs because I'm ont perfect and sometimes I forget to do things. If I can automate away common tasks, there are entire classes of bug that I won't make.

      C++ allows such automation. C does not.

      Correction: It does, you just don't know how. Writing primitive object and memory pool-based garbage collection that supports destructors takes what, 500 lines of reusable support code and 5 extra lines per pool to set it up and then clean up anything left in it? As a bonus, the garbage collector can tell you where exactly you allocated the stuff you forgot to clean up.

      And for those few bugs that C++ actually takes care of for you, you'll make several more bugs by breaking the rules you must follow when you use things like exceptions and STL containers (for example accessing invalidated iterators).

      huh? Like what? I don't tend to have heaps of active iterators lying around to be invalidated. Also, exceptions are orthogonal to that problem, much like setjmp/longjmp are orthogonal to the problem of invalid pointers in C.

      Invalidated iterators are just one of the many things you need to keep in mind. Exceptions are another. When you catch and handle an exception that was propagated through object method call (but originated deeper in the call tree), you may end up with the object in invalid state because you forgot to catch, handle and rethrow the exception in its method. Then there're also single-parameter constructors which may cause unwanted implicit casts unless declared explicit. The performance difference between "++x" and "x++". Not forgetting to declare some methods as virtual. Not forgetting to declare the destructor as virtual. Understanding the difference between constructing local object with automatic scope using parameterless constructor and declaring parameterless function that returns an object by value (Hint: the difference is one pair of parentheses). For every problem C++ solves for you, it adds at least two things for you to screw up if you don't pay enough attention.

      What efficiency metric are we even talking about?

      The usual one where the program runs faster. You can make C as fast (obviously), but it requires vastly more effort.

      It doesn't take that much extra effort because you can do the same damn thing as in C++. You can even write class and function templates using preprocessor macros.

    66. Re:Your 2007 Comments on C++ by betterunixthanunix · · Score: 1

      OK, we're getting really into pedantry. Replace do_something with always_do_something() which doesn't depend on global variables. Then you know what I mean.

      I knew what you meant to begin with, but my point is that the missing return statement is only a problem in C if the return value is not discarded; in other words, what the function is used for determines whether or not the missing statement causes a crash. On the other hand, in C++, the crash depends on that, and additionally on the type that the function returns -- because a destructor will be called implicitly if you return an object by value. This would appear to make the missing statement more obvious, but it could just as easily go undetected if the class has a non-virtual destructor with an empty body, which is not uncommon.

      Where this becomes a problem is when you do wind up with a crash, and you are trying to debug it. In the C version, you dereferenced an uninitialized pointer; in the C++ version, you could be trying to figure out any of the following:

      1. Why you were dereferencing an uninitialized pointer in a destructor, when the member is always properly initialized and maintained by every member function of the class.
      2. How you wound up calling some method of a totally unrelated class, with an uninitialized "this" pointer (if e.g. there was another object sitting in whatever region of memory your compiler puts return values, and you try to called a virtual destructor).
      3. Why you tried to call a function in an invalid region of memory.

      ...and so forth. By the time you figure out that you were missing a return statement, you just spent an hour trying to trace pointers. This is made worse by the fact that many (most?) C++ debuggers will say "the problem is on line X," and when you look at the source on line X, you see no pointers at all, and you may not even see anything having to do with the class whose member function was called (see #2 above). In C, when you look at the line that dereferenced the pointer, you get no surprises at all, and working your way from there to the missing return statement is straightforward.

      I believe you that it does not crash. That's besides the point: it's not fnuctionally equivalent to the C++ code.

      Only because the C++ compiler is going to insert a bunch of implicit function calls and pointer dereferencing there, which coupled with the poor definition of the language (there is never a case where not having the return statement makes sense, so why is it allowed?) leads to this problem. If I need to take the time to think about what my compiler is inserting for me, then I might as well not even bother with C++; I could just create some macros in my favorite IDE to insert all that for me. The point of using high level features is to avoid wasting time thinking about how those things are being implemented for you. C++ is not supposed to be "C with macros" in this day and age.

      Perhaps, but the complaint levelled at C++ only has no bearing on a C vs C++ thread, since it's an equal complaint for both. It's the truth, but not the whole truth, and thereby deceptive.

      On its own it is an equal complaint for both. When coupled with the things that C++ does which C does not, it becomes a problem that affects C++ more severely than C. Warnings in C can sometimes be ignored without it being a problem (e.g. warnings about things related to portability); ignoring warnings in C++ is almost always a problem.

      You're lurching into massive hypotheticals here

      Not really; people who are used to MSVC++ sometimes do not realize that g++ does not give full/pedantic warnings by default (this was somewhat related to the switch from using an IDE to not using an IDE, but then we get back to the same point about the standard). I hear that MSVC++ will actually treat missing return statements as errors, although som

      --
      Palm trees and 8
    67. Re:Your 2007 Comments on C++ by serviscope_minor · · Score: 1

      I was referring to the old saying that real programmers can write Fortran in any language.

      They certianly can, well in C or C++ at any rate.

      int i,j,k,l;

      at the beginning is a good clue :)

      When your coding style is fucked up, changing a language won't magically fix it. Not even Python with its ridiculous indent-delimited code blocks.

      I agree on both points.

      If your programming style is good, you can probably figure out a way to write readable code even in Whitespace.

      Now that I disagree with. I'm pretty sure it's impossible (whitespace is isomorphic to brainfuck IIRC). One has to take such programmatic circumlocquitions to fight the langage that the reaults are very opaque. Same with doing general computation in SED. It's possible: there's some amazing sed programs out there implementing dc, sokoban, and a whole load others. But they're very hard to follow even with extensive comments.

      Correction: It does, you just don't know how. Writing primitive object and memory pool-based garbage collection that supports destructors takes what, 500 lines of reusable support code and 5 extra lines per pool to set it up and then clean up anything left in it? As a bonus, the garbage collector can tell you where exactly you allocated the stuff you forgot to clean up.

      Sure, that applies to memory. In C++ it applies to files, locks and just about anything else as well. Also, the constructors allow for automatic initialisation of those resources too.

      Of course, you can make the pool actualy destruct non-trivial objects, but you're looking at quite a lot of work just to open and close a file (what's the scope of the pool? when do you flush it? How many file object lifetimes do you have etc), for example. The C++ version has much less boilerplate.

      The nice thing about C++ is that you get accurate memory management basically for free with the STL, and you can always change your allocator (you can get STL pool allocators) if you find that you have a performance bottleneck.

      When you catch and handle an exception that was propagated through object method call (but originated deeper in the call tree), you may end up with the object in invalid state because you forgot to catch, handle and rethrow the exception in its method.

      I'm can't think of an example where that's happened to me. With composable objects and RAII it doesn't usually happen. But anyway, the same applies to setjmp/longjmp which is considerably harder to get right since you have to be freed properly, especially if you're dealing with libraries where you don't control the internal allocator used.

      Then there're also single-parameter constructors which may cause unwanted implicit casts unless declared explicit.

      Like every feature mis-used it has severe downsides. Used correctly, it leads to much more concise code, examples being string from const char* and complex from double. It's not like C doesn't allow that for int to float conversion as well. C++ allows it to be more programmable.

      The performance difference between "++x" and "x++".

      This only applies these days if x is complex and, for instance, has some heap allocated data. For every iterator I've ever seen, this isn't the case, and the compiler makes them equal in performance. I guess it would apply to a bignum class. But it's no worse than for(int i=0; i Understanding the difference between constructing local object with automatic scope using parameterless constructor and declaring parameterless function that returns an object by value (Hint: the difference is one pair of parentheses).

      Ah, yes, the most vexing parse. Certainly a wart of C++ without a doubt. But it pretty much instantly leads to a compile error. Irritating, but not a silent pitfall by any means.

      For every problem C++ solves for you, it adds at least two things for you to screw up if you don't pay enough attention.

      No, in almost every case, it's less

      --
      SJW n. One who posts facts.
    68. Re:Your 2007 Comments on C++ by serviscope_minor · · Score: 1

      ...and so forth. By the time you figure out that you were missing a return statement, you just spent an hour trying to trace pointers.

      That wouldn't happen My compiler (gcc--it's not exactly rare) has warned about both of those cases for years.

      Anyway, to humour you, I tried it (and it didn't crash in C++ either!). So I forced it to, by writing a custom class:

      struct Mem
      {
              char* a;

              Mem() :a(1 + new char[2])
              {}

              ~Mem()
              {
                      delete[] (a-1);
              }
      };

      And gdb told me that the error was a double free in the destructor of Mem referenced at the calling point. Pretty unambiguous.

      there is never a case where not having the return statement makes sense, so why is it allowed?)

      Same reason it's allowed in C. Some functions never return.

      Anyway, I cannot remember the last time I had to debug a missing return statement. I prgram nearly all day, every day in C++ and this is just not a problem which crops up because the tools are good.

      Warnings in C can sometimes be ignored without it being a problem (e.g. warnings about things related to portability); ignoring warnings in C++ is almost always a problem.

      The non-portable things in C are generally best avoided. That's why there was significant pain going form 32 to 64 bits: people ignored warnings they should never have ignored. Also, compilers are free to change behaviour. And they have done.

      Not really; people who are used to MSVC++ sometimes do not realize that g++ does not give full/pedantic warnings by default (this was somewhat related to the switch from using an IDE to not using an IDE, but then we get back to the same point about the standard).

      What bearing has that got on anything? MSVC doesn't even support C99 properly at all! One has to expect to have a passing knowledge of ones tools if you're going to be having commits accepted into Linux or git.

      Also, how many people who don't know about gcc compiler flags are using it from the comandline, rather than from an IDE?

      --
      SJW n. One who posts facts.
    69. Re:Your 2007 Comments on C++ by next_ghost · · Score: 1

      Quite a lot of the code I write is numerics code. A good library like Eigen strips away all of the syntactic overhead, and replaces it with code that looks like maths. Numerics code is hard ot get right and such an assistance is immensely helpful.

      Yes, because writing "plus(a,b)" is so much harder than "a+b".

      Or try writing a little ad-hoc parser in C. Then try writing one in C++ using boost (Spirit).

      Been there, done that. I'll see your Boost and raise you Flex+Bison.

      Or try implementing a k-D tree, with priority based searching (requiring a priority queue).

      As simple as writing it in C++.

      All of those will be vastly shorter in C++ because C++ gives you the abstractions to create powerful libraries.

      Vastly? Oh come on. The C implementation of the same thing will have about 10% more lines + some fixed amount of reusable support code. That's it. And the internal design will be exactly the same.

      They'll be less buggy because the amount of code you have to write is much shorter. Every line you _don't_ write is a bug that cannot happen.

      You're forgetting the little problem that you can introduce bugs by NOT writing a line of code where one is required. It applies to C++ much more than to plain C.

      What about writing GUI code. Every C level GUI code I've messed with has been a right royal pain in the ass, full of boilerplate, pain and bugs. By comparison, FLTK, for instance is very, very easy. I've also heard great things about QT, though I've never used it.

      I've never heard anyone say great things about writing GUIs in C. Sure it can be done. I used to know enough M*tif to be dangerous, but it is not easy, end they all involve not only haveing to learn the GUI toolkit, but also the toolkit's ad-hoc implementation of features built into C++.

      And we're back to my original point. When some C++ features are useful, you can implement and use them in C as well.

      You are also acting like I do not know C.

      Correction: I'm acting like you can't think about the problem at hand outside the confines of the syntax of whatever language you're using at the moment. I don't care whether or not you know any C at all because it doesn't matter in this discussion.

      And unlike C++, C prevents a lot of useful work from getting done because C has very limited support for abstraction.

      Actually, C has enough support for abstraction that adding more doesn't improve code quality. It only makes your code shorter but the overall quality will remain the same.

      And the simple fact is that piles of shit written in C tend to be much smaller than those written in C++.

      I don't believe that you have anything to back that up. Historically, vast amounts of crap was written in C.

      C programmers are not better than C++ programmers, they just know their place better

      You have no evidence for that whatsoever.

      What kind of evidence would you like to see? The fact that you said yourself that C++ allows you to do more by hiding design complexity is good enough. If people know they can do more, they'll also take on bigger tasks and get further with them before they grow over their heads.

      You're also ignoring the point that your repository should not allow write access for all.

      I'm ignoring it because it's obvious. The difference between C and C++ in fairly big project is whether pull requests will put you in shit up to your knees, or up to your neck.

      If your ability depends on the choice of language so much, then you still have a lot to learn.

      You said earlier, and I quote:

      But unlike C, it'll also prevent any useful work from getting done because ASM (including LLVM ASM) has very limit

    70. Re:Your 2007 Comments on C++ by Pr0xY · · Score: 1

      I am a big fan of C++, but I must admit, you make an interesting point. But pretty much the first half of your post really boils down to you not liking "constructors and destructors". That is the discriminating factor here. Sure, if you somehow create an object that is initialized with garbage, when the desconstructor runs, literally anything should happen. It can in fact run arbitrary code in your application. So, yes, there is no arguing that that is a danger which must be avoided.

      Fortunately, it's been a VERY long time since I've seen any compiler not complain about a missing return, even with no extra warnings enabled. So that case should be visible to the most inept of programmers. And the other ways of accomplishing similar, honestly require more skill to pull off (I'm thinking of the case of allocating raw memory (not initialized), casting it to have the type of an object, and then doing something like trying to copy that junk object).

      However, like most ANY tool that can be misused, constructors/destructors are more useful that I can adequately describe in one post. smart resource management itself does tremendous things with regard to increasing code correctness, clarity and brevity. Done in a way, which is simply not possible without the concept of destructors. Being able to write code that I KNOW will always release a mutex, regardless of how it exits the function is a godsend. Knowing that I won't have file descriptors accidentally left open, knowing that I won't have dangling pointers if I simply use smart pointers... the list goes on.

      It was mentioned in a later post that "If every programmer should compile with certain flags, then they should be part of the standard". I would disagree, this removes flexibility from the compiler writes (remember, unlike things like C#, D, etc, the C and C++ committees write language specs, not compilers). I would love the see compilers default to "-ansi -pedantic", since it does nothing but improve code quality. But requiring diagnostics for certain *runtime* errors would introduce undo burden on the compiler writers. For example, the "no return" scenario is often not as obvious as you present, all possible code paths must be evaluated, which for most compilers means that a certain level of optimizations must be enabled to have that information. Additionally, sometimes, it can't be known. Sometimes the code path that has no return is impossible to reach because of constraints elsewhere. Sure we could target the easy ones, but you'd still be able to point at some case where it isn't caught.

      Like I said, you made a good point. C++ introduces new tools, which have new pitfalls, but you are not required to use them. And frankly, modern compilers with appropriate warnings enabled will catch pretty much all of the obvious ones.

    71. Re:Your 2007 Comments on C++ by next_ghost · · Score: 1

      What about temporary variables that didn't get constructed in the first place?

      Er, how?

      IIRC in C++98 when you return objects from function by value, a temporary object is created using a copy constructor on whatever you've passed as an argument to the return statement. Then the function's stack is unwinded. Then if the return value is used in the above scope, the temporary object is passed to whatever function uses it (copy constructor, assignment operator or a function that takes a reference to the object). Then the temporary object is destroyed just before control returns to the parent function.

      I'm also pretty sure that the behavior when you fall out of non-void function without returning anything is undefined so it's perfectly possible the compiler won't call constructor for the temporary object but it will call destructor later.

      Yes, but the list of things you have to expect in C++ is a mile long.

      No. You expect variables to have their constructor called when the enter the scope and the destructor called when they leave it. You see operator+ and know that it's just a fancy function call syntax, etc etc.

      Again: exceptions, virtual methods, some uses of templates, multiple inheritance... All of that imposes restrictions on what you can do in the code that you have to keep in your head all the time. If you don't, your code will blow up sometime in the future.

      And I believe that Valgrind can detect and clearly report this kind of bugs

      No, it detects use of uninitialised memory, but agumenting every memory location.

      IIRC Valgrind places some padding with special values between return address and local variables and then it checks that the special pattern is still there before return. If not, it'll complain.

      Valgrind's report of falling out of function that is supposed to return an object by value will be really confusing.

      The compiler detects it just fine.

      Only as a warning that you may not notice. Or ignore because you think it's a "can't happen" situation.

    72. Re:Your 2007 Comments on C++ by UnknownSoldier · · Score: 1

      And you have worked on which professional C++ compiler(s) again?

    73. Re:Your 2007 Comments on C++ by hazah · · Score: 1

      IIRC in C++98 when you return objects from function by value, a temporary object is created using a copy constructor on whatever you've passed as an argument to the return statement. Then the function's stack is unwinded. Then if the return value is used in the above scope, the temporary object is passed to whatever function uses it (copy constructor, assignment operator or a function that takes a reference to the object). Then the temporary object is destroyed just before control returns to the parent function.

      At no point can you have a destructor call that isn't paired up with a completed constructor call. Failing that, the compiler is simply non-standard and is out of the domain of what is actually called C++. C++ explicitly states that a destructor is called only for objects for which at least one constructor had completed execution successfully (exceptions in the constructor, for instance prevent that from being true).

      If an object is returned by value, then the return address is captured for the callee stack frame, the returned object is placed at that address and is NOT destroyed once the function's scope finishes, instead it's scoped to to be destroyed in the caller's stack frame. This can be done by copying an object from the current frame into the parent (initialze space in caller, construct a local in callee, copy local to caller, destroy local, caller destroys result), but is often optimized away to build the object directly in the calling function stack (callee constructs directly in caller's scope, caller destroys, skipping the temporary construct/destroy cycle entierly).

    74. Re:Your 2007 Comments on C++ by hazah · · Score: 1

      Smells like a design issue rather than a technical one. Global objects in C++ are their own general PITA. In short this isn't so much a construct/destruct as it is a general initialization sequencing problem.

    75. Re:Your 2007 Comments on C++ by next_ghost · · Score: 1

      If your programming style is good, you can probably figure out a way to write readable code even in Whitespace.

      Now that I disagree with. I'm pretty sure it's impossible (whitespace is isomorphic to brainfuck IIRC). One has to take such programmatic circumlocquitions to fight the langage that the reaults are very opaque. Same with doing general computation in SED. It's possible: there's some amazing sed programs out there implementing dc, sokoban, and a whole load others. But they're very hard to follow even with extensive comments.

      That one was a joke.

      Correction: It does, you just don't know how. Writing primitive object and memory pool-based garbage collection that supports destructors takes what, 500 lines of reusable support code and 5 extra lines per pool to set it up and then clean up anything left in it? As a bonus, the garbage collector can tell you where exactly you allocated the stuff you forgot to clean up.

      Sure, that applies to memory. In C++ it applies to files, locks and just about anything else as well. Also, the constructors allow for automatic initialisation of those resources too.

      All constructors (except copy constructor in some cases) are called directly. The most indirection you can get is calling it through some factory object and you can do that in C as well.

      Of course, you can make the pool actualy destruct non-trivial objects, but you're looking at quite a lot of work just to open and close a file (what's the scope of the pool? when do you flush it? How many file object lifetimes do you have etc), for example. The C++ version has much less boilerplate.

      That's completely under your control. The most simple pool implementation I can think of would have a grand total of 6 functions: one to initialize the whole thing at the very beginning, one to clean everything up on exit, one to create new pool and push it on stack, one to pop the top pool from stack and release everything in it, one to add new object with given structure prefix (including pointer to destructor function) to the pool on top of stack (this one will be called from constructors) and one to remove an object from its pool and clean it up.

      The nice thing about C++ is that you get accurate memory management basically for free with the STL, and you can always change your allocator (you can get STL pool allocators) if you find that you have a performance bottleneck.

      It's never for free. There's always some kind of trade off that you have to keep in mind.

      Like every feature mis-used it has severe downsides.

      That's why Linus and many others think that less is sometimes more. When you have powerful features, they should at least be very hard to misuse and get away with it.

      Taking your memory pool example. You need the 500 lines of support code and 5 per pool. compare that to just using a std::vector or std::string when you need it.

      So much nicer to read in C++ and so much less to go wrong.

      The implementation of std::vector or std::string is also 500 lines of support code.

      It doesn't take that much extra effort because you can do the same damn thing as in C++.

      Of course, and you can do the same things in assembler. It's easier in C ane easier still in C++.

      You can even write class and function templates using preprocessor macros.

      And you get a poorly specified, buggy and quite possibly slow implementation of half of C++98. Which won't catch most of the common errors. Or allow clean parameterisation without tons of syntactic overhead.

      We're not talking about implementing a formal programming language. We're talking about implementing a system that works. You don't need tons of syntactic sugar for that.

      So, I challenge you: find a C parser library as clean and easy

    76. Re:Your 2007 Comments on C++ by iggymanz · · Score: 1

      great answer, that there now IS an OS project using c++, didn't realize Haiku was

    77. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 0

      @ eldavojohn

      In 2007 [fartsmell.org] you made some rather polarizing remarks about fat people. Coincidentally, FartSmellers absolutely loves fat-people wars and I seem to only find evidence that you speak with skinny people based on the lack of malice and contempt I can find you publicizing on them. Do you find anything terrible about skinnies? Conversely, do you have anything nice to say bout fatties, tubbies, lard asses, elephantine ones, blubber-butts, chunky ones, fat f*cks, Microsoft's fat employees or any other obese slobs you feel particularly vehement about at the moment?

    78. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 0

      Your incrementing closure does exactly what's it's supposed to do... except you're being retarded and capturing "i" by reference (that's what [&] means). Returning a reference, or a pointer, to a local variable in C++ or C is just plain bad. This isn't a valid criticism of C++ lambdas, just a failure in your understanding of how they work.

      There are a number of possible fixes:

      • Make "i" static
      • Use a function object:

        struct f
        {
                int i_;
                f(int const i = 0): i_(i) {}
                int operator()() { return i_++; }
        };
    79. Re:Your 2007 Comments on C++ by serviscope_minor · · Score: 1

      The most simple pool implementation I can think of would have a grand total of 6 functions: one to initialize the whole thing at the very beginning, one to clean everything up on exit, one to create new pool and push it on stack, one to pop the top pool from stack and release everything in it, one to add new object with given structure prefix (including pointer to destructor function) to the pool on top of stack (this one will be called from constructors) and one to remove an object from its pool and clean it up.

      Well, you've essentially implemented scope based destruction, except now instead of having the stack managed by the hardware, it's managed in software and you also have to remember to register a destructor for every alloated object and must remember to pop the pool on return from every function. This is exactly what C++ does for you.

      You have now introduced exactly the same problems as in C++ more or less, except you're doing the job of compiling C++ code by hand.

      That's why Linus and many others think that less is sometimes more. When you have powerful features, they should at least be very hard to misuse and get away with it.

      C is very easy to misuse too. I don't see why he can't simply prevent bad C++ programmers from infecting his code just like he prevents bad C programmers from doing the same.

      The implementation of std::vector or std::string is also 500 lines of support code.

      No, it's much less support code than that. The support code for a resizable array is quite short. I just wrote one to test it. Using my reasonably generous spacing, you need about 45 lines for a generic array which allows resizing. The resize=allocate/copy/delete/deallocate part is by far the longest bit of code. For simpler classes (e.g. managing a fixed sized block), it's about 16 lines of very straightforward code.

      Most of the 500 lines of std::vector support (if it is 500 lines) code are things like iterators (forward and reverse), construction from iterators, reserve, capacity, querying, push, pop, etc. In other words, a small number of lines of resource handling and lots of lines of making a vector behave like a vector and not a dumb memory block.

      To do it with your pool allocator, you'd need 500 lines of pool, plus 500 lines of vector functionality code.

      We're not talking about implementing a formal programming language. We're talking about implementing a system that works. You don't need tons of syntactic sugar for that.

      Indeed, you can implement it in assembler. In the days of yore, people implemented quite large, functional systems in assembler. You don't need more expressive languages. It just makes implementing large systems much easier and makes them more maintainable.

      Flex+Bison.

      That's not a C parsre library. It's a code generator program. You write parsers in a language that is not C and it generates C. It's very nice, but not what i'm referring to.

      How about GSL?

      Not even close. GSL has some nice, solid implementations of algorithms, but I think you've never seen code using Eigen. Also, Eigen is vastly more efficient for large arrays of small, fixed sized vectors, since the size is statically stored.

      GSL provides high level algorithms, Eigen also provides excellent tools to allow you to implement your own.

      libucw

      Looks kinda like the STL, except that you have to randomly specify unnecessary type information and comparator functions etc everywhere. And it has funny syntax for things that's inconsistent with everything else like HASH_FOR_ALL, whereas for C++ you know that you can just do:

      for(auto i:container)
      {

      }

      etc.

      It's not bad, but there's a lot more syntactic boilerplating ans special casing and custom code structures to work around. Things just look so much cleaner when done in the compiler.

      --
      SJW n. One who posts facts.
    80. Re:Your 2007 Comments on C++ by lsatenstein · · Score: 1

      This site you link to is mostly gibberish. Linus is more concise and a much better writer.

      This author views it as a logical fallacy for Linus to say that C++ is terrible because terrible programmers use it. I think to call that a "logical fallacy" misses the point - the point that in practice, it's actually true.

      The idea that criticism of common practice in the C++ community comes from ignorance is also kind of amusing. I'm no stranger to C++ personally, there are things that are great about it. I dig that templates can generate good machine code while still allowing generics at the source code level (much better performance than doing generics with function pointers and void*, like libc's qsort for example). I think RAII is great and it's interesting that the technique replicates some of the practices I already do in my C code, but with less room for programmer error. That's all good. I'm a fan of some of what C++11 brings to the table, lambdas are nice, it's good to have the whole "move semantics" to fix those annoying issues with copy constructors getting called more than they ought to.

      At the same time in my career I haven't worked with any programmers who understand these points and what they mean. I mean, I know that the "good" C++ programmers are somewhere, I see them occasionally make intelligent points on forums or hear them give talks about C++11. But I never seem to work with these people. Instead what I get are either (1) people writing C++ with a Java accent, or (2) people writing C++ with a C accent. In both cases they tend to do this poorly. The results are pretty crap to work with.

      Yes there is bad C code out there, like there is bad code in every language. The mplayer example is fair. But I don't think that's as fundamental to the language as inefficient use of STL is. How many times have you seen a programmer introduce tons of heap allocations or copies without realizing it, due to un-careful use of STL? That's a problem that C has a lot less of. Sticking to a simple language to avoid those issues doesn't seem that unreasonable to me, especially in a development model where people contribute from all over, and being able to quickly audit for bad practices is important.

      ===================
      I have been programming C for 25 years. I can program in C++, but find that its use normally changes the design of a program from functional execution to event driven execution. C allows event driven too. But my own experience is that C++ is great for gui interfaces, but is not that great for normal business processing or even for driver code.

      --
      Leslie Satenstein Montreal Quebec Canada
    81. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 0

      No, I didn't mean the vtable idiom. (Though the "pimpl" idiom also gives you an even crappier memory layout than this.) I mean all the crappy amounts of indirections and allocations you get with uncareful use of STL.

    82. Re:Your 2007 Comments on C++ by Anonymous Coward · · Score: 0

      It was gibberish. It was an emotional and defensive, rather than factual, reaction to what Linus said. It was several screenfuls of tangential arguments without really understanding what the original was trying to say.

      maintainability.

      My own experience suggests that C++ code is less maintainable. But bad practices in any language will be hard to maintain.

  3. A Helsinki Finn in King Dubya's Court by eldavojohn · · Score: 5, Interesting

    Despite your accomplishments and some of your public comments about the dire state of American politics, you remain a resident of the United States of America. Clearly you have the clout to live where you please, why do you continue to reside in the United States? Assuming your answer is simply "work", if there was one thing you could change in the United States what would it be and are you doing anything to move toward that accomplishment (aside from procreating and trying to help us out that way)?

    --
    My work here is dung.
    1. Re:A Helsinki Finn in King Dubya's Court by Anonymous Coward · · Score: 0

      Having lived in Helsinki, I suspect the answer is "Weather" rather than work.

    2. Re:A Helsinki Finn in King Dubya's Court by Tough+Love · · Score: 1

      Linus is Swedish by blood, actually.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    3. Re:A Helsinki Finn in King Dubya's Court by Anonymous Coward · · Score: 0

      Wrong. There is a Swedish speaking population in Finland which Linus is/was a part of, but being it is in the country of Finland, it means Linus was born a Finnish national - Finnish.

      Any other outlook would consequently also lead you to the conclusion that the most of the U.S. population are in fact European.

    4. Re:A Helsinki Finn in King Dubya's Court by Anonymous Coward · · Score: 0

      (spits) Swedish dogs. Your blood is tainted by generations of race mixing with Laplanders. You're basically Finns.

    5. Re:A Helsinki Finn in King Dubya's Court by Anonymous Coward · · Score: 0

      Linus is Swedish by blood, actually.

      He's not of Swedish nationality, he's a Swedish Finn, of Finnish nationality and Finno-Swedish ethnicity (only some Swedish speaking families in Finland have an ancestry that goes back to main Sweden, some of them are originally Finns, or of other ethnicities (Low German, Russian and French ancestry is common among Finno-Swedes), that just adopted the language of the (old) ruling class). One of his more famous forefathers (Ole Torvald Elis Saxberg/Karenko) was active in the Swedish speaking community of Karleby inside Finland, perhaps that's where his family steams from, I don't know what part of Finland in which Torvalds was raised. Finland was a Swedish colony/protectorate until 1809.

    6. Re:A Helsinki Finn in King Dubya's Court by Anonymous Coward · · Score: 0

      Linus is Finnish but his family belongs to a Swedish speaking minority of Finland, actually.

    7. Re:A Helsinki Finn in King Dubya's Court by Anonymous Coward · · Score: 0

      No, Linus is absolutely not swedish. Linus is born in Helsinki Finland, his parents and grand-parents are also born in Finland.

      You might be confused by the fact that Linus's mother tongue is swedish, not finnish. That's because in Finland there is a minority of people (some 5%) that has swedish as their mother tongue an Linus happen to belong that that minority. These people are not necessarily of swedish ancestry.

    8. Re:A Helsinki Finn in King Dubya's Court by Anonymous Coward · · Score: 0

      He also shares surname with one of the heroes of the Vinland sagas which means America belongs to him and his viking friends.

    9. Re:A Helsinki Finn in King Dubya's Court by Anonymous Coward · · Score: 0

      Actually not. He is Finnish, but swedish is his native language, as he is a member of the Swedish-speaking minority in Finland. I do not think you could see a distinction between "Swedish" or "Finnish" bloodlines in Finland really. Not after a thousand years of interbreeding...

  4. When I'm designing a processor for Linux.... by Art+Popp · · Score: 5, Interesting

    I spend some time designing things in Verilog and trying to read other people's source code at opencores.org, and I recall you did some work at Transmeta. For some time I've had a list of instructions that could be added to processsors that would be drastically speed up common functions, and SSE 4.2 includes some of my favorites, the dqword string comparision instructions. So...

    What are your ideas for instrructions that you've always thought should be handled by the processor, but never seen implemented?

    1. Re:When I'm designing a processor for Linux.... by Anonymous Coward · · Score: 0

      Out of curiosity, can you give some examples of instructions that you've found which would drastically speed up common functions? I'm quite interested.

    2. Re:When I'm designing a processor for Linux.... by Anonymous Coward · · Score: 0

      Can you give some examples of instructions that you've thought of that would speed up common functions? I'm curious.

    3. Re:When I'm designing a processor for Linux.... by Anonymous Coward · · Score: 0

      Bah, ignore that. Slashdot wasn't showing the older post for whatever reason.

  5. Books, Books, Books by eldavojohn · · Score: 5, Interesting

    As a software developer, I have a coveted collection of books. A few of said tomes -- both fiction and non -- have fundamentally altered the course of my life. Assuming yours aren't just man pages and .txt files, what are they?

    --
    My work here is dung.
    1. Re:Books, Books, Books by Anonymous Coward · · Score: 0

      I bet at least book by Dawkins will be mentioned as an answer to this question. And of course the bible.

    2. Re:Books, Books, Books by WhitePanther5000 · · Score: 1

      Read "The God Delusion"
      ...and the Bible.

    3. Re:Books, Books, Books by WhitePanther5000 · · Score: 1

      And yes, I said this only to make AC's prophecy come true.

  6. The End by eldavojohn · · Score: 4, Interesting

    Describe the end of the Linux kernel. Symbolically and/or literally, your choice.

    --
    My work here is dung.
    1. Re:The End by ChipMonk · · Score: 2

      An ACPI command sequence which either sends a reset signal to the CPU or puts the hardware into ACPI G2/S5/D3 state.

    2. Re:The End by Narnie · · Score: 5, Interesting

      Speaking of ends, one day you'll pass on your duties. How do you envision the kernel and the Linux ecosystem after passing your reigns?

      --
      greed@All_Evils:~#
    3. Re:The End by Hatta · · Score: 1

      The butler did it.

      --
      Give me Classic Slashdot or give me death!
    4. Re:The End by Anonymous Coward · · Score: 1

      The butler did it.

      You are confusing Linus with the pope. Which is pretty weird.

    5. Re:The End by spasm · · Score: 1

      On a related note, is there a 'Linus gets hit by a bus' plan for ongoing management/development of the kernel in the event of a catastrophe? Hopefully a never-to-be-needed plan, but..

    6. Re:The End by Anonymous Coward · · Score: 0

      return 0;

  7. First impressions of Slashdot by Anonymous Coward · · Score: 0

    When did you first hear/learn about Slashdot, and what were your thoughts? As we commemorate 15 years, how has that changed?

  8. Skivvies by Anonymous Coward · · Score: 0

    Boxers of briefs?

  9. What do you mean "was"? by Dishwasha · · Score: 2

    Isn't Linus still the primary force behind the development of the Linux kernel or did I not get the memo?

    1. Re:What do you mean "was"? by sumdumass · · Score: 1

      Well, when he made comments about US politicians and the complaints rolled in about how it makes Linux appear in the eyes of the public and the future willingness of government to adopt OSS software, Linus was described like an insignificant "has been" that isn't a key player in Linux unlike the CEO of Chik-Fil-A who is actively involved with making your chicken sandwich at every store and donates money to others who do not like gays being married.

      Obviously, this is because Linux is such a diverse culture of communities and groups who are not forced to carry the same opinion about everything or everyone. But yes, the memo was sent, whether it was or is accurate or not is another story altogether.

    2. Re:What do you mean "was"? by Tough+Love · · Score: 1

      See "and still is", above.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    3. Re:What do you mean "was"? by Dishwasha · · Score: 1

      Heh, the editors must have edited the excerpt after seeing my post.

    4. Re:What do you mean "was"? by Anonymous Coward · · Score: 0

      The editors never read your post, cunt. Get over yourself. They're just here for the cash.

    5. Re:What do you mean "was"? by Anonymous Coward · · Score: 0

      Linus did an awesome job with the Linux kernel and showing us the ways of OSS software and how open source is the way to go. The CEO of Chik-Fil-A did an awesome job with the most successful debt-free fast food chain out there that even takes a day off every week. Both are awesome individuals.

  10. What do you think about Haskell? by Anonymous Coward · · Score: 0

    Subject says it: What do you think about Haskell?

    1. Re:What do you think about Haskell? by shentino · · Score: 1

      I prefer to call it Hassle.

    2. Re:What do you think about Haskell? by cerberusss · · Score: 1

      Har har please someone mod that up +1 funny

      --
      8 of 13 people found this answer helpful. Did you?
  11. Aging and low-level programming... by jasno · · Score: 5, Interesting

    Hi Linus! Thanks for everything!

    How has getting older and raising a family changed the way you look at kernel work and programming in general? Do you see yourself still being involved in the kernel in 20 years? Do you ever just want to take a break for a few years, or do you feel like your time working on the kernel is a rest from the real world?

    --

    http://www.masturbateforpeace.com/
    1. Re:Aging and low-level programming... by cerberusss · · Score: 1, Funny

      I'm also interested in the reverse. Has the capability of kernel threads started you thinking about a girlfriend on the side?

      --
      8 of 13 people found this answer helpful. Did you?
  12. Avoiding the Unix Wars by dkleinsc · · Score: 5, Interesting

    Why do you think Linux has been able to (mostly) avoid the fragmentation that plagued the competing Unixes of the 1980's? What would you say helps keep Linux a unified project rather than more forked system like BSD?

    --
    I am officially gone from /. Long live http://www.soylentnews.com/
    1. Re:Avoiding the Unix Wars by Anonymous Coward · · Score: 1

      Well, IANAL (I Am Not A Linus), but... I think this one is obvious.

      In terms of DISTROS, Linux is more fragmented than BSD.
      In terms of KERNELS Linux is less fragmented.

      I think, generally, the reason would be: Linux was built as a Kernel. You can add whatever you like for your userland, so there was no need to fork the kernel. Instead you pop on whatever userland setup you like, hence all the distros.
      BSD was build as an aggregate of both, and when someone wanted to change some focus of the system, involving huge changes either userland or kernel, then they had to fork it.

      It may also be that the leadership for the various BSDs are too inflexible, and therefore to get certain changes in place, forking is needed, whereas there is more flexibility in Linux.

    2. Re:Avoiding the Unix Wars by Anonymous Coward · · Score: 0

      The Linux kernel has forks. Android. Red Hat (they apply their own patches). And embedded devices using a kernel from 10 years ago.

    3. Re:Avoiding the Unix Wars by Laebshade · · Score: 1

      Except that the Android fork changes have been merged back into the linux kernel.

      https://www.google.com/search?q=android+linux+into+mainline

    4. Re:Avoiding the Unix Wars by dkleinsc · · Score: 1

      Distros are different, but we don't have the situation where stuff written on, say, Ubuntu, can't easily be repackaged for Red Hat.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    5. Re:Avoiding the Unix Wars by Anonymous Coward · · Score: 0

      Yeah, but look at the dependency tree when trying to bring DigiKam into Ubuntu or Fedora.

    6. Re:Avoiding the Unix Wars by Anonymous Coward · · Score: 0

      Why do you think Linux has been able to (mostly) avoid the fragmentation that plagued the competing Unixes of the 1980's? What would you say helps keep Linux a unified project rather than more forked system like BSD?

      Avoid the fragmentation?
      AHAHAHAHAHAHA!!! You must be new to Linux.

  13. general-purpose computing by Type44Q · · Score: 5, Interesting
    Linus, what are your thoughts re: the coming war on general-purpose computing?

    PS: Thank you for everything you've done, and continue to do (the world is actually full of heroes but the vast majority of them - at least in this day and age - have limited spheres of influence. You on the other hand...) ;)

  14. Linus at work by Anonymous Coward · · Score: 1

    How can you work at home without getting distracted? I tried and I failed. Any tips?

    1. Re:Linus at work by seepho · · Score: 1

      Uninstall Borderlands 2.

    2. Re:Linus at work by HaZardman27 · · Score: 1

      You have to enjoy what you do. I don't work at home, but once I leave work I generally have no problem focusing on a coding project for a couple hours in the evening. Sometimes there is temptation to do other things (like playing games), but a bit of discipline helps overcome those temptations.

      --
      Apparently wizard is not a legitimate career path, so I chose programmer instead.
  15. Is there a goal to unify Linux? by na1led · · Score: 1

    Considering how fragmented Linux is with so many different distributions, shouldn't you, or the community take a stand and pick a distribution that everyone can work together on? Everyone seems to have their own favorite flavor, but this makes developing software for Linux a problem.

    --
    -- By all means let's be open-minded, but not so open-minded that our brains drop out.
    1. Re:Is there a goal to unify Linux? by Anonymous Coward · · Score: 1

      Everyone seems to have their own favorite flavor, but this makes developing proprietary software for Linux a problem.

      FTFY.
      This is a feature, not a bug.

    2. Re:Is there a goal to unify Linux? by Bill,+Shooter+of+Bul · · Score: 1

      No, no it does not make it difficult at all to develop software for linux. And anointing asingle distro is impossibly stupid. How many different ways are there to use linux? Should they all be shoe-horned into one distro? The same distro for desktops, servers, phones, routers, tablets, toasters and wall warts? What difference would it even make if one distro were so anointed, given the freedom the Free software licenses grant? How different would Linux be today if he had made that decision in 1994? Do you really like slackware that much?

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    3. Re:Is there a goal to unify Linux? by Anonymous Coward · · Score: 0

      He probably refers to the desktop and over there the fragmentation is a real problem.

    4. Re:Is there a goal to unify Linux? by sumdumass · · Score: 1

      Or perhaps having a compliance layer added so people who want to write software for several distros can write to the compliance layer and the the distributions worry about making it work. I'm think something like what DirectX did for games interacting with video, sound and network drivers instead of have to configure a game itself to use the devices on windows. Perhaps this concept could be expanded to other aspects of the operating system and components so it is a write for one run for all scenario?.

    5. Re:Is there a goal to unify Linux? by dkleinsc · · Score: 1

      This kind of thing already exists:
      1. The Linux Standard Base (LSB) has the goal of creating a standard set of libraries that you can code against that will be available on almost any Linux box.
      2. SDL, which works on a wide varieties of Linux, as well as Windows and MacOS.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    6. Re:Is there a goal to unify Linux? by na1led · · Score: 1

      Well I've tried several different distros and each work different IMO. Some have issues with the current hardware I had, others have problems with software I try to use. I understand you need different variations for different platforms, like phones, servers, etc, but Microsoft has their variations too. They have their Mobile OS, Server OS, and Desktop OS, but its all supported by the same company. We need some sort of unification for Linux to be competitive with Windows, and Mac's. It looks like Ubuntu is trying to do this, but perhaps they need a bit more support to really make it happen.

      --
      -- By all means let's be open-minded, but not so open-minded that our brains drop out.
    7. Re:Is there a goal to unify Linux? by sumdumass · · Score: 1

      The SLD looks really interesting. Thanks.. I didn't know it existed.

      Perhaps I need to look at it and Linux again.

    8. Re:Is there a goal to unify Linux? by iggymanz · · Score: 1

      it is? 95% of people are doing to be using either Debian or Redhat based desktop, not much fragmentation there.

    9. Re:Is there a goal to unify Linux? by Anonymous Coward · · Score: 0

      No, having 15 FOSS options that all perform 90% of what their proprietary counterparts do is absolutely a problem. The worst part is it isn't even the same 90%, meaning they could have an incredible product if they weren't all concerned with having their product.

    10. Re:Is there a goal to unify Linux? by Anonymous Coward · · Score: 0

      So, then you have to pay the developers to only work on the remaining 10% part that is missing, not 100% proprietary part that you can't have the source withyout NDA'a and a legion of lawyers. The source is there, just recruit the developer to write the 10% part, and whole industry will know(and thank you) that you contributed at the solution.

    11. Re:Is there a goal to unify Linux? by mcgrew · · Score: 1

      We need some sort of unification for Linux to be competitive with Windows, and Mac's.

      Why do you need Linux to be competetitive? It isn't a game. I couldn't care less how popular Linux is, as long as people keep developing for it. It isn't like it's proprietary.

    12. Re:Is there a goal to unify Linux? by HaZardman27 · · Score: 1

      We need some sort of unification for Linux to be competitive with Windows, and Mac's

      I've seen this argument several times, but nobody has bothered to suggest why Linux needs to compete with proprietary OSs.

      --
      Apparently wizard is not a legitimate career path, so I chose programmer instead.
    13. Re:Is there a goal to unify Linux? by HaZardman27 · · Score: 1

      Pretty much anyone who has done any 2D graphics programming and tried to keep it portable has probably used SDL. Even libraries such as PyGame for Python are really just wrappers for SDL for the most part. It was created by Sam Latinga (Loki, Blizzard, and now Valve) and is a fantastic, but low level library.

      --
      Apparently wizard is not a legitimate career path, so I chose programmer instead.
  16. steam by Anonymous Coward · · Score: 3, Interesting

    How do you feel about steam coming to linux? one of my friends is actually the one working on porting it.

    1. Re:steam by Anonymous Coward · · Score: 0

      Cool story bro. Tell your friend we said hi.

  17. The obvious question: the binary blobs in linux by Anonymous Coward · · Score: 4, Insightful

    What is his stance on the subject today and why did he allow them in the first place? When will he kick them out?

    1. Re:The obvious question: the binary blobs in linux by Anonymous Coward · · Score: 1

      Specifically, NVidia.. How do we allow them to provide value-add to differentiate their products? Currently, systems fail to boot when the kernel gets ahead of the binary-blob from the vendor.

    2. Re:The obvious question: the binary blobs in linux by Type44Q · · Score: 1

      Mod parent up once more; I lack the points...

    3. Re:The obvious question: the binary blobs in linux by Type44Q · · Score: 1

      Oddly enough, I don't recall having gotten any modpoints since the site changed hands... anyone else experiencing this?

  18. Frustrations by Bogtha · · Score: 4, Interesting

    What frustrates you most in the GNU/Linux ecosystem?

    --
    Bogtha Bogtha Bogtha
    1. Re:Frustrations by Alter_3d · · Score: 3, Insightful

      What frustrates you most in the GNU/Linux ecosystem?

      I can answer that for him.

      People who insist on using the name GNU/Linux
      Naming controversy wars!!

    2. Re:Frustrations by Bogtha · · Score: 2

      He's the Linux kernel developer. If I'd have asked what frustrates him most about Linux, he would assume I was talking about the kernel. There's absolutely nothing wrong with using the term "GNU/Linux" to disambiguate.

      --
      Bogtha Bogtha Bogtha
    3. Re:Frustrations by Alter_3d · · Score: 1

      I was not attacking your question. I was poking a little fun a the whole Linux-GNU/Linux controversy, and remembered reading sometime ago on Wikipedia about Linus' opinion on the matter, where he said using the name GNU/Linux was "ridiculous".

      Cheers!

  19. Personality Conflicts by claytongulick · · Score: 1

    You are an inspiration to many in the geek world, and have pretty much reached the pinnacle of what any geek could aspire to. That being said, you are frequently accused of having an abrasive personality, and many of your public comments (euphemistically) "lack tact." Do you ever suffer negative repercussions from this? Have you ever considered trying a different approach, or reading Carnegie? (That last bit wasn't a snark, I was "laid off" from a job once for similar issues, I turned to Dale Carnegie, and it had a profoundly positive effect on my professional and personal life)

    --
    Drinking habits can be dangerous. You can choke on the cloth and the nuns will wonder where their clothes are.
  20. I grew idolizing you by junglee_iitk · · Score: 2

    Hi Linus,

    I have grown idolizing you and what you have done, probably as a side effect, in making accessible my passion to me. I am deeply interested in system level programming but I am confused about its current status. Linux is stable. Unix is unix. And windows might become less popular due to UI changes. Most people haven't even heard of Plan 9.

    Do you see any exciting new problems facing the academic area of computer systems? Any itch that Linux kernel is not good enough to scratch (due to pristine design decisions, for example)?

    I am not hinting towards Hurd, in case you thought so.

    1. Re:I grew idolizing you by Jorl17 · · Score: 1

      Deeply interested in this as well.

      --
      Have you heard about SoylentNews?
  21. Company Politics by Anonymous Coward · · Score: 1

    How has the rise on Android and embedded devices affected the development of the kernel? Have you noticed more support from bigger players or is the development still a lot of smaller players?

  22. Stallman ahoy by javipas · · Score: 4, Funny

    What would you ask to Richard Stallman if you had to interview him? :)

    1. Re:Stallman ahoy by Anonymous Coward · · Score: 0

      Would you please have your beard deloused before the meeting and refrain from eating your toe-cheese during the interview?

    2. Re:Stallman ahoy by Anonymous Coward · · Score: 0

      I've only ever heard Linus give generic lip-service regarding Stallman. I doubt very much that he gives two shits about him or his work. GPLing Linux was a matter of convenience, not principal. His work on Linux today is, practically speaking, custom software consulting work.

  23. What's your smartphone today? by Anonymous Coward · · Score: 1

    Just out of curiosity, what's your smartphone today (considering you have one), and why did you choose it?

  24. OS challenges for the next 20 years? by Anonymous Coward · · Score: 4, Interesting

    Hi, Linus. Thank you for your amazing work! I'm wondering what you think the big challenges will be in OS design for the next 20 years.

  25. Dear Linus by Anonymous Coward · · Score: 0

    Will you marry me?

    1. Re:Dear Linus by Anonymous Coward · · Score: 0

      How can he marry you if you're staying anonymous? You'd better leave an email or a phone number.
      So that Tove can come kick your ass :)

      (Posting AC because I modded already.)

  26. What would you have done differently? by Rob+Kaper · · Score: 4, Interesting

    It's been over twenty years since the inception of Linux. With 20/20 hindsight, what you have done differently if you had had today's knowledge and experience back in the early days?

    1. Re:What would you have done differently? by Anonymous Coward · · Score: 1

      Used BSD. No seriously, I am pretty sure I saw a comment like that around the place. The trouble is that at the time BSD was embroiled in some stupid copyright thing. In the end only three files were "problematic" enough to be removed from the system.

      See https://en.wikipedia.org/wiki/BSD#Net.2F2_and_legal_troubles and the references at the end of that section. One of which is http://gondwanaland.com/meta/history/interview.html

      (Tip for Firefox users, you can highlight and right click a plain text link and have the option to open it. Did you know that? You may also be able to middle click, I'm not sure yet.)

    2. Re:What would you have done differently? by TeknoHog · · Score: 1

      If you used Linux, you'd know how to make anchor tags!

      --
      Escher was the first MC and Giger invented the HR department.
    3. Re:What would you have done differently? by Duncan+J+Murray · · Score: 1

      He answered this question in an interview carried out by Linux Format (the current issue) - "I wouldn't change a thing".

      http://www.linuxformat.com/

    4. Re:What would you have done differently? by Anonymous Coward · · Score: 0

      Or maybe, just maybe, too lazy to put them in, and besides, Firefox has this nifty new (wasn't in 3.6 at least) feature that lets you highlight and right click...
      I've used Linux based systems since 2001 or so. More than ten years. I've also known HTML for more than ten years as well. And you know what? Fuck you, that's what.

  27. Hole in your driveway by LordGilman · · Score: 1

    How's the hole in your driveway? Did you fix it up?

  28. Any wisdom for students and early-career techies? by davidwr · · Score: 5, Interesting

    If you could give one piece of technical advice and one piece of non-technical advice to students seeking a technical career and/or early-career tech professionals, what would it be?

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  29. Drivers by Anonymous Coward · · Score: 1

    Do you still see a lot of problems with misbehaving drivers in the newer kernel versions? Are you seeing more support from hardware vendors?

  30. So, Microsoft Windows... by Anonymous Coward · · Score: 0

    Great operating system or the greatest operating system?

  31. Recordings for developers by Anonymous Coward · · Score: 1

    Would you consider doing recordings (e.g. on youtube) where you'd talk about a specific commit submitted on the mailing list? As a developer wanting to get into the kernel dev space, I would find it beneficial. It would give a feel about what aspects of the code a maintainer is looking at and how the whole thought process works.

  32. Saami? by Yoik · · Score: 0

    Is your cultural heritage Saami, and has that culture had any influence on your development efforts?

    1. Re:Saami? by jones_supa · · Score: 1

      The answer is quite definitely no, you can find Saami people pretty much only in the northern areas of Finland. They are sort of an "aboriginals" of Finland, a niche thing anyway. But you might find some Swedish cultural properties in Linus.

    2. Re:Saami? by Yoik · · Score: 1

      Actually, our territory runs from Norway to Russia, and despite discrimination that made my grandparents pass for Finns there are really quite a few of us.

      http://en.wikipedia.org/wiki/Sami_people

      Beware our drums!

  33. gnu laptop, desktop, graphic card and hardware by Faisal+Rehman · · Score: 0

    Why don't you invest your money and take initiative in GNU hardware for desktop, graphic card and hardware and break the monopoly in this area too. I don't want a reply of consulting RMS for that. I need a serious initiative reply.

  34. Linus First/Last by Anonymous Coward · · Score: 0

    If/Have you/ever get/had first/last post?
    What will/did you post?

    Sorry my scripting is bad.

  35. Favorite restaurant by Nkwe · · Score: 1, Interesting

    Assuming that you are still living here in the Beaverton, OR area (or I guess even if you are not), what is your favorite restaurant?

  36. OT: Everyone should be able to mod this by davidwr · · Score: 3, Interesting

    Every registered with halfway decent karma should get several free mod points for Q&A threads like this.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  37. What martial arts ("people" question) by Coeurderoy · · Score: 0

    What martial arts do you (and your wife) want your children to learn ?

  38. Cooles by needs2bfree · · Score: 5, Interesting

    What is the coolest thing that you have heard of people doing with Linux recently?

  39. Future influences on Linux? by techmuse · · Score: 1

    Hi, Linus. What do you think the big challenges in OS design will be over the upcoming years? Will Linux be influenced more heavily by mobile devices, servers, or something else? What do you foresee coming along that will have the greatest impact on Linux?

  40. Most exciting features by Anonymous Coward · · Score: 0

    I'm very enthusiastic about the recent advances in the opensource drivers movement, and new work to replace ancient low level services (IE Systemd, Wayland etc). Are there any particular features/programs/projects in the Linux ecosystem that you find especially exciting?

  41. Claim your Slashdot UID? by chalker · · Score: 1

    Linus:

    In light of the recent anniversary of Slashdot, are you willing to go ahead and claim the Slashdot UID that was reserved for you since day one? (I believe UID#2)

    1. Re:Claim your Slashdot UID? by oever · · Score: 1

      #2 is not Linus. I guess CmdrTaco prefers the author of Harry Potter over Linus.

      --
      DNA is the ultimate spaghetti code.
  42. micro like kernel by Faisal+Rehman · · Score: 0

    i don't know much about this but want just for my education that is it possible to shrink your kernel and make it smaller and smaller while keeping it monolithic.

  43. Monolithic vs. Micro-kernel architecture by NoNeeeed · · Score: 5, Interesting

    Has there ever been a time in the development of the Linux Kernel where you've wished you'd gone the Hurd-style micro-kernel route espoused by the like of Tannenbaum, or do you feel that from an architectural standpoint Linux has benefitted from having a monolithic design?

    Linux has been massively more successful than Hurd, but I wonder how much of that is down to intrinsic technical superiority of its approach, and how much to the lack of a central driving force supported by a community of committed developers? It always seemed like the Hurd model should have allowed more people to be involved, but that has never seemed to be the case.

    1. Re:Monolithic vs. Micro-kernel architecture by Raenex · · Score: 1
  44. Requirements and Design in Linux by Anonymous Coward · · Score: 3, Interesting

    You've said many times that not having a specific direction or goal for Linux has been a huge advantage and is the main reason it's flexible enough to run on everything from smart phones to super computers. Do you believe that this is a philosophy suited to all projects or is it unique to the kernel? How do the requirements and design phases with formal planning fit into the open source model?

  45. IP&IT&ROW ("serious question") by Coeurderoy · · Score: 1

    Intellectual Property issues plage the IT field in many different directions....
    at the risk of going out of your comfort zone, how relevant do you think "our" issues are to other fields ?
    - pharma, health care
    - business
    - industry (particularly 3D printing driven next gen industries ...)

  46. Never seem to see an actual reply to one of these. by Anonymous Coward · · Score: 0

    This isn't actually aimed at Linus. It's aimed at the concept itself. Lately there have been a few of these "Ask them anything" threads. There are plenty of questions. Plenty of comments to those questions by other users. Seldom an actual comment from the person being asked or should I say, if there is a response from the person being asked, it is so buried in the BS that it can't be found.

  47. Linus on Kickstarter by Anonymous Coward · · Score: 1

    Have you ever thought that if you go on Kickstarter to propose whatever project you want you would be able to get millions and millions of dollars in a few days?
    Why don't you ask 50 million of dollars to produce and sell computers with Linux pre-installed?

  48. Joker question by Coeurderoy · · Score: 4, Interesting

    What question was not asked or not transmitted to you and you'd really wish it was so that you can answer it ?

  49. Tell Us About Your Linux Rig (Setup) by Anonymous Coward · · Score: 1

    Hi,

    a) What distribution do you run on your main desktop/laptop?
    b) What software do you depend upon with this distribution?
    c) What kind of hardware do you run it on?
    d) Will you share a screenshot of your desktop?
    e) What is your ideal Linux setup?
    f) Finally, what kind of mobile devices (phone and tablet) do you use?

    Thanks!

    1. Re:Tell Us About Your Linux Rig (Setup) by walshy007 · · Score: 1

      a) fedora 17

      f) he has a nexus 7 and was very pleased with it. not sure about his phone.

      This information was gathered from his recent g+ posts.

    2. Re:Tell Us About Your Linux Rig (Setup) by armanox · · Score: 1

      Also, based on his G+ posts, he runs Apple hardware - he at least has a MacBook Air and a MacMini.

      --
      I'm starting to think GNU is the problem with "GNU/Linux" these days.
    3. Re:Tell Us About Your Linux Rig (Setup) by Anonymous Coward · · Score: 0

      Seconded this. The Macbook Air is really the best hardware out there, and the price point (for the 13") is on par with all of the slightly inferior competitors. Runs Linux (and Windows 7) great. People can hate on Apple all they want, but they make great hardware. (Macbook Air running Fedora 17 as its only OS)

  50. desktop by Faisal+Rehman · · Score: 0

    will you take initiative into desktop to make it successful in this area or still prefer the natural ecosystem?

  51. developer by Faisal+Rehman · · Score: 0

    how will you ensure the running and development of your kernel project after you and how you will increase the no of kernel developers.

  52. My little pony by Anonymous Coward · · Score: 1

    If I wanted to ask anything technical I'd go for the mailing list.

    What do you think of my little pony: Friendship is magic?

  53. A break from techie questions! by Antipater · · Score: 2, Interesting

    I feel it would be awesome to be married to a national-champion level karateka. What's the most badass thing you've ever seen your wife do?

    --
    Everything is better with chainsaws.
    1. Re:A break from techie questions! by Anonymous Coward · · Score: 0

      Probably something gay like give birth to his child...

  54. kernel hack noob by Faisal+Rehman · · Score: 0

    in your opinion how the kernel development get easy to learn for newbie.

  55. Visual Studio + C# by Anonymous Coward · · Score: 0

    What do you think of the productivity optimized development environment as Visual Studio and C#?

    1. Re:Visual Studio + C# by armanox · · Score: 1

      Seeing what he thinks of C++ and C++ devs, he'd probably rip C# apart. And then say that without C# (or VB) you don't need VS.

      --
      I'm starting to think GNU is the problem with "GNU/Linux" these days.
  56. Could Linus ever love UnixWare ? by freejack74 · · Score: 1

    In a post SCO vs IBM world, can you now find it in your heart to say something good about SCO ?

  57. Linux Plumbers Wishlist items by Anonymous Coward · · Score: 0

    For as long as mankind has roamed the Earth Linux on the desktop has been right around the corner, some of us would really like to finally uncover this cryptozoological animal.
    Would you consider e.g. pushing harder for someone to pick up items on the Linux Plumbers Wishlist, personally I am most interested in seeing the fsnotify items being handled as that will finally make applications such as Tracker viable.

    https://docs.google.com/document/pub?id=1RmJrtIoTnivkmR9KCqfJNBnEll4X9Jtu0xj5w6hFGs8

  58. What are your thoughts on NVidia? by Anonymous Coward · · Score: 0

    :D

  59. Crowd sourcing democracy by SinisterEVIL · · Score: 2

    What do you think of using "Git" and crowd sourcing for shaping politics on the global and local level?

  60. Should everyone program by theRunicBard · · Score: 1

    You mentioned at a talk that you gave in a university that you didn't think everyone should be a programmer. At the time, I agreed, however, I'm starting to notice that a lot of people with not technical knowledge still expect computers to work for them. When I hear this, I'm reminded of a time when Microsoft tried to write a program that programmed for the user (it didn't work out so well, since it was very limited). As technology starts to be present everywhere, do you think people will have to become savvy or not use it? An intro (CS101) course, even if the student never applies it, can still de-mystify a lot of the tech world.

  61. fuck fuck fuckity fuck fuck by Anonymous Coward · · Score: 0

    who else would you say 'FUCK YOU!' to?

  62. Politicization and Blind Spots by RomSteady · · Score: 1

    One of the biggest issues I see with the politicization of software licensing is that often advocates of software on a certain license will mentally gloss over major holes in the software/ecosystem, while at the same time gloss over major advantages of competing software/ecosystems.

    In your opinion, what are the biggest holes/"areas for opportunity to improve" in Linux at the moment?

    --
    RomSteady - I came, I saw, I tested. GamerTag: RomSteady / http://www.romsteady.net
  63. GIT by vlm · · Score: 5, Interesting

    If you had to do GIT over again, what, if anything, would you change?
    VERY closely related question, do you like the git-flow project and would you think about pulling that into mainline or not?

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    1. Re:GIT by Anonymous Coward · · Score: 0

      When will GIT get a more safe hash function? Will there ever be a user-friendly GIT?

    2. Re:GIT by vlm · · Score: 1

      When will GIT get a more safe hash function?

      Its not safe? What there's an unpatched buffer overflow in there?

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    3. Re:GIT by Webz · · Score: 1

      Why do you FEEL the need TO capitalize git?

  64. Android by Jacek+Poplawski · · Score: 5, Interesting

    What is your current opinion on Android? Do you consider Android as a "Linux", "Linux type" or "Linux child"? Are you connected somehow with Android development?

  65. Command Line Dependence by mpccornwall · · Score: 1

    Linus, My question is: Why hasn't the community placed a larger emphasis on removing the need to use the command line input in basic OS setup and day to day operations? The reason that Microsoft got so huge was because they streamlined operations for the masses. The reason that Apple got so big was because they streamlined operations for the masses. Usability is the key. If my grandfather can install Linux and have a functional OS in a reasonable amount of time without have to pour through forums for hours because his video card had a hang-up and he can't revert the drivers in an intuitive way then he will come back. If the latter happens, he's gone... forever. I'm likely going to get endlessly flamed by the community for this post but a command line interface is archaic. In a world of LabVIEW and angry birds, text on a black background just doesn't cut it anymore. I want to use the OS too and I cannot do anything more than dual boot Linux and Windows because I just don't have the time to dump 8+ hours into a simple issue that just won't exist Windows. I don't mind fixing things. I mind the time involved because I have an endless list of documentation or junk to dig through to find the correct commands and options instead of an intuitive interface.

    1. Re:Command Line Dependence by Anonymous Coward · · Score: 0

      Generally speaking, nearly all occasions where a user NEEDS to fiddle with the command line on the more user-friendly distros is where there is a hardware driver issue. Asking Linus to fix this is absurd, because Linus doesn't work for all of these hardware companies that have chosen not to provide Linux drivers for their hardware. Microsoft is not the reason your graphics card works nicely on windows; Nvidia, AMD, or Intel generally are the culprits here.

      There is a solution, of course, which is to buy Linux friendly hardware to run Linux on. You wouldn't try to install OS X onto hardware assembled and put together with the intention of running Windows and expect everything to just work, but people do this with Linux all the time and then throw hissy fits over it. That you CAN generally make things work by using the command line to tweak every little thing is a feature, not a bug.

    2. Re:Command Line Dependence by mpccornwall · · Score: 1

      I respectfully disagree. 1. You are suggesting that my issue was that Intel didn't provide a good driver. A good driver existed and that's how I fixed my issue eventually. What made it difficult is that there is not an intuitive hardware management solution inside of Linux. Like it or hate it, Device Manager is a cake-walk to use and anybody can figure it out in a few minutes. 2. I'm not asking Linus why there aren't more drivers for Linux. There aren't more drivers for Linux because Linux doesn't have a large enough user base. 3. I also am not knocking the ability to use the command line to customize, re-configure, and fix the system as it stands now. I'm not asking Linus to eliminate it. I am asking why there isn't a larger movement and push to create an easier interface. 4. Is there a good resource for finding Linux friendly hardware? I have been looking for this because I am in the process of trying to build a machine that is Linux friendly and I have been struggling with this.

    3. Re:Command Line Dependence by Ash-Fox · · Score: 1

      Note: I am not the grand parent poster.

      Like it or hate it, Device Manager is a cake-walk to use and anybody can figure it out in a few minutes.

      You get "Unknown device" in the device manager and you have no idea what it is or what driver or anything, you can't grab a driver from windows update, because windows update doesn't have it. The only way to know is if the driver is installed that you don't have installed because you don't know what driver you need which is fairly difficult if you're just given a machine, with no information as to what it's components are and expected to install a version of Windows with whatever drivers it needs without opening the case.

      At least on Linux you can do a lspci and identify what hardware is there and what drivers you need to install. With stuff like "Hardware Drivers" (in Ubuntu) where you just point and click to install proprietary drivers when you want them, it's not really any worse than Windows at that point.

      Is there a good resource for finding Linux friendly hardware?

      Some Linux OEMs like:

      http://system76.com/
      http://www.dell.com/linux
      http://www.hp.com/linux
      https://www.avadirect.com/
      http://cosmos.linuxbeach.net/
      http://www.eightvirtues.com/
      http://www.emperorlinux.com/

      I have been looking for this because I am in the process of trying to build a machine that is Linux friendly and I have been struggling with this.

      Linus uses Apple hardware at the moment to my knowledge.

      --
      Change is certain; progress is not obligatory.
    4. Re:Command Line Dependence by Hamsterdan · · Score: 1

      "You get "Unknown device" in the device manager and you have no idea what it is or what driver or anything, you can't grab a driver from windows update, because windows update doesn't have it. The only way to know is if the driver is installed that you don't have installed because you don't know what driver you need which is fairly difficult if you're just given a machine, with no information as to what it's components are and expected to install a version of Windows with whatever drivers it needs without opening the case.

      At least on Linux you can do a lspci and identify what hardware is there and what drivers you need to install. With stuff like "Hardware Drivers" (in Ubuntu) where you just point and click to install proprietary drivers when you want them, it's not really any worse than Windows at that point."

      On Windows you can use the Hardware ID on the Details tab (in Device Manager)

      PCI\VEN_1002&DEV_68BA&SUBSYS_E144174B&REV_00

      Google the string and you will be able to find a driver (just like in Linux). It's also used to make drivers work in OS X by adding a string in the driver (Like I had to do so Leopard would see my SATA drives on my old PC, and its Video card

      --
      I've got better things to do tonight than die.
    5. Re:Command Line Dependence by Ash-Fox · · Score: 1

      On Windows you can use the Hardware ID on the Details tab (in Device Manager)

      PCI\VEN_1002&DEV_68BA&SUBSYS_E144174B&REV_00

      Google the string and you will be able to find a driver (just like in Linux).

      Except you don't need to google the string on Linux, because the lspci very rarely ever fails to identify the device/chipset - even if the kernel doesn't support the device, so, not just like Linux.

      That's not any easier or equal to Linux in this area, in my opinion.

      --
      Change is certain; progress is not obligatory.
    6. Re:Command Line Dependence by FoolishOwl · · Score: 1

      1. In most cases, with a typical desktop, you can boot a Linux distro and get to a GUI with no trouble at all. This has been true for years. Try a LiveCD some time.
      2. In some cases, you'll run into problems, and need to fix things on the command line, but that's true with Windows as well.
      3. There is much better documentation for fixing Linux problems than there is for fixing Windows problems.

  66. The year of Linux on the desktop by bit+trollent · · Score: 3, Funny

    What do you think will be the year of Linux on the desktop?

  67. Windows 8 by Anonymous Coward · · Score: 2, Insightful

    What are your opinions on Window 8? Have you tried it?

    Windows 8 has a "fast boot" feature: AFAIK on shutdown it closes all userland apps and hibernates just the kernel + drivers (which has a small memory footprint and is fast written to disk). On boot the kernel is loaded from the hibernation image, the drivers initialize all the devices and userland boots normally. This makes Windows 8 to boot in just 2 seconds with a SSD (and I think the UEFI also bypasses the system checks).

    New motherboards like "Asus Crosshair Formula V - Z" include a hardware switch to enable "fast boot".
    Are there plans to include such mechanism in Linux?

    Also, what are your thoughts on UEFI in general?

    1. Re:Windows 8 by Anonymous Coward · · Score: 0

      Linux system boot speed isn't problem caused by Linux OS (kernel) but that bloated system programs and libraries and application programs. Heck, Linux cold boots under a second and rest (2-3 seconds) time is spent for loading system programs and libraries to get X and XDM/KDM/GDM etc started.

      The one second savings is useless. Just suspend whole system and you are faster back than ever.

    2. Re:Windows 8 by Anonymous Coward · · Score: 0

      So, in other words with Windows 8, we'll have to reboot twice a day, rather than once, because turning the computer off when we go home doesn't actually reboot the system.

  68. Endless rotations of the IT wheel by vlm · · Score: 2

    As the IT wheel endlessly rotates and noobs think they're the first to invent old ideas like tokenization or virtualization or storing stuff on the network, what is your favorite IT trend/fad that's NOT currently popular that you're looking forward to its inevitable rotation back into the limelight...

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  69. Why the political / Religious stuff? by Charliemopps · · Score: 2

    I obviously have a great deal of respect for you. The world would be worse off without your contributions. Your insights into technology and software is unquestioned. But you've recently started speaking out publicly regarding politics, religion, and any number of issues are certainly not your area of expertise. In these subjects I often agree with you, some times I don't, but that's not really the point. Often we see those who achieve a certain level of fame get to the point where they are only surrounded by people that will agree with them simply based on their fame.

    Now, you are certainly entitled to your opinion, and I don't want to tell you what to say or not to say. But don't you think that by speaking publicly on subjects that you have comparatively little experience in (politics for example) you degrade your own integrity as an advocate for Linux and open source? It would be one thing if you simply said "I'm voting for so and so" or "This is my religion" but you're coming across like a rabid dog and slinging offensive language. I'm certainly guilty of the same from time to time, but then again, I'm not the leader of the open source software movement either.

    1. Re:Why the political / Religious stuff? by Anonymous Coward · · Score: 0

      Linus: Do you find it annoying when, rather than speak for themselves, people instead throw you up on a pedestal to speak for them, and then get shitty with you for voicing your opinion and not theirs?

  70. Pressure from contributors by Anonymous Coward · · Score: 0

    A lot of the development which goes into the Linux kernel is backed by commercial companies, some of which are competing with each other. Red Hat, Canonical, Samsung, Microsoft, etc. Have any of these companies ever tried to push the Linux kernel is a direction you didn't want? Have they ever tried to introduce changes which you vetoed?

  71. Realtime by vlm · · Score: 2

    To define my question, people would think it weird or bizarre to have a kernel that does NOT have ext3 or ipv4 compiled in or at least available as modules. Pretty much everyone expects to see a linux kernel with loop, or sg available. When or if or should people expect to see realtime extensions compiled in by default on pretty much any linux box? As a guy running CNC machines for a LONG time under linux using emc, I've always figured the sound, or video guys would demand realtime "soon" making life a little easier for me, but it never happens.

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  72. Pronunciation by Sam_In_The_Hills · · Score: 1

    Does it bother you that most people don't pronounce the name of your operating system correctly?

    --
    Linux -- the Ultimate Windows Service Pack
    1. Re:Pronunciation by Anonymous Coward · · Score: 0

      Most people I've heard pronounce it Li(as in list)-nux(as in knuckles), and I believe I saw a video where Linus himself says that's the way it's pronounced. How are most people pronouncing it?

  73. What would get you to move to the GPLv3 (or 4)? by gQuigs · · Score: 3, Interesting

    I understand that you are completely fine with Tivoization (in that you don't want a license to restrict that), but the GPLv3 does do some other important things. As a user, I really like ending Tivoization, but I understand your position.

    More compatible with Apache and other licenses
    New ways to provide source (torrenting, the internet)
    Better path to compliance (if someone doesn't initially)
    Much stronger patent language

    More here: http://www.gnu.org/licenses/quick-guide-gplv3.html

  74. Storage advancements in the kernel? by ScuttleMonkey · · Score: 2

    Now that Ceph is gathering momentum since having been included in the mainline kernel, what other storage (or low level) advancements do you see on the horizon?

    (full disclosure: I work for Inktank now, the consulting/services company that employs most of the core Ceph engineers)

  75. Predictions: Right, Wrong, New. by Pirulo · · Score: 1

    Dear King of us all Geeks: What are the favorite tech predictions that you got right and that you got wrong? Do you have any new to venture?

  76. Isn't it obvious? by copb.phoenix · · Score: 1

    IIRC, it's a curly brace or something of a similar nature (semicolon, etc).

  77. Kernel by zakkudo · · Score: 1

    When are your goint to port the Kernel to a more modern language. Like Javascript?

    1. Re:Kernel by HaZardman27 · · Score: 1

      This would actually be really hilarious/interesting to see someone do.

      --
      Apparently wizard is not a legitimate career path, so I chose programmer instead.
  78. Drone Linux by Mister+Liberty · · Score: 1

    Say Linus,

    If Linux were used as onboard software for US drones,
    you might say said drones are guided by a Finn.

    Anyway -- how would you feel about the deployment of
    your brainchild in roles like that.

    bjd

  79. Have you ever thought of upgrading to FreeBSD? by Anonymous Coward · · Score: 0

    Do you run OS X at home?

  80. favorite hack by vlm · · Score: 5, Interesting

    I asked a bunch of hard architecture questions, now for a softball Q. Your favorite hack WRT kernel internals and kernel programming in general. drivers, innards, I don't care which. The kind of thing where you took a look at the code and go 'holy cow thats cool' or whatever. You define favorite, hack, and kernel. Just wanting to kick back and hear a story about cool code.

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  81. BK & Git by A.K.A_Magnet · · Score: 4, Interesting

    You were 'forced' to start working on Git as a result of Jeremy Allison's reverse engineering of the BitKeeper protocol and Larry McVoy's hostile reaction.

    At first you weren't too enchanted about the waste of time having to write your own DVSC system from scratch for lack of acceptable alternatives. I remember you complaining about that work preventing you to progress on the kernel.

    Now Git is becoming the de-facto tool for source control management in most F/OSS communities and inside companies. That's another very successful project you fathered, and while I guess Mercurial or other projects would have existed anyway, the usage of Git on the kernel has demonstrated its reliability and its performance and traction have made DVCS'es gain visibility and market in no time.

    Here come the questions:

    * Are there any features you still miss from BK?
    * As a happy Git user, I thank Jeremy Allison for his refusal to accept compromise and his tentative to create a Free BK client and I thank you for your refusal to accept a technically inferior/ill-suited solution like SVN. How do you reflect on this?

    1. Re:BK & Git by Anonymous Coward · · Score: 0

      How bzr.

    2. Re:BK & Git by Anonymous Coward · · Score: 0

      You were 'forced' to start working on Git as a result of Andrew Tridgell's reverse engineering of the BitKeeper protocol and Larry McVoy's hostile reaction.

      FTFY (source: Wikipedia)

    3. Re:BK & Git by Raenex · · Score: 1

      his tentative to create a Free BK client

      I think you mean initiative.

    4. Re:BK & Git by A.K.A_Magnet · · Score: 1

      Indeed. Thanks for the correction.

    5. Re:BK & Git by A.K.A_Magnet · · Score: 1

      You're right of course. Thanks. I remembered it was a Samba dev. and I got the wrong one. Too bad we can't edit posts :-).

  82. What is an NPC? by Anonymous Coward · · Score: 0

    I saw it mentioned in another thread, and I figured you would know since you're famous.

    1. Re:What is an NPC? by MRe_nl · · Score: 1

      Ei pelaajan hahmon.

      --
      "Kill 'em all and let Root sort 'em out"
    2. Re:What is an NPC? by jones_supa · · Score: 1

      Yep. More accurately ei-pelaajahahmo.

  83. What would it take to make Linux mainstream? by copb.phoenix · · Score: 3, Interesting

    What do you believe it would take to make Linux a mainstream OS on the conventional consumer desktop? We've already seen broad enough server adoption to not have to worry about being seen there and mobile is good with Android (albeit often not realized by consumers)... So how do we get desktops finally claimed? ... Or have we missed that boat long, long ago?

    1. Re:What would it take to make Linux mainstream? by Anonymous Coward · · Score: 0

      You are asking this question to the wrong dude. Linus is a kernel hacker.

    2. Re:What would it take to make Linux mainstream? by HaZardman27 · · Score: 1
      I don't think Linux (as in the kernel) needs or would really benefit from mainstream awareness. Your average Windows user is unaware of the NT kernel, and your average Mac user is unaware of the Mach kernel. Its success on mobile through Android (despite consumer ignorance that it's there) in my opinion does more to validate Linux than mainstream success would.

      Really, other than perhaps the driver support from hardware vendors that would be brought in through mainstream desktop use, and better games support, I don't see what benefits mainstream adoption of Linux as an OS would bring. Developers know how useful and versatile the kernel is, and that's why it's done so well on servers, Android, and other embedded devices. For those who want to use it as a desktop operating system (such as myself), it's available for use there and works great for pretty much everything I want to do with it (like I mentioned above, I would love to have better gaming options, but I don't spend as much time playing games as I used to, so keeping a Windows partition around for that isn't terrible).

      Linux as an operating system has built up a great ecosystem centered around developers and tinkerers, despite Canonical's attempts to make it mainstream. While I think the world could benefit from mainstream Linux adoption (think free software being used in government, enterprise, and the accessibility for developing nations as opposed to vendor control), I don't think that Linux has anything to gain from it.

      --
      Apparently wizard is not a legitimate career path, so I chose programmer instead.
  84. What are your REAL beliefs? by TheRealMindChild · · Score: 1

    David Lee Roth or Sammy Hagar?

    --

    "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
  85. trolled on /. by vlm · · Score: 1

    You ever get rickrolled or goatse'd or trolled on /. historically?

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    1. Re:trolled on /. by Anonymous Coward · · Score: 0

      Goatse is my most recent troll and I could be Linus' kid.

  86. To what extent is innovation stifled by legacy? by DidgetMaster · · Score: 1

    Backwards compatibility and support for legacy software, hardware, and archaic architectures can be a great stumbling block for innovative endeavers. Adoption of new technology requires a huge improvement in order to make the pain of migration bearable. Since the bar is often set so high, we tend to get more incremental improvements rather than revolutionary changes. How can this change?

  87. Alpha Male by Mister+Liberty · · Score: 1

    How do you feel about being the idol of hords of drooling
    primarily male groupies, of which the current bunch is
    trying to suck up to you like it's nobody's business?

  88. Google plus signal to noise ratio by walshy007 · · Score: 1

    A short while ago you posted a couple of interesting programming challenges to google plus to crowd source an answer, in the end producing an acceptable result from some of your brighter followers. Being somewhat of a celebrity you have a league of followers technical and non technical people alike. Does the signal to noise ratio frustrate you in the comments of your postings?

  89. Microkernel? by ka9dgx · · Score: 2

    If you could redo it all over again, but use a Microkernel instead, would you?

    With the widespread use of Linux in mission critical hardware everywhere, what would you go back in time and change to make everything safer?

    I personally would have pushed hard on authentication of email (thus preventing spam, and the evil that it enables), and capability based security.

  90. OS Purgatory by znigelz · · Score: 1

    Linus, aside from the gnome3 fiasco, which you have been clear about, do you think that R&D into tablet interfaces is infecting the desktop experience in genreal especially with regards to user productivity? I mean this with respect to the new metro interface with Win8, the unity interface with Ubuntu, and the transformation of the mac os into a walled garden (hypocritical to be sure, especially being based on a BSD variant). I want the freedom the work and play the way I want without giants forcing to me to play the game their way.

  91. Bus by Mister+Liberty · · Score: 1

    If you ever get run over by a bus -- whom have you currently
    designated to take your place as the main Linux development
    manager?

  92. Mozilla's Boot 2 Gecko (Firefox OS) by y3sh · · Score: 1

    Have you been actively participating in Firefox's OS (boot 2 gecko)? Do you think it is a sustainable model given the flaws and limitations of Javascript and HTML?

  93. Is there a need for another type of OS? by concealment · · Score: 1

    Linus, thanks for Linux, which makes our days better across the globe.

    My question is a hypothetical: assuming that software patents were more enduring and strictly enforced, such that you would not have been able to make a UNIX-like operating system, what would you have invented instead?

    In other words, if UNIX and VMS were defensible enough so that Linux and Windows (respectively) could not have been created, where would technology have gone? If the Mac OS GUI was so vigorously defended that nothing approximating it could be used, what would our desktop interfaces look like today?

  94. If you could start over again what would you do? by Vellmont · · Score: 4, Interesting

    The Linux kernel has now been developed for more than 20 years, and is in ways now part of "the establishment" since it now runs on everything from consumer televisions to mass-marketed phones.

    If you could start something entirely new, or go back and do it all over again, what would you do? You've made comments in the past about disliking visualization, since getting close to the hardware was what attracted you to the kernel. So this question is largely about what you see as the next radical change at the kernel level might happen over the next 20 years, if anything.

    --
    AccountKiller
  95. Re:C is the epitome of a programming language. by UnknownSoldier · · Score: 2

    > C++ is the spawn of Satan.

    The technical term is over-engineered. Instead of fixing the grammar to allow _one_ extra character in order make programmer's lives easier, they would rather fuck around adding every esoteric feature in the kitchen sink that most people never use bloating the language making C++ even _more_ obscure!

    i.e.

    void Foo(); // prototype
     
    // non-brain-dead C++ allows programmers to copy and paste prototypes, the semi-colon is IGNORED ! Don't hold your breath for this one simple change to C++ though ...
    void Foo(); // semi-colon is IGNORED! woot
    {
    }

    I give C++ another 20 years before the language designers stop being retarded and provide an exponent operator, get rid of the long long int shit, _standardize_ on pragmas, and have a _proper_ type-safe macro system.

    Ranting aside, bringing this back on topic I believe you are referring to the chart of History, Tragedy, and Farce! :-)

    Languages . . . . History Tragedy Farce
    OOP . . . . . . . Simula Smalltalk Java
    Systems languages BCPL C C
    Wirth languages . Pascal Modula Oberon
    Lisp languages. . LISP Scheme CommonLisp
    ML languages. . . ML O'CAML F sharp
    Starting with C . C ANSI C C++
    C++ languages . . C++ C++11 C#
    C# languages . . .v1 v2 v3
    BASIC . . . . . . BASIC VB VB.net
    Haskell . . . . . Haskell Haskell Haskell

    Reference:
    http://lambda-the-ultimate.org/node/4112#comment-62497

    --
    Slashdot's Lameness filter SUCKS ass for listing code, alignment (detects spaces as junk characters!?), and programming language names

  96. Linux or GNU/Linux by menno_h · · Score: 1

    Do those who insist on the name GNU/Linux have a point, or is this entire naming controversy/flamewar plain nonsense?

    --
    AccountKiller
  97. Re:C is the epitome of a programming language. by ShogunTux · · Score: 1

    > And in this day age, the fact that we're still typing to program computers just seems silly. There is no natural law that says computer code has be in the form of ASCII text at some point. Why not visual directly to machine code? I don't see any reason why it can't be done.

    You mean like Piet?

    But seriously, there's really no technology out there that can really beat text input at the moment for general purpose programming. CLI interfaces, while rather demanding for upfront knowledge, are about as powerful as you can get. Everything else that tries to abstract away from that is going to be taking away some power from the programmer using it.

    That doesn't mean that we haven't come a long way in visual editors, from VisualBasic to QT Designer or ALICE, but they're never going to be a replacement for all development. There will always be a need to continue to develop and tweak algorithms as we continue to develop and understand algorithms and their interactions better, and they will need a lower level of interaction in order to do them. The farther you abstract away from the core, the more important it becomes to have good performing code doing all of the intermediate steps, and the less flexibility you're given to tweak how it all works as well.

    I know there are a lot of people out there who would like computers to instantly understand what it is that they want them to do, no matter how irrational it may be. However, we're never going to get away from good performing code needing someone behind it who can actually think rationally, logically, and procedurally. But that doesn't mean that we haven't already come a long way to where people can just throw some crap together in a few minutes to do a specific job at hand. Just don't expect that crap to be production quality or really, maintainable, for that matter. You'll still need someone who knows what they're doing for that.

  98. Simple: Microsoft by ThatsNotPudding · · Score: 5, Interesting

    Tell me how can we defeat UEFI and 'Windows Only' ARM devices?

    1. Re:Simple: Microsoft by Duncan+J+Murray · · Score: 1

      He also answers this question in Linux Format's current issue (http://www.linuxformat.com/). I don't think he thinks UEFI is much of a threat.

      I'm not paid my Linux Format or anything, but I do read it on an irregular basis, and when they interviewed him, they did ask a lot of the above questions. If you find some of the questions aren't answered, it might be worth getting a copy of the magazine to read the interview - it's pretty interesting.

    2. Re:Simple: Microsoft by Anonymous Coward · · Score: 0

      You don't need Linus to answer that. Buy x86

    3. Re:Simple: Microsoft by Anonymous Coward · · Score: 0

      I can answer that one.... Don't buy them! If no one buys, the idea dies. Think open hardware and vote with your dollar.

  99. Free Software, Free Markets and Liberty by 7-Vodka · · Score: 1

    Hi Linus, thank you for providing the intellect and good will that helped allow me to experience 15 years of happy GNU/Linux usage.

    For me GNU/Linux was the gateway not just to happier and more rewarding computing experience, but also the development of a set of beliefs that shape the way I understand economy, politics and Liberty.

    I see the success of the Linux kernel as something that could only have been brought about by the protections granted it via the GPL, these protections that allow free exchange of ideas and collaboration in a very similar way to a capitalist unhampered economy. Each individual is able to make their own decisions about how to use their available means in the ways that they see fit to achieve their most valued ends. In both cases, value is something that is specific to an individual at a specified time and the only way to maximize for value is to allow individuals to reward those efforts that are most efficient at producing value.

    In both the Free Software world and an unhampered economy, those efforts with good foresight are rewarded with money, fame, success and the ability leverage even more of this for future endeavors.

    I believe, this is similar to allowing efforts and ideas to live by Darwinian competition, with the outcomes thus improving society in a way that benefits every individual in a non-Darwinian way.

    Because of this I could say that the GNU/Linux was the catalyst that steered me directly into the Libertarian camp, Austrian economics and the philosophies of of Ron Paul.

    What are your thoughts about the similarities between Liberty in the software world and political and economic Liberty?
    Are these things that can be separated or are they ultimately interconnected? How can one be politically free if they are not free economically? How can political and economic Liberty be maintained in a world where people increasingly accept life in walled gardens?

    Where do you agree or disagree with Libertarians in general or Ron Paul specifically?

    Do you ever disagree with Richard Stallman and if so, why?

    Thanks!

    --

    Liberty.

  100. If Richard Stallman wrote your obituary... by theodp · · Score: 1

    ...what do you think/hope he might say?

    1. Re:If Richard Stallman wrote your obituary... by Anonymous Coward · · Score: 0

      We'll all miss Gnu/Linus.

    2. Re:If Richard Stallman wrote your obituary... by Penurious+Penguin · · Score: 1

      Stallman@Spaceship ~ $ sudo cd /UNIVERSE/recycle_bin
      permission discouraged, but granted
      Stallman@Spaceship ~ $ su ChuckNorris
      Please be very careful!
      ChuckNorris@Omnipotence ~ $ killall -9 suspended-animation-Linus
      ChuckNorris@Omnipotence ~ $ exit
      Stallman ~ # mv /dev/null/Linus /
      Stallman ~ # chmod 777 Linus && Linus restart
      Stallman ~ # rm -f obituary.Linus
      Stallman ~ # history -c
      Stallman ~ # shutdown -r now

      --
      Forward! -- Emperor Norton, 2012
  101. nvidia by Anonymous Coward · · Score: 0

    Do you regret telling nvidia off on camera?

    (Captcha: behaved)

  102. Autograph? by arrow_runner · · Score: 1

    Would it be possible for me to send you a floppy disk for you to autograph?

  103. Re:C is the epitome of a programming language. by Anonymous Coward · · Score: 0

    long long int

    Wow are you behind the times. int64_t is where it's at. Hell, that's part of C99, iirc.

    C++ does have type-safe macros. That was kinda the POINT of templates. The MPL stuff was a surprise to everyone

    #pragma is, be definition, vendor specific. I can only assume you're trying to troll.
    An exponent operator would be nice for normal math, but that's it. I'd rather have a raw string... oh wait. Maybe they could add lamnda fun... oh wait. How about giving me some way to let the compiler decide the type of variable based on the right hand side automatica... oh right.

  104. Re:C is the epitome of a programming language. by Anonymous Coward · · Score: 0

    It's hard to take you seriously when you think that C# is somehow related to C++.

  105. Re:C is the epitome of a programming language. by Anonymous Coward · · Score: 0

    typo noted after post please no grammer nazi

    should be "grammar"

    you're welcome,
    a spelling nazi

  106. Balancing Projects and Family by Aizenmyou · · Score: 2

    Linus how do you make time to work on projects and balance family time? I'm finding it hard to get time for myself on projects while not neglecting my family obligations.

  107. Linux dependency on GCC by Anonymous Coward · · Score: 0

    Currently, Linux only compiles on GCC. First, I'm curious as to why this is. More importantly, what are your thoughts on this, and are there any plans to get the code base compiled on other compilers?

  108. Re:C is the epitome of a programming language. by betterunixthanunix · · Score: 2

    I give C++ another 20 years before the language designers stop being retarded

    In other words, you think that in 20 years the standards committee will not be run by compiler writers and library implementors. Which is pretty optimistic, if history has anything to say about it. One of the big problems with the C++ standards committee is that it is mostly run by compiler and library implementors, and the standards seem to be made for the benefit of such people (rather than for the benefit of C++ users).

    --
    Palm trees and 8
  109. patenting linux by futhermocker · · Score: 1

    did you ever think about patenting linux, taking the money to enjoy the "profit!!!"?

    --
    KERNEL PANIC -SIGFAULT AT ADDRESS #51A54D07
  110. Choosing new technologies by AxDx · · Score: 1

    How do you choose which new technologies (new standards, libraries, os refinements, etc) will be included in new kernel versions?

  111. Why won't you provide tech support? by Anonymous Coward · · Score: 0

    You insist we use your product, but when we need help, you're not there. What is your phone number? I have about 20 boxes I need help configuring. Your product has cost us much money in lost productivity, it is the LEAST you can do,

  112. Linux in 50 years? by Anonymous Coward · · Score: 0

    As the time passes and I grow older and older I started to think more about the continuity of projects that I started.

    What do you think it will happen with Linux Kernel after you will (sadly) not work on it any more (be it from age, health, or any other reasons)?

    PS. Many many thanks for your work and dedication. This was an inspiration for me. Linux was and is a very good and rewarding journey.

  113. Are you as surprised as the rest of us? by tekrat · · Score: 2

    Are you as surprised as the rest of us that corporations worth billions of dollars are now dependent upon an operating system developed by a Finnish hacker as a school project?

    --
    If telephones are outlawed, then only outlaws will have telephones.
  114. Because by Impy+the+Impiuos+Imp · · Score: 1

    I pronounce it "Linux" like Linus and Charlie Brown. Does this bother you?

    And I'd like to ask a follow up question:

    "Really?"

    And another follow up to that:

    "No, come on. Really?"

    --
    (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
  115. On exokernels by Anonymous Coward · · Score: 0

    To: Linus
    Research evidence points that the exokernel architecture yields significant performance increase for exokernel-aware applications. This paper in particular: http://pdos.csail.mit.edu/papers/jj-meng-exo-feb98.ps taps into that architecture, but applied to a modified linux-kernel, in contrast to having an exokernel from scratch. Any toughs on the possibility of adding exokernel features to the linux-kernel?

  116. Re:C is the epitome of a programming language. by UnknownSoldier · · Score: 1

    > Wow are you behind the times. int64_t is where it's at.
    I am quite aware of int#_t.

    Let me know when ALL Canonical C, C++, GNU GCC and MS have _standardized_ formatting names. Instead we stupid shit like this:

    uint64_t a = 123;
    printf( "%u", a ); // doesn't work
    printf( "%llu", a ); // only works with gnu gcc
    printf( "%I64d", a ); // only works with MS

    > Hell, that's part of C99, iirc.
    ONLY if you #include which is retarded. Those types should be _native_.

    I want to tell the compiler that "long long int" is _deprecated_ so that any _legacy_ code I'm compiling with will give me an warning AND/OR error.

    > C++ does have type-safe macros.
    Lol, uhm, no. Templates are STILL half baked. Let me know when you can do efficient double-dispatch with them. (No cheating by providing Alexandrescu's over-engineered solution from "Modern C++ Design")

    The C preprocessor is like wise retarded.

    #if _DEBUG
    // allow all calls to Log::print
    #else
    #define Log::print(...) // doesn't work because the preprocessor is stuck in 1970s ...
    #define Log$(x) Log::print(x) // stupid preprocessor
    #endif
     
    class Log {
      static void print( const char format, ... );
    };
     
    void main()
    {
      Log foo;
      Log::print( "log1" );
      Log$( "log2"
    }

    > #pragma is, be definition, vendor specific. I can only assume you're trying to troll.
    Calling someone a troll because you don't understand Real-World problems doesn't make it one.

    I want _standardized_ pragmas for output, and alignment.

    #error "Message"
    #warning "Message"
    #info "Message"
    #align(16)

    GCC gave us this crap fest:
    struct foo __attribute__ ((aligned (8)));

    Fortunately C++11 has the cleaner 'alignas' ... again, C++ solving real-world problems 20 years later!
    http://en.cppreference.com/w/cpp/language/alignas

  117. Re:C is the epitome of a programming language. by UnknownSoldier · · Score: 1

    Right, because Anders Hejlsberg, the creator of C#, was never inspired by C, C++, Java or J++. Oh wait, he was.

    * References:
    http://broadcast.oreilly.com/2009/03/an-interview-with-anders-hejls.html
    http://msdn.microsoft.com/en-us/library/yyaad03b(v=vs.71).aspx
    http://en.wikipedia.org/wiki/Anders_Hejlsberg

  118. Describe a typical day by vdichev · · Score: 2

    What do you do on a typical day? How has this changed since the time Linux wasn't popular? How do you think Linux has influenced your lifestyle? How do you think a typical day would be if Linux didn't become popular for some reason?

  119. Nvidia turn around? by munky99999 · · Score: 1

    Since the video, has Nvidia tried to turn things around and do better?

    1. Re:Nvidia turn around? by HaZardman27 · · Score: 1

      According to Valve, they've been cooperative with supplying better drivers as Valve has needed them for porting Steam and Source games to Linux.

      --
      Apparently wizard is not a legitimate career path, so I chose programmer instead.
  120. The proverbial desktop linux by requerdanos · · Score: 1

    Linus, props for changing the world doing something you love. For desktop day-to-day use, do you envision the addition to linux of advanced-paradigm UIs like Unity, kitchen-sinks like KDE or Gnome, or minimalist WMs like Lxde making more progress and advancement? Thanks, peace. Joe

  121. Speculative Fiction by requerdanos · · Score: 1

    Which do you prefer, Lem's "The Cyberiad", or Card's "Ender's Game"?

  122. Re:C is the epitome of a programming language. by UnknownSoldier · · Score: 1

    Sadly I concur with you 100% ;-(

  123. Can you see... by ourlovecanlastforeve · · Score: 1

    Can you see why kids love Cinnamon Toast Crunch?

  124. What distribution would you chose? by Pikiora · · Score: 1

    If you were brand new to computers? :) Which distro would you chose as your first linux install and why? :D

  125. YES ! by Anonymous Coward · · Score: 0

    You want Linus to do a book project?

    It's about the time to write a book like the two below, but of Linux.

    - The Design of the UNIX Operating System - Maurice J. Bach ISBN: 0-13-201757-1

    - Lions' Commentary on UNIX 6th Edition, with Source Code by John Lions (1976), see
        Lions' Commentary on UNIX 6th Edition, with Source Code by John Lions (1976) and
        Lions' Commentary on UNIX 6th Edition, with Source Code by John Lions (1976)

    I'm sure there would be interested publishers which would arrange it so that Linus would just need to indicate that he would be interested and those companies would do almost anything to help him laying out information by means he finds comfortable and they would do all the rest to get the book darn good otherwise.

    If you have ever read either of those you probably understand what's a good book.

  126. Do you regret overseaing just the kernel? by Anonymous Coward · · Score: 0

    Recently I've been musing on why a free software / libre desktop for the masses never really arrived. Much of what has stymied Linux desktop adoption in the mainstream seems to be incessant fragmentation between constituent components (eg Gnome vs KDE), the number of distros always being too large to maintain stringent QA, and poor judgement on user-friendly issues by many individuals involved in programming.

    When I look back in retrospect and take the example of AtheOS, which I believe could've become a desktop OS for the masses had the developer chosen to continue, I can't help but think that the way things are today wasn't inevitable but that we've fallen into a self-perpetuating model that is dysfunctional in relation to producing a desktop operating system for ordinary people.

    Your involvement in Linux has long been specifically being the maintainer of the Linux kernel project. Do you ever regret not being more ambitious and not trying to be maintainer of a whole OS project, thereby having a single way of doing things (one desktop, one toolkit, etc) under the "Linux" trademark's banner?

    1. Re:Do you regret overseaing just the kernel? by Anonymous Coward · · Score: 0

      Er, that should have been "overseeing".

  127. Any radical changes on the horizon? by iggymanz · · Score: 1

    Is there any emerging technology on the horizon that wouldl cause a radical change to core Linux architecture, or do you feel only gradual evolution will ever be necessary? for example, absurd number of cores, massive number of personal networked devices, huge array of analog to digital or d to a for augmenting human senses, etc

  128. I love the story title. by Anonymous Coward · · Score: 0

    It's almost as if you are saying: "Linus Torvalds Will Answer Your Questions ... OR ELSE!!!"

  129. How do you deal with burn-out? by kallisti5 · · Score: 5, Interesting

    You must of been burned out on Linux kernel development multiple-times over by now... how do you deal with it?

    1. Re:How do you deal with burn-out? by Anonymous Coward · · Score: 0

      You must HAVE been burned out...

    2. Re:How do you deal with burn-out? by kallisti5 · · Score: 1

      you are correct sir.. good thing i'm a programmer and not a writer :)

  130. Re:C is the epitome of a programming language. by jkflying · · Score: 1

    It's far from perfect, but check out LabView as an alternative input method to CLI/text based programming.

    --
    Help I am stuck in a signature factory!
  131. On your comments to Nvidia by Anonymous Coward · · Score: 0

    I'm sure we all remember your colorful rant against Nvidia. While few would question the accuracy of your statements, some might question the delivery. After all, as the saying goes, it is easier to catch flies with honey than vinegar. Have you experienced any backlash as a result of those comments or was it all taken in good humor? Do you feel like that was an off-the-cuff remark, that maybe you went overboard, or had you intended to do/say something like that all along?

  132. Google Apps lacking native Linux support by Anonymous Coward · · Score: 0

    What's your view on Google not providing native Linux support for client applications
    (PIcasa, Google-Earth, Google-Drive, etc.)
    ?

  133. Google native Linux support by yotam · · Score: 1

    What's your opinion on Google's lack or annoyingly late native Linux support
    for their client applications - (Picasa, Google-Earth, Google-Drive)
    ?

  134. Why isn't there more focus on the WINE project by Anonymous Coward · · Score: 0

    As much as I hate to say it, the reality is till almost every windows app can be run easily, Linux will never become mainstream.

    Why aren't more resources dedicated to the WINE project so can start seeing linux as a viable replacement to windows?

  135. ... Marry me ! by Anonymous Coward · · Score: 0

    that's probably badass enough, don't you think ? ;-)

  136. Ode to reddit... by jasno · · Score: 1

    Would you rather fight one horse-sized duck, or 100 duck-sized horses?

    --

    http://www.masturbateforpeace.com/
  137. Macbook Air versus Windows Ultrabooks by Anonymous Coward · · Score: 0

    You use a Macbook Air. There are now many laptops in this form factor, namely the Asus Zenbook Prime and Samsung Series 9. Would you still stick with the Air for your next laptop or would you go for one of its competitors?

  138. the state of the Linux desktop by korgitser · · Score: 1

    Considering your (and others) disapproval of Gnome 3. And also the controversy around Unity, Kde 4.
    Do you think there would be hope to create an official free desktop specification or an implementation or project thereof? It would e.g. at it's core hold the promise to offer a classic desktop for those of us who want to get work done? It seems to me that the desktop metaphor is rather mature at this point - in that case we would need someone with an explicit mission to mostly not mess with it. These days people seem to rather want to reinvent it out of boredom or just jump ship to get on the tablet market or follow the next fad or whatever.
    Would such a project rather unify or fragment the linux desktop?

    --
    FCKGW 09F9 42
    1. Re:the state of the Linux desktop by FredSki · · Score: 1

      The desktop situation is an example how choice can also be bad. There are so many desktop alternatives on Linux that it cripples app development. Take a look at an succesfull desktop project running on top of the Linux kernel: Android. They (Google) have build a solid set of layers on top with well documented API, SDK's etc. They created a good working app distribution system (Play) including a low threshold payment system. Voila. done.

  139. Who are your heroes? by vdichev · · Score: 1

    You are a hero for a whole generation of programmers, and your strong opinions may be a reason for this. However, you're known mostly for your criticisms, and not much is known about the people who are (or have been) your idols. Who has been a major influence in your professional (or, if you wish, personal) development? Who are the people whose professional opinion you respect?

  140. Re:C is the epitome of a programming language. by Lumpy · · Score: 1

    Just like how Justin Biber was inspired by the Who, The Beatles, and the Rolling stones.

    --
    Do not look at laser with remaining good eye.
  141. Beer by JoeMerchant · · Score: 1

    Long ago, the most famous photo of Linus had him holding a brown beer bottle.

    I'd like to hear Linus' current thinking on beer, and it's relationship to coding.

  142. A very simple question that everybody must face. by XTUX345 · · Score: 1

    Are you a Brony?

  143. Post Linus by FredSki · · Score: 2

    Linus, you are still basically "in charge" of the Linux Kernel. Have you ever thought about the governance model when you stop being in charge (voluntary or involuntary)

  144. It looks like someone does not like... by Yaa+101 · · Score: 1

    Their country to be critisized...

    If you qualify a question as troll, even as biased as is, it means you have verry little self esteem...

    1. Re:It looks like someone does not like... by Yaa+101 · · Score: 1

      I see the qualification of the grandparent post is changed from troll into interesting, this is a good thing.

    2. Re:It looks like someone does not like... by Anonymous Coward · · Score: 0

      I see the qualification of the grandparent post is changed from troll into interesting, this is a good thing.

      Probably just some mod pissed off at eldavojohn. If you look through his recent posts they've all got at least one -1 Troll or -1 Overrated on them ...

  145. Future of the kernel by Anonymous Coward · · Score: 0

    Where do you see the kernel 10 years from now?

  146. Hi Linus by Anonymous Coward · · Score: 0

    Do you have any objection to people referring to GNU/Linux using the nickname "Linux"?

  147. name by flok · · Score: 1

    Do you mind if I name my first-born after you - if it is a son? (seriously)

    --

    www.vanheusden.com - home of Multitail, HTTPing, CoffeeSaint, EntropyBroker, rsstail, bsod, listener, nagcon, nagi
  148. Other than this question... by Anonymous Coward · · Score: 0

    What are the 10 stupidest things you've ever heard in your entire life?

  149. Succession is the killer or not by eionmac · · Score: 1

    In all one man businesses and many family ones , it is the succession that is the killer to the ongoing continuity. (Be it a dynasty,a kingdom or a firm or a software project). How are you arranging for your succession in the Linux kernel business?

    --
    Regards Eion MacDonald
  150. IT Nobel price by Nagilum23 · · Score: 1

    If you could give a Nobel price in information technology, who would you give it to and for what? (multiple nominations are possible)

  151. Finland / United States by void*p · · Score: 4, Interesting

    Kind of a political question: I've always wanted to ask if you think your life would have gone differently had you grown up in the U.S. with similar means. Are there things about life in Finland (politically, socially, economically) that you feel made it more or less possible for you to pursue your interests and eventually develop an O.S. kernel?

  152. Open graphics drivers in Linux by Theovon · · Score: 1

    Dear Mr. Torvalds,

    The Open Graphics Project's original goal was to develop an open source graphics card. Although they did produce hardware, they were not successful at anything sustainable, due to a lack of cash-flow. As a result, they've recently shifted their focus to the more acadeic and mostly software pursuit of developing the first fully open-architecture GPU (http://sourceforge.net/projects/openshader/), with simulation/compiler infrastructure and reference hardware design in Verilog. Do you think that grass-roots efforts like this will ever succeed at freeing Linux users from buggy binary drivers, or will there always be insufficient community cohesion, puting us forever at the mercy of companies like nVidia that will never support open source drivers?

    Thank you for your time.

  153. 1000 Foods You've Tried by Anonymous Coward · · Score: 0

    Linus,

    Please list 1000 foods you've tried, and what you thought of them.

  154. Hobbies? by Anonymous Coward · · Score: 0

    Outside of the obvious, do you do anything fun in your spare time? I'm aware of some of your adventures in Hawaii and such, but I'm just curious if there's anything closer to home you do, like reading or video games or D&D or something.

  155. Getting deeper into kernel development by Anonymous Coward · · Score: 0

    I've been a GNU/Linux user for over ten years and have submitted numerous patches to the kernel to fix small bugs. So I'm not a beginner to kernel development but I'm no where near what an even moderatatly technical kernel developer knows. Is there anything besides reading that code that will help me understand the kernel better. I'd like to get to the point where I can dive deep into the kernel so I can make improvements and fix hard to find bugs.

  156. Next thing to be implemented in hardware by Nagilum23 · · Score: 1

    We recently saw the implementation of crypto (via AVX) in x86 CPUs. If you could whisper into Intels & AMDs ears what would be your next thing for offloading to dedicated hardware? (/new features?/removal of old features?)

  157. Battlefield by gmuslera · · Score: 1

    Considering the apparent increased awareness on cyberthreats (i.e. Huawei, or Stuxnet), how you think it could affect Linux development and evolution?

  158. git more important than Linux ? by cobbaut · · Score: 1

    In relation to this ted talk from Clay Shirky http://www.ted.com/talks/clay_shirky_how_the_internet_will_one_day_transform_government.html

    Do you think it likely that one day you will be more famous for git (or a derivative of git) than for Linux ?

    --
    European Linux user, living in Antwerp
  159. religion by Anonymous Coward · · Score: 0

    Linus, are you an atheist or do you have some religious belief?

  160. stable ABI by Anonymous Coward · · Score: 0

    WTF are you talking about?

    Linux is even more fragmented, RedHat, Fedora, SUSE, OpenSUSE, Ubuntu, Mint, and a hundred other Linux distros out there.

    The one thing that isn't fragmented is the ABI. But most applications rely on linked libraries like glibc, Gnome, and KDE; and those APIs, which are not part of the Kernel, do change; a lot.

    Not Linus just a peon user with a little more than 15 years of Linux experience.

  161. So you made a kernel and a DCVS, why not a distro by Anonymous Coward · · Score: 0

    Haven't you ever tried to make your own linux distribution, and if not, why don't you ? You seem to have strong opinions, don't you have urges in making graphical interfaces ?

  162. Obama - Destroyer Of Due Process by Anonymous Coward · · Score: 0

    See this:

    http://www.youtube.com/watch?v=4IeuE16LLDY&feature=fvwrel

    Yeah, it is off-topic, but probably much more important than all the Linux and general open-source stuff. I don't know Romney, but he can't possibly be worse than Obama. Elimination of due process is the same as destroying the idea of America in general.

    Vote for anybody, but not Obama. Voice your anger about NDAA. Everything else pales in the face of that obscenity. Vote for anybody but those who voted this bill into law, as these people are your freedom's enemies. The Wahabists have succeeded in their jihad against freedom, if this bill is not repealed. Your rights will amount to those of a Saudi Subject (there are no citizens of that nation), if this bill is not repealed.

  163. Linux on the Desktop by Anonymous Coward · · Score: 0

    Desktop users are a completely different breed. They have expectations that to many Linux users may seem unreasonable. However, it seems that Linux on the Desktop as a mainstream consumer OS has pretty much faded from the realm of plausibility. Do you think it has to do with the underpinnings of Linux, the open architecture, or a failure of developers to "get" or understand the consumer market?

  164. More Details by Anonymous Coward · · Score: 0

    * They tried to obfuscate it by renaming Section 1021 to "1031". Their objective is to make it harder for people to link up earlier criticism with the actual bill. Wicked Bastards is probably the right term.

    * NDAA 2013: http://www.govtrack.us/congress/bills/112/hr4310/text

    Section 1031, (2):

    "In 2004, the Supreme Court held in Hamdi v. Rumsfeld that the AUMF authorized the President to detain individuals, including a United States citizen captured in Afghanistan and later detained in the United States, legitimately determined to be ‘engaged in armed conflict against the United States’ until the end of hostilities, noting that ‘[W]e understand Congress’ grant of authority for the use of ‘necessary and appropriate force’ to include the authority to detain for the duration of the relevant conflict, and our understanding is based on longstanding law-of-war principles’."

    Section 1031,(3):
    " The Court reaffirmed the long-standing principle of American law that a United States citizen may not be detained in the United States pursuant to the AUMF without due process of law, stating the following:"

    So they can detain you in (e.g.) France and then lock you up forever in Guantanamo Bay, without you ever seeing a lawyer of your selection. Your American passport will be of no concern.

    Section 1031, (6)
    "In 2011, with the enactment of the National Defense Authorization Act for Fiscal Year 2012 (Public Law 112-81), Congress and the President affirmed the authority of the Armed Forces of the United States to detain pursuant to the AUMF a person who planned, authorized, committed, or aided the terrorist attacks that occurred on September 11, 2001, or harbored those responsible for those attacks, or a person who was a part of or substantially supported al-Qaeda, the Taliban, or associated forces that are engaged in hostilities against the United States or its coalition partners, including any person who has committed a belligerent act or has directly supported such hostilities in aid of such enemy forces."

    If they think you are SOMEHOW linked to someone they call a "terrorist", they can detain you and ship you to a "POW camp" such as Guantanamo. The "war on terror" now lasts LONGER THAN THE SECOND WORLD WAR and NO END IS IN SIGHT. It is up to them to call an end to the "war on terror"; it is up to them to define who is somehow associated to terrorism and your American passport won't be of any concern.

    Of course Obama makes some promises he won't use those dictatorial powers and you better believe the wolf he won't eat any sheep. Makes you sleep better until you feel the wolf's teeth in your wool.

  165. BullCrap by Anonymous Coward · · Score: 0

    That individual example might speak for LISP, while 100000 counterexamples of high-performance, highly efficient C programs speak against LISP. The soviet union was better (and Russia is still better) in making excellent ICBMs than America. Does it mean the SU had history on her side ? Certainly NOT, because the whole picture is what matters.

    1. Re:BullCrap by Anonymous Coward · · Score: 0

      This is not true. The soviets made up for less accurate missiles with larger bomb payloads and more weapons.

  166. what do think of red hat ? by cast0r · · Score: 0

    What do you think of companies like Red Hat & Suse which created a multi billion business around your idea?

  167. VITAL INFORMATION REQUESTED, MR. TORVALDS by Anonymous Coward · · Score: 0

    Are you a Jew?

    1. Re:VITAL INFORMATION REQUESTED, MR. TORVALDS by Anonymous Coward · · Score: 0

      +1 upgoated

    2. Re:VITAL INFORMATION REQUESTED, MR. TORVALDS by Anonymous Coward · · Score: 0

      epic thread bro

  168. Even Using STL is a CHOICE by Anonymous Coward · · Score: 0

    There are lots of things to hate about the STL and it comes with a massive learning curve. But that is not the same as a C++ deficiency. You can quite properly do your own container classes using macros. Either cpp-macros or m4 macros. Or any other macro processor.

    Before you call me a moron an apostate to the "real C++ faith", consider that macro expansion is lightning-fast, unlike the template engines and that expanded macros (using the m4 approach) can be nicely debugged. Error messages will be simple to understand.

    Yeah, not as powerful as templates in the general sense, but still appropriate in (say) 90% of STL use cases. The CATIA CAD/CAE package does that for their containers. And this is a massive C++ program with some massive success and a quick startup time. Despite the fact that it comprises more than 2000 modules and more than 2000 developers work on it.

    Now, abstract what I said about the STL and apply it to other aspects and you will find that C++ in the right hands is a powerful, efficient and versatile tool. In the hands of an idiot it will be a royal fuckup, much more than C# will be. But is that the fault of C++ ? Selecting proper practices and avoid the pitfalls makes it the de-facto high efficiency language and I can't see a real challenger. Ada or Object Pascal could be challengers, but they currently are not.

  169. Exact time of your birth by fotoguzzi · · Score: 3, Interesting

    Hello, Linus, Do you know the time-of-day of your birth? This would fulfill a nerdly need to contemplate by how many seconds you predate the UNIX Epoch. Thanks.

    --
    Their they're doing there hair.
    1. Re:Exact time of your birth by Anonymous Coward · · Score: 0

      Creepy. Mod this weirdo down.

  170. Don't Be So Rude by Anonymous Coward · · Score: 0

    ..to the cretins.

  171. Linux Kernel Security by Anonymous Coward · · Score: 0

    I wonder two things about the security of Linux. Firstly, at a more general level, I imagine the machines that sign the kernel code run Linux. So, when a serious security flaw that has been active for quite some time is found, how do the kernel keepers derive guarantees about the consistency of the kernel, since the signing machines might have been compromised? This applies to most operating systems out there, but since Linux is arguably the largest open source one, I am quite curious to know that process.

    Second, although there has been an extraordinary improvement in the security models of modern unix operating systems, Linux, sadly, has an overall security model from DOS: trust every single program you run in the machine and trust every single hardware component that makes contact with the machine. Overall, most modern unixes, notably including OpenBSD, also suffer from this. Some of these problems are the fault of the distros and their package managers, some of them are the fault of old resilient protocols (X11) and a few are the fault of the kernel (for example different UIDs can see the processes of each other walking the /proc filesystem). So my question is, is trustworthy computing the scope of the Linux kernel, even at the long run?

  172. +1 by Anonymous Coward · · Score: 0

    For being ridiculously....funny ? Or is it lame ?

  173. Re:C is the epitome of a programming language. by Anonymous Coward · · Score: 0

    The other EE types just moved away from schematic entry and into VHDL, Verilog and the like. ASCII. That is the future, boy. Painting pictures to communicate ideas is actually state of the art 15000 Before Christ. They did that on caves. The cavemen.

    We now have letters, paper and keyboards. It is called civilization.

    But hell, give the cretins their GUIs. Fits into farcebook and Fox news culture.

  174. How do we solve the software patent mess? by Yvanhoe · · Score: 1

    Any idea?

    --
    The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
  175. No, We DONT by Anonymous Coward · · Score: 0

    Linux thrives in many different flavors. In DSL routers, in other embedded devices, in Android, in the googleplex, in stock exchanges, in many datacenters and also on the PC. Just trash the notion of "need to outdo desktop windows". Very soon that might happen in the form of low-power tablets carried by office workers like REAL (paper) notebooks. Or maybe not. It does not matter. Linux is already a major force and more indispensable than Windows. Just because you don't see it every day means exactly nothing. You already use it every single day in several different flavours, unknowingly. Linux has to prove nothing any more - those who care know it is excellent from 4MB of RAM up to 4TB of RAM.

    Linux does not compete for cretins who need simpleton messages and cannot stand diversity. Diversity has always been a strength and it allows the community to work around saboteurs like Canonical and deIcaza. They try to make it like windows and people are simply turned off sooner or later. Which is good. We are NOT tied to the tyrannical ideas of a sleazy businessman. We are not tied to a failing brain. Linux will be there in 1000 years, when some corporate fuckup has destroyed all of Windows by means of an artifical restriction of supply. Why can't you get XP any more ? Because it was broken or what ?? No, because Redmond and biz partners was fecking greedy. You can still get any old Linux version that runs on 96MB of RAM with a full desktop suite.

  176. Re:C is the epitome of a programming language. by loufoque · · Score: 1

    It costs time, and thus money, to contribute to the C++ Standards Committee.
    Therefore those who do so are either academics or have are supported by a business who has interest in them extending the language in certain ways. It doesn't necessarily mean, though, that those extensions are not beneficial to C++ users.

    It's not only compiler writers, Intel and Microsoft are pushing (arguably bad) extensions for parallel programming in order to sell parallel hardware better (for Intel) and to get more app developers on their platform and hence attract customers (Microsoft).
    Google is pushing some extensions to make their workforce working with C++ more efficient.

  177. Hardware standards design and engineering? by danpbrowning · · Score: 1

    You often criticize poor hardware designs (e.g. that ACPI is "a complete design disaster in every way") and complement good ones (AHCI). If you were given the opportunity to directly influence the design of important hardware standards in the future (let's say, if Intel gave you veto power), would you do it?

    --
    Daniel
  178. How do you stay organized? by twistedcubic · · Score: 4, Interesting

    Do you keep a to-do list on paper, on a computer, or do something else?

    1. Re:How do you stay organized? by jones_supa · · Score: 1

      +1 for this from me.

  179. Describe your computer by twistedcubic · · Score: 1

    Can you describe in detail your home and work comupters, including processor, motherboard, and graphics card? And also say something about their compatability with Linux?

  180. Immunity by (relative) obscurity? by SigmundFloyd · · Score: 1

    If Linux were as popular as Windows, do you believe it would still be more immune to malware than the Microsoft OS?

    --
    Knowledge is power; knowledge shared is power lost.
  181. Re:C is the epitome of a programming language. by Anonymous Coward · · Score: 0

    That would break this C++ program:

    #include

    int main()
    {
            void foo();
            {
                    foo();
            }
    }

    void foo()
    {
            std::cout "foo\n";
    }

    And while such code in this form may be uncommon and burn-at-the-stake-worthy, you just know someone's abused this hidden behind macros at some point or another. Moreover, such 'trivial' additions can have relatively nontrivial impacts on the language grammar -- which in turn manifests as longer compile times because things are now more ambiguous to the compiler (in a language where compile times are already hideously large), larger compiler variance (when they make a mistake or the standard is ambiguous), and all sorts of other nonsense that's a cost not worth the relatively minor gain of not having to hit backspace once after CTRL+V (and some compiler errors in the interim period between when you start using C++, and when you pick up the habit of hitting said backspace)

  182. Have you figured out a way to monetize your ego? by Anonymous Coward · · Score: 0

    You could be the richest man in the history of the universe.

  183. Income from Open Source by Anonymous Coward · · Score: 0

    I am often asked by my friends how something "Free" like Linux could be any good, and I keep telling them that somewhere along the line, people like kernel Devs get paid somewhere, by someone (donations, sponsorship, etc). Is that true, do you derive any income from writing the Linux Kernel? Has it opened up opportunities that would otherwise not have existed?

  184. Re:C is the epitome of a programming language. by lister+king+of+smeg · · Score: 1

    Why was i modded down for being offtopic? i was responding to parent (that was modded into oblivion) that said we should be writing everything in machine code.

    --
    ---Saying gnome 3 is better than windows 8 not so much a compliment as it is damning with light praise.
  185. Open Source and the "Cloud Creep" by Datamonstar · · Score: 1

    Looking at distros like Ubuntu, and the general way general computing is becoming increasingly more focused on walled gardens and subscription-based services, it seems that there's a definite push towards cloud-based distribution and handing of data even within open source projects. In your opinion, what steps should the open source community, Linux and other open operating systems in particular, be taking to stay relevant in the face of all this drastic change?

    --
    The eternal struggle of good vs. evil begins within one's self.
  186. Software Engineering. by Anonymous Coward · · Score: 0

    Does you think designing and building software systems qualifies as a true Engineering discipline? Some obviously answer in the affirmative, while others say no. Then there is the "in between" opinion. Namely that software design contains many processes similar to the core engineering disciplines, but since it is not fundamentally grounded in physics such as ME and EE, then it certainly should not be treated as real Engineering. Still others say "Software Engineering" is essentially a solved problem.

    So what do you think, and why? Do you think that the perception of software as actual engineering (or not) drives how software is developed in industry?

    Thanks for your time.

  187. What was your first computer you used ? by saxa · · Score: 0

    Hi Linus, what was your first computer you used ?

    --
    Saxa
  188. Tor Net & Security by Anonymous Coward · · Score: 0

    Greetings Sir,
    In your opinion, do you think using the Tor Network is secure or compromised?

    And from an end-user point of view, I appreciate the work you do--many sincere thanks.

  189. Opinions on forking udev; Linu-x versus Lenna-x by knorthern+knight · · Score: 1

    There's an old, politically incorrect, cartoon with a husband freaking out in a car while his wife is driving the wrong way into oncoming , and saying, "I'm not going the wrong way... THEY are going the wrong way". Lennart Poettering wrote systemd, which is broken on machines with a separate /usr (without initramfs). Like the wife in the cartoon, his reaction is "My software isn't broken... the machines my software won't run on are broken. Repartition and reformat your machine.".

    If that had remained strictly a Redhat-ism, nobody else would've complained. However, udev has been hijacked into the systemd tarball https://lwn.net/Articles/490413/ Because of the shared code with systemd, udev shares systemd's brokenness on machines with separate /usr, even if you're not running systemd itself. That's the vast majority of linux systems.

    As the infomercials say... "But wait, there's more". Lennart Poettering has made no secret of his desire to do away with standalone udev. See
    http://lists.freedesktop.org/archives/systemd-devel/2012-August/006066.html Basically, if you want to use udev (required by the vast majority of linux machines) you'll one day need to switch to systemd.

    There are scattered efforts to run systems on mdev, bypassing udev altogether.
    https://github.com/slashbeast/mdev-like-a-boss#readme
    https://wiki.gentoo.org/wiki/Mdev
    https://wiki.gentoo.org/wiki/Mdev/Automount_USB

    Opinion?

    --

    I'm not repeating myself
    I'm an X window user; I'm an ex-Windows user
  190. Stable ABI Asshattery by Tenebrousedge · · Score: 2

    This question has been answered. Many times. You know this. I know this. I know you know this. You know that I know that you know this...well perhaps not but I'm sure you can ascribe opinions to me regardless.

    I'm sure you can count this as being another example of how rude linux supporters are. If your question (and criticism) were in good faith, you would get more polite answers. As is, you simply manage to annoy people -- unless you're involved in writing drivers (and we know that you are not), this is a non-issue.

    As someone who has heretofore defended your right to an opinion, even a contrary and disparaging opinion, please, on this issue: Shut. The Fuck. Up.

    --
    Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
    1. Re:Stable ABI Asshattery by hairyfeet · · Score: 2

      So its a dogma issue then? because frankly that is ALL your "link" provides, a bunch of PR BS and dogma. Again if YOU are right then why does EVERYONE ELSE do it the other way? Not just proprietary but free OSes like BSD and OpenSolaris as well?

      But if you are right then step right up and take the Pepsi challenge. I will happily take the WORST MSFT OS of this decade, Windows Vista, and you can pick ANY regular release that came out in the same quarter, your choice. We'll install them on the same machine in a dual boot, make sure all the drivers are working, then update them to current. Wanna guess what happens?

      I don't have to guess because i have done this several times, with everything from rolling releases like Arch to popular Linux distros like Ubuntu and its ALWAYS the same. Even after multiple service packs and hundreds of patches EVERY SINGLE DRIVER will be working in Vista while Linux? it WILL be a broken mess every. single. time.

      you know what the definition of insanity is? its doing the same thing over and over and expecting a different result. if your way had ANY merits then surely to God ONE DISTRO would survive, just one, but I'll happily repeat the test with any version you like, the results are the same. BTW tried it with BSD and guess what? the drivers kept right on working. if I had a Mac I could probably do the same with OSX, but Linux fall down and go Boom! every single time, you can bet your life on it.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    2. Re:Stable ABI Asshattery by Tenebrousedge · · Score: 2

      It's not dogma, you just didn't understand it. You're only considering your own small corner of the computer world. Linux runs on a dozen or so architectures: which one of those do you want binary compatibility with?

      Linux has a dominant share of the embedded computing market, as well as the server market, and is the overwhelming choice for high performance computing. The minimum requirements for a Linux system would blow your mind -- and don't include frivolities like an MMU. Making assumptions about kernel memory structures would be asinine.

      Vista isn't even in the running for worst or least-compatible Microsoft OS of the last decade: the contenders would be (in no order) Windows CE, Windows Phone 7, and Windows RT. Or perhaps their Singularity project.

      There are two distros whose focus is on stability, Debian stable and Red Hat Enterprise Linux (and/or derivatives such as CentOS). I'd suggest you repeat your test with them, but it's really more manic ranting than a reproducible experiment.

      You have this idea that Linux should be Windows, or that the desktop is a market that it needs to be successful in. I won't deride you for having these ideas, but you may be assured that the overwhelming majority of Linux users have no such concepts. Most Linux installations do not have a desktop. However, you can expect the same kernel drivers to work whether you're running on MIPS, Sparc, ARM, or x86-64.

      Aside from the philosophical issues with having non-open components on an open source system, you are essentially suggesting that Linux should only be useful on the desktop, and supporting this idea with some bullshit anecdote about stability, and the hope that device manufacturers will say, "Oh golly gee! We didn't want to invest in Linux at all, but now that you have a stable ABI, we'll hire all the developers we need!" It's working out so well for BSD and Solaris, isn't it? And I know that I can use all my XP and Win95-era drivers on Win8. Heck, even OSX will happily use those PPC drivers on my Mountain Lion MBP.

      You are not right. You are not even wrong. You are living in a completely different reality.

      --
      Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
    3. Re:Stable ABI Asshattery by hairyfeet · · Score: 1

      Then please be sure to post on every single "Linux is ready for the desktop!" article that they are full of shit, okay? you can't have your cake and eat it too, either its an OS for embedded and server which doesn't give a crap about driver stability or its a desktop, which is it?

      Oh and sorry to rain on your parade, but i already tried it with Debian AND CentOS, not gonna even bother with RHEL because that is $400 a year which would make it completely pointless. Wanna know what happened? Sound and wireless fall down and go BOOM! and again this is giving Linux an advantage of less than half the MSFT OS support cycle.

      So if you say its not a desktop product then PLEASE, by all means, every time there is a Windows thread on here and someone says "Just use Linux!" you tell him its broken and shouldn't be used as a desktop. funny you mentioned RH because of of their devs agrees with me and says Linux sucks on the desktop and its because of hanging onto outdated ideas like the kernel devs should be responsible for every single driver, which is anybody thought about that for even 5 seconds they'd see how stupid that is. you have maybe 50 guys qualified to write and debug low level system drivers in Linux, you got 10,000+ drivers, and Linus and pals constantly futzing with the internals. Anybody with 2 working brain cells can see the math doesn't work.

      So I'm just sick of it, I'm sick of the lies, sick of the FUD from the FOSSies, sick of the out and out bullshit. Either fix the serious issues that Linux has with its core design or kindly accept there will NEVER be any share on the desktop and stop bringing it up. I used Linux exclusively for 5 years and if its one thing I can say without hesitation its that Win2K was a better desktop than the latest Linux. At least you could patch Win2K From RTM to update rollout 5 without any drivers breaking, can't do that with Linux.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    4. Re:Stable ABI Asshattery by Tenebrousedge · · Score: 0

      Have you considered taking stress medication?

      Linux works perfectly well on my desktop. Really I thought all those calls for mainstream desktop use were something of a joke: really, when was the last time you noticed anyone seriously advocating it? And what sort of response did that get?

      I would be thrilled to not ever see mainstream use. I'm even glad you're not using Linux. There are lots more productive things than getting on random forums and bitching about problems. Why you think that Linux should cater to the drooling masses is pretty mystifying; didn't someone invent iPads for that? I cannot imagine these people contributing anything but support costs.

      I'm not going to advocate for or against desktop use. I do have a bias, but I'm not about to inflict it on everyone around me. I fervently wish you would refrain from doing so.

      And in seriousness, while your style of ranting is great for pageviews and you provoke spirited discussion, this sort of stress is not good for one's long-term health.

      By the by, where is your store located?

      --
      Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
    5. Re:Stable ABI Asshattery by walshy007 · · Score: 1

      We have went over this, you want a stable ABI, pick a kernel version, a compiler, an architecture, and keep the same versions of each... done.

      I have went over this before with you two or three times, and I can't be bothered reiterating it (I find one of my prior posts in reply to this and save it for future copy/pasting).

      Having a stable abi would effectively destroy the pace at which linux is developed. Having it as it is is what got it to the point it is at now in regards to in kernel hardware compatibility.

      The link he gave gives you technical reasons why a stable abi is a horrible, horrible idea when your aim is to be the best and most flexible.

      Also the only argument you ever seem to have as to why it is good is "DRIVERS WILL MAGICALLY APPEAR" which is false (hey os/2 has a stable abi and where are my nvidia drivers) and "EVERYONE ELSE DOES IT THAT WAY" well everyone else has fixed, extremely slow releases (this is not a good thing).

  191. Re:C is the epitome of a programming language. by artor3 · · Score: 1

    No, he proposed visual coding that gets compiled directly to machine code. Something akin to LabVIEW.

  192. Kernel Numbering by MECC · · Score: 1

    Why the sudden shift in the numbering scheme to version 3? Isn't consistency more useful than sentiment?

    --
    "We are all geniuses when we dream"
    - E.M. Cioran
  193. Drinks by Anonymous Coward · · Score: 0

    What is your favorite beverage?

  194. Biography by Penguinclaw · · Score: 1

    Okay maybe a boring question but have you considered writing a biography? You have a truly great character in the computing world and I think this would be a great read, especially with the loss of the big characters connected to other lesser operating systems! Hell you never know it may lead to a change in view point by the consumer market that are Apple/Microsoft obsessed... Just a thought.

  195. Drivers by Anonymous Coward · · Score: 0

    ACPI, seriously what the hell is going on? Considering you work for Linux foundation couldnt you guys consider working with motherboard developers to create linux friendly boards?

  196. Immutable files by rover42 · · Score: 1

    I'm a bit of a conservative technically. No C++, just C, and if I need scripting I'll use the shell, sed(1), awk(1), etc. rather than learn Perl or PHP. I see the benefits of some of the more modern stuff; I just don't feel I need them. There are only two things added to Unix since Seventh Edition that I'm absolutely certain were improvements. One is TCP/IP networking. The other is the immutable files from 4.4 BSD. They seem to me to be a very simple and powerful security mechanism, one that would let me fairly straightforwardly secure much of a system. Much easier than working with SE-Linux in particular. My question of course is why the Linux kernel does not (yet?) support immutable files. Yes, I know about chattr(1), but it does not give BSD-style immutable files that even root cannot change.

  197. What is your favorite 'Hero' of Computer Science by Anonymous Coward · · Score: 0

    Over the years on /. and other places, I've noted the deaths of computer science luminaries: W. Richard Stevens, Edsger Dijkstra, Dennis Ritchie, Claude Shannon, Grace Hopper, etc. Who was one of the biggest 'personal' CS heroes in your life, and which ones have you been most impressed by?

  198. Linux drones and politics by Anonymous Coward · · Score: 0

    Since military drones are headed to our local police departments and running Linux, what is your position on the limits of civilian law enforcement use of drone technology? What are your politics concerning drones?

  199. Linux drones and politics by brocktoon · · Score: 1

    Since military drones are headed to our local police departments sporting Linux, what is your position on the limits of civilian law enforcement use of drone technology? What are your politics concerning drones?

  200. Question in Finnish by Anonymous Coward · · Score: 0

    This question is in Finnish:

    Et halunnut aloittaa suurta projektia omalle käyttöjärjestelmällesi mutta nyt se on kaikkialla muualla eniten käytetty paitsi työasemilla ja sylimikroilla, niin kysymys kuuluu; Mikä on mielipiteesi että voisiko avoimen lähdekoodin (GPLv2) monoliittinen käyttöjärjestelmä kuten Linux, hidastaa kehitystä kuten monopoli tai suljettu yksityisomisteinen määräävässä markkina-asemassa oleva yritys tekniikan osalta?

  201. Apple by Erik+Hensema · · Score: 1

    Apple is heading fast into the direction Microsoft went in the nineties. Even today news came out that Apple spends more on patents than on R&D. Now my question: what are your feelings towards Linux developers and users buying Apple hardware in order to run Linux on it? Do you feel they are in a way approving the way Apple operates nowadays?

    --

    This is your sig. There are thousands more, but this one is yours.

  202. the $64 billion x86 counterfactual by epine · · Score: 1

    If I met Linus in person, perhaps in the seat beside me on a long flight, there is a line of questioning I'd be interested to pursue, which I don't think comes around that often in the eternal next big thing techno-weeny grilling rotisserie.

    We all know that the segment registers in x86 are a bit of an abomination. I say "a bit" because the Deep Blue toy Titanic didn't actually sink, even if we wish it had. Let's put aside the fantasy that we go "12 for with last year's Maxim cover models" and contemplate a more realistic, trivial, and yet potentially history shattering counterfactual: that the x86 segment overlap had been eight bits instead of four bits, and the original address space had been 16MB instead of 1MB. We will further posit that given the larger address space, a 64kB dedicated address range was supplied for each of the eight expansion slots, with no possibility of device conflict (at least until DMA enters the picture). Instead of asking "Address 0x3F8 come in please, is anyone on this channel?" BIOS would ask "slot based at address 0xF1:0000, are you populated?"

    I know a fair amount about the early history of x86, but I never managed to figure out if there were any applications or compilers or OS back-flips that heavily relied on 16 byte segment alignment granularity that would have been much compromised had the alignment been a courser 256 bytes (implied by an 8 bit segment overlap).

    In this scenario, the average amount of installed memory would have been much greater, much sooner. Presumably, a larger share of PC purchase dollars would have flowed to installed memory. This might have dented the CPU revenue, or it might not and merely have expanded the pie faster and sooner.

    DOS extenders wouldn't have been needed. Multitasking alternatives to DOS would have met with more fertile ground. Design decisions in Windows 3.x might have been a little different had the average machine already had twice as much installed memory. You wouldn't have needed EMS to install a simple disk cache. Direct mapped video cards would have been thicker on the ground sooner (maybe a few could be configured to grab multiple slots worth of address space).

    But most of all, the transition from single-tasking Wintel crapbox to a fully pre-emptive multitasking nix clone wouldn't have had to walk over burning coals in the late 1980s and early 1990s. One day your DOS development machine would have had 4MB of main memory, 4MB of Hyperdisk cache (my personal favorite) and the next day it would have been running Linux 0.1.1 without gobs of buffer tweaks.

    One consequence would have been more difficulty with the idea of a virtual DOS box. I remember people laughed in the OS/2 era when they learned that every virtual DOS program gobbled up a full megabyte of memory to ensure compatibility (think hundreds of dollars per megabyte). But if the DOS programs were further along into cooperative multitasking by then, they might have been enough better behaved to find a better solution.

    Here's the question for Linus, with his unique perspective on the evolution of the x86 architecture. How much difference would it have made if the original 8086 design had struck the pinky fingernail with the peening hammer instead of the thumbnail? Was it actually the segments that caused so much grief or the fact that the segments were jammed into such a small address space that set Linux on its particular launch trajectory?

    Don't get me wrong: segments blow goats. But every technology suffers for decisions made in the paranoid beginning of no-one gives a damn.

    If we had a time machine and went back in time to the senior architect of the 8086 and told him (let's guess it was a guy) "eventually, something on the order of 10 billion chips of this design and its successors will be sold" what do you think he would say? He'd certainly say: "In that case, I'm not changing a damn thing, even the most grotesque detail, as I must have done something right. Whatever it is beats me. Segment registers blow goats."

    Alternate version: if you could send one tweet back in time to the original x86 design team, what would it say? "You guys blow goats" or something more constructive?

  203. Licence restrictions by Tubal-Cain · · Score: 1

    What is the coolest tech you'd like to see in in Linux but is locked away by patents/copywrite?

  204. Monopolist turned philanthropist by overlordofmu · · Score: 1

    If you were to have copyrighted, controlled and monetized Linux to acquire incredible wealth and therefore had the philanthropic power of an Andrew Carnegie (or Bill Gates) what cause or causes would you personally want to champion with your wealth?

  205. In case you die... by Anonymous Coward · · Score: 0

    What do you think will happen to the Linux community ? Will it stay federated ? Or will it fall apart ?

  206. Security through simplicity by Yuff · · Score: 1

    Linus, The Linux kernel has become very bloated. The compiler used to build it, GCC, is also a vast piece of software. No one person can check all of that code for malware. Even a team would have trouble if attempting to survey all of it. Has there been any effort or just contemplation by you, to deal with the possibility there may now be numerous intentional malware vulnerabilities e.g. backdoors in both the kernel and the compiler, i.e. bugs put there by individuals that you assumed were trustworthy but are not, which enable as-yet unknown ("zero day") hack attacks? I mention the compiler because in the 1990's people spoke of an exploit where the compiler, when it was building the login executable, would add code for a backdoor. Suppose for instance that Ubuntu's build of GCC, which may vary from the source code, were to inject code into the kernel that would, for example, alter a network driver to execute the contents of a specific packet in kernel space e.g. a packet with a certain initial sequence of bytes coming from a certain military contactor's IP range. So the next time you compile the kernel on Ubuntu, you get spyware injected into one network driver for free. One measure to counteract the compiler vulnerability would be to make sure that the kernel also builds fine with a very simple C compiler, e.g. one that is maybe 5000 lines. To achieve better security sometimes one has to embrace simplicity. Doing that with the Linux kernel itself may be difficult since it is so large. If someone were to hide a clever vulnerability in it, it could go undetected for years (indeed one was found I think in BSD recently that lingered for 20 years). As always, we must question assumptions.

  207. Symbiosis of devices by balaband · · Score: 1

    I would like to know your opinion about merging functionality of the desktop/phone/tablet devices (syncing all the devices to one user-connected environment).

    How do you see the future of computing?

  208. Should distros bother considering the 'masses'? by Ora*DBA · · Score: 1

    There are several distinct classes of computer users, with different preferences for a desktop manager. The largest segment (which I think of as the ID10T crowd) is easily (perhaps primarily) influenced by aesthetics - yet the only Linux-oriented project I see anywhere near the mainstream that provides an experience anywhere within hailing distance of OS X/BSD is Enlightenment - C++-based, fast and *light* (as opposed to Unity or Gnome 3) and pretty. Why, with all the talk by enthusiasts over the years of spreading the Linux desktop 'religion', do you think so little emphasis has been given to this by, for example, shops like Red Hat or Netware (SuSE)? In the commercial world, is it your opinion that Linux belongs primarily in the data center, with perhaps a small desktop population of technical users? What do you think a desktop manager heavily influenced by UI-savvy engineers would look like?

    (p.s., I don't use Enlightenment as my desktop manager - but still recognize the project for its accomplishments)

  209. Linux Kernel Education by worldwideweber · · Score: 1

    As the complexity of the Linux kernel increases, what is the kernel community doing to educate the next crop of kernel developers? I know that the "teach yourself" mentality that permeates the open-source community makes this uninteresting in some circles, but are there any free courses that you'd recommend for getting into kernel development? If not, how would you recommend that someone interested in computer science education set about getting something like this up and running? Partnerships with free online universities like Udacity, partnerships with ISPs to provide a configurable development environment, etc... what can we do?

    --
    w o r l d w i d e w e b e r
  210. regrets? by Anonymous Coward · · Score: 0

    Do you regret the damage to your credibility by falling victim to Poe's Law, and do you have a sense of responsibility for demeaning members of a religion who have contributed significant amounts of time and money to Linux and open source software?

  211. Letting go of the dictatorship? by jchandra · · Score: 1

    I think Linux is already at a stage where you can have a core team you implicitly trust directly update a central git repository. Other successful projects (the BSDs, GNU tools etc) follow the same model without too many issues.

    I understand that the idea of distributed development is that there is no single authoritative repository, but whether you like it or not, your git repository at kernel.org is the blessed code.

    Is there anything stopping you from doing this?

    --
    god n. : the Supreme Being, indistinguishable from a good random number generator.
  212. These are a good example by Anonymous Coward · · Score: 0

    An explanation of the string-function enhancing instructions in SSE 4.2:

    http://www.strchr.com/strcmp_and_strlen_using_sse_4.2

    It's easy to picture the way string functions like strchr go through a string one byte at a time looking for the matching byte, and that even with edge case handling, chewing through at 8 bytes at a time should be significantly faster.

    One of my favorite intermittently implemented instructions is simply "decrement register X, and branch if zero." It would probably not overextend the RISC pipeline to include an "increment and compare" instruction that would make every "for (i=0; i 32767; i++)" variety of loop save an instruction per iteration.

    The tricky part is to find instructions that replace things that a compiler can understand, and that don't destroy your instruction pipeline. An example of a cool instruction that fails both is Intel's "rep movsw" It allowed you to put a source, destination and count in registers and transferred memory lickity split. There is no C-code equivalent function though, so for the time I was debugging compilers, I never saw one make and use of it. It could have been coded into a strncpy function directly, but it turned out to make such a mess of the pipeline that in later processors, it was faster to do it with the individual instructions (which had all been optimized down to a single clock-cycle each).

    So for a candidate instruction to be ideally useful it should be something that a compiler can recognize as happening in the flow of your code and simply replace two or more instructions with a single one. For example, since GCC supports loop unrolling, it obviously tracks enough of what is giong on in your code to use "decrement and branch" or "increment and compare" But a less ideal and still palettable capability would be things akin to the string functions where they would have to be coded processor specific, but could run up to 7.999 times faster because they exploit an internal 64-bit datapath on byte level operations without trashing your instruction flow.

  213. Peanuts by Anonymous Coward · · Score: 0

    You're the only one that I've heard with the name "Linus" except that character from Peanuts. I guess that's not really a question.

  214. future of Linux by perles · · Score: 1

    Hi Linus, Who and how do you think someone would lead the Linux kernel project when you retire?

  215. The redundancy of code as the kernel gets older by Anonymous Coward · · Score: 0

    Hi,
    I recently watched your LinuxCon Europe 2011 Kernel Panel Discussion moderated by Lennart Poettering where you discussed about how some of the code changes broke compatibility but was noticed so late that other programs had started to depend on it. And hence, in this case, what was done was both the methods were preserved (which you admitted was a pretty ugly thing to do). One of the example was reporting a version number as 2.36. If this continues, is it not possible that there would be a "big" compatibility bloat which would make the code hard to handle? Especially as the linux kernel grows in various directions, such instances are no doubt going to increase, is there a policy for future which you have in mind? For example would there be a special deprecation and removal commit window at a certain point where you can create a fork which would break the binary compatibility in a specified manner and clean up the code, and then later, preserve binary compatibility from that point on that fork too? Or is my concern not really a serious one and can be handled in other ways?

    Thank You

  216. How linux can change the world? by Anonymous Coward · · Score: 0

    Few years ago when iPhone was released, we have seen a revolution. That was a milestone in tech-industry and eventually lead to mobile revolution. Decades ago when Linux was introduced, we've seen open source revolution. Companies like Google, Facebook embrace openeness except for tehir core businesses and algorithms.

    Linux had several distros and finally we're in a position where Linux is almost irrelevant to the general users. Still people using Windows and Mac is also thriving. The effort of Ubuntu was excellent. They made Ubuntu a human distro. But it's more or less like Windows. or taken some nuggets from Mac. With Apple devices the software is dead cheap or free (the platform). Windows is also heading in the same direction they will sell with handheld devices without a specific price for Windows.

    I would appreciate the initiatives of VALVE Software to support linux version of their gaming platform. How we can convince the general users and developers to come to this platform.

    P.S Linux rules the servers, I am not forgetting that ultimate fact but it's equally important to take general non-techy users.

  217. keyboard driver by jjohn_h · · Score: 1

    Hello Linus,

    The original Linux keyboard driver was your assembly code. That code was ported to C and later expanded by others. But in the late 90s even the main contributors to the keyboard driver were murmuring that a complete rewrite was needed. Unfortunately, 15 years down the line nothing has happened.

    Is there any hope for a new Linux keyboard driver that will enable text mode applications to use (without acrobatics and even remotely) those famous combos with modifiers plus arrow or function or grey keys? Don't you have here an itch to scratch? Do you actually use any editor in text mode? And often so? Or do you prefer a graphic terminal?

    Thanks and regards

    john

  218. Code-less drivers by Anonymous Coward · · Score: 0

    Hi Linus!

    A major problem are the drivers that can freeze the machine, and since there are so many hardware peripherals and people writing drivers, I guess it is one of the major challenges to create a stable kernel.

    I always wondered if it could be possible to create only one generic driver per hardware subsystem/bus (like PCI, USB etc) (maybe also a driver per peripheral type such as display card (interface), network interface etc) and then for each hardware component only create a configuration file that is interpreted by the kernel in order to understand how to communicate with that hardware. A way of generalizing. A new concept in the area of "drivers". Then any idiot could create a driver by means of a config file, but never cause a freeze (panic) in the kernel.

    I guess development of code-drivers will take longeer time but code-less-drivers (config files) will be much quicker.

    What do you say?

  219. Dunthorpe? by matthew_t_west · · Score: 1

    Hi Linus,

    Thank you for all the work you have done on the Linux kernel. As a CS major, I loved working with Linux and owe a lot of my learning experience to getting Slackware to work well on my first machine.

    I have a question that's not specifically about Linux, more about life. So, one of my coworkers is Finnish (which is apparently a close-knit community in Portland) and she mentioned that you have a place in Dunthorpe.

    Why did you choose to live in an exclusive community of estates rather than near Intel or in downtown? Do you feel that it segregates you from the Portland community at large? Do you care? How are your neighbors?

    Thanks,

    Matthew

       

    --
    Browse at 1. You'll thank me later.
  220. What to do about MS's restriction of Linux on ARM? by Anonymous Coward · · Score: 0

    Microsoft has set rules for all ARM devices that run Windows which does not allow loading any other OS on the device. http://www.zdnet.com/blog/open-source/microsoft-to-stop-linux-older-windows-from-running-on-windows-8-pcs/9589 What will this do to Linux? What does Linux (yourself, the foundation) aim to do about this?

    What about MS's FUD-forcing companies to pay licensing fees for using Linux?

  221. Taking over by Anonymous Coward · · Score: 0

    Do you think there is any chance that Linux could become the dominant OS in the future, and if so, what would need to occur for that to happen?

  222. Your List of Influential People in Computers Field by ali+alizadeh · · Score: 1

    You are on my list of people I admire and inspire from for being influential in Computers field. my reasons are your deep technical vision, your confidence in doing things the way you think its right, and starting a highly needed project at the right time and commiting to do it for a long time. I wanted to ask who are on your list? and for what reason?

  223. Celebrity issues by Anonymous Coward · · Score: 0

    Have you ever had a stalker?

  224. bats by Anonymous Coward · · Score: 0

    Please explain how believing in spontaneous creation of life isn't batshit crazy based on its statistical improbability.

  225. Why are BSD *nix guys so insecure ? by Anonymous Coward · · Score: 0

    Why, instead of hanging in their own fora, they must haunt Linux fora and tell us how much better their OS and tools are ?

  226. What languages did you use to write your tools? by jaycmeza · · Score: 1

    Recently this year, during an interview, you talked about how back in the day, when each computer brand came with it's own OS, you always had to write your own tools to work with, because not all OS's came with what you needed. I would like to know, what language did you mostly use for that, what OS, what kind of tools and around how long did it take you?

  227. Which distributions do you use personaly? :-) by M1ch3lk · · Score: 1

    And why?

  228. What is your opinion of UEFI? by lsatenstein · · Score: 1

    With UEFI, we read that every external software must be certified.
    This approach harms the small entrepreneur.
    Do you see more and more software being delivered as source, with installation being a compile and move to target locations?

    --
    Leslie Satenstein Montreal Quebec Canada
  229. The application not the OS by Anonymous Coward · · Score: 0

    Hi,
    Linux is the most advance OS, I am using in almost 100% of my time for the last 3 years, but the OS itself is not the challenge, my main issue is with the applications, mainly & namely MS Office.
    It is a common thing that I would need to edit a document (for business and for personal use), yet there is no way that guarantees for me that the document I edit would be views perfectly by others, I used open office, IBM's symphony, LiberOffice, Google docs, yet the issue is not resolved.

    In term of OS features and as a server OS, I would recommend Linux for 90% of the cases, but not when you are exchanging documents.

    linux development was focused on creating the most advanced, most secure, most robust OS in the world, a kernel that fits easily on a low specs phone, and can scale to run the largest cluster on the world, but still no one would run the OS for the OS, but for the applications, what actions are the linux community is taking to resolve this.

  230. Re:C is the epitome of a programming language. by UnknownSoldier · · Score: 1

    C doesn't allow nested functions so it wouldn't have of been an issue.

    I've worked on professional C++ compiler. A few notes:

    1. The C++ grammar is _already_ over-engineered. Having to extend the syntax will not add to that complexity.
    2. The front-end parsing is separate from code generation. This has zero impact on compile time. The majority of a compiler's time is spent in:
    a) IO (this is why you can compile MILLIONS of lines of code in under a few minutes with a Bulk or Unity Build)
    b) Templates
    c) Optimizing

    Compilers were specifically _designed_ to minimize the tediousness of programming so I no, I don't buy your excuse that "relatively minor gain" is not worth it.