Slashdot Mirror


GNU Grep and Sed Maintainer Quits: RMS and FSF Harming GNU Project

In a scathing rant posted to a GNU project mailing list, the maintainer of grep and sed announced that he was quitting the GNU project over technical and administrative disagreements. Chief among them: He believes RMS is detrimental to the project by slowing down technical innovation (the example used was RMS's distaste for C++, not exactly a strong point against RMS). Additionally, he noted that the FSF is not doing enough to help GNU "Projects such as gnash are bound to have constant funding problems despite being (and having been for years) in the FSF's list of high priority projects.". Finally: "Attaching the GNU label to one's program has absolutely no attractiveness anymore. People expect GNU to be as slow as an elephant, rather than as slick as a gazelle, and perhaps they are right. Projects such as LLVM achieve a great momentum by building on the slowness of GNU's decision processes, and companies such as Apple get praise even if they are only embracing these projects to avoid problems with GPLv3." The author is quick to note that he has no philosophical disagreements with GNU or the FSF.

476 comments

  1. slightly off topic by Presto+Vivace · · Score: 0

    but this is my account of Richard Stallman's presentation to the Yorktown High School Computer Club for anyone who would be interested.

    1. Re:slightly off topic by AliasMarlowe · · Score: 1, Interesting

      RMS is OK (not perfect, but OK).
      For Paolo Bonzini, the grapes, they are sour...

      --
      Those who can make you believe absurdities can make you commit atrocities. - Voltaire
    2. Re:slightly off topic by Anonymous Coward · · Score: 1

      Do you even understand what the expression "sour grapes" means? Because I am struggling mightily here to try and see how what you just said makes any sense at all.

    3. Re:slightly off topic by WaywardGeek · · Score: 5, Interesting

      The comments below seem no more relevant than this "slightly off topic" thread... I find that unfortunate. Of people who have made the world a better place, I list RMS near the top. He's done so in a selfless manner that makes me proud to be human. Sure, I don't agree with him half the time, but if I could trade my life for one where I could do as much good as he's done, yeah... I'd do it. Have you ever heard of Gandhi? Ever read about that flake? He slept (as in sleeping - not sex) naked with young girls to prove to himself he could control his animal impulses. Yet few argue about what Gandhi did for the world. It kills me to hear about people complaining about RMS's views on C++, on which he happens to be mostly right, and even if you disagree this is not naked girl territory. We should acknowledge the outcome of his life's effort: the world runs on free software. Standing ovation for RMS! Imagine how much harder it would be to write awesome code if we didn't have all this free stuff!

      That said, RMS both promotes and harms the goals of the free software movement. As the "Cathedral and the Bazaar" pointed out, RMS brings a central control view to free software that is counter to the whole environment that made GNU/Linux awesome. Debian, IMO, epitomizes this flaw. Rather than helping young new programmer share code and ideas, you have to pray to the Debian Gods and hope they take pity on your pitiful new package before it can be share across the Debian universe. Sure, Debian has it's place... deep in the innards of server racks where 99.9% up time is required, but not on a bright young programmer's desktop. If you want to be part of the new innovative group of coders, go learn about programming for Android.

      I hope this message can finally be heard by RMS and those most central to the free software movement: we volunteer programmers are sick and tired of dealing with the wall of red tape you've built. Please get out of the way and let us do our thing. But you're right about C++.

      --
      Celebrate failure, and then learn from it - Nolan Bushnell
    4. Re:slightly off topic by Anonymous Coward · · Score: 0, Troll

      Yet few argue about what Gandhi did for the world. It kills me to hear about people complaining about RMS's views on C++, on which he happens to be mostly right, and even if you disagree this is not naked girl territory.

      The really pathetic thing about what you are saying is that it is largely correct. To bad you have to demonize naked girls to make a point. What point you are trying to make I have no idea.

      Conservatives think that young naked girls are evil and should be avoided, much like many primitive religions shun girls during their menstrual cycles. Since RMS isn't known to be sexually attractive to anybody, I guess this point of yours is somehow relevant.

    5. Re:slightly off topic by BenoitRen · · Score: 1

      It kills me to hear about people complaining about RMS's views on C++, on which he happens to be mostly right

      Except he's not.

    6. Re:slightly off topic by Anonymous Coward · · Score: 0

      Have you ever heard of Gandhi? ... He slept (as in sleeping - not sex) naked with young girls to prove to himself he could control his animal impulses.

      Wow, what a coincidence, him and me. I do that too and I always fail.

    7. Re:slightly off topic by yourmommycalled · · Score: 0

      RMS's view on C++ correct. After struggling to update someone else's very well documented finite element code written on C++ proves to me that C++ and the whole object-oriented concept is an abomination. Writing in C++ is like being told you are going to use a chainsaw with the latest and best safety guards only to find out that the safety features are designed to maim rather than protect

    8. Re:slightly off topic by siride · · Score: 1

      All your little anecdote proves is that someone wrote some bad code, even if it was well-documented. I've seen plenty of unreadable C, Perl and Python, to say nothing of Java or .NET. Object orientation can be very clean, and it can be very dirty if you don't know what you're doing or don't care.

    9. Re:slightly off topic by Eskarel · · Score: 1

      These weren't naked "girls" they were naked girls, as massively underage.

    10. Re:slightly off topic by SomeKDEUser · · Score: 1

      By "young" he means 8-year-old. Not quite what you may have been thinking.

    11. Re:slightly off topic by LingNoi · · Score: 1

      Yet few argue about what Gandhi did for the world. It kills me to hear about people complaining about RMS's views on C++, on which he happens to be mostly right,

      No, I take the 12+ year maintainer over the guy that hasn't done any serious coding in a decade (one liners to emacs lisp plugins don't count before you come back with that shit).

    12. Re:slightly off topic by Anonymous Coward · · Score: 0

      Yes I know. I understand the FUD of the conservative attitudes about naked girls. I also understand YOUR attitude and FUD by your using the term "massively underage" as if that means there is something completely unholy and unnatural about being per-pubescent.

      The sad fact is that Gandi is being demonized for NOT having sex with a pre-pubescent naked girl. The perversion is in the attitudes of the people who marked my original post as "troll". Shameful! But like I always say (to myself), "It takes effort not to be stupid."

    13. Re:slightly off topic by narcc · · Score: 1

      Be careful. There are still primitive parts of the internet where that kind of talk is considered blasphemy.

    14. Re:slightly off topic by Anonymous Coward · · Score: 0

      Ghandi was a celibate pedo? Citation? If true, it certainly shows how different attitudes about this were not all that long ago. To admit these days that an 8yo could be even slightly attractive is now 1000% verboten, despite the high figures on the numbers of males who can get off on this idea. However in many traditional cultures I'll bet people are well aware of this and are much more forgiving of such admissions.

      Something like 30 ago MontyPython could still make jokes about sex with 8yo girls and nobody minded but for the life of me I cannot find that quote on Google (censored?????).

    15. Re:slightly off topic by cheesybagel · · Score: 1

      Try developing a cross-platform C++ application and we will see if you start agreeing with RMS or not.

    16. Re:slightly off topic by Anonymous Coward · · Score: 0

      I'm not surprised that someone who actually tells young people to learn Android so they can grow up to be paid $30K/year to write cell phone apps would also consider C++ "too hard". While you're still coding up a n-index data structure in pure C, I'll have typed a couple of typedef lines and been done, all while making 6 figs a year.

    17. Re:slightly off topic by MareLooke · · Score: 1

      Honestly, the same goes for the GNOME project. Just have a read here. This situation is possibly even worse for FLOSS in the long run than the FSF's conservativeness.

      FLOSS development is supposed to be about choice, I find it very unsettling that various entities try to take that choice away. "If you're not a GNOME project you don't matter, in fact we'll actively try to make your life harder." is basically what they say.

      The same can be said about the entire systemd debacle, is it an improvement over what we have now? Maybe so, but that is irrelevant to this discussion, but the way they are trying to force it on everyone whether you need it or not, whether you want it or not is sickening and unworthy of a FLOSS project.

      Personally I'll take the FSF's slowass development, seemingly archaic policies and Stallman's insistence on correcting every use of "Linux" to "GNU/Linux" over the current trend emanating from the likes of the GNOME project.

    18. Re:slightly off topic by Anonymous Coward · · Score: 0

      Unfortunate really that Gandhi is most often just that nice Indian guy who fought the British and dispensed pithy quotes. While certainly to be credited for his role in India's independence, it should be remembered that this freedom fighter was notoriously racist, was a religious fundamentalist, labelled a pacifist yet was happy to profit from the fighting of others and endorse violence, and would have created an India dividing its time equally between subsistence farming and mysticism. Expecting a united India with him at the helm was as likely as Northern Irish Catholics happily accepting Ian Paisley senior as their king.

      His "tests of chastity", with the aid of naked young girls, was an expression of his bizarre mystical beliefs. Granted it's no less weird than the president of a western country saying that he talks to a shy and all powerful being.

    19. Re:slightly off topic by Anonymous Coward · · Score: 0

      .. Sure, Debian has it's place... deep in the innards of server racks where 99.9% up time is required, but not on a bright young programmer's desktop. If you want to be part of the new innovative group of coders, go learn about programming for Android..

      That has to be one of the most ridiculous statements I've seen on Slashdot this year.
      'innovative group of coders', 'programming for Android' excuse me, but have you actually looked at both the quality and 'innovative' subject matter of most of the Android code being produced?

    20. Re:slightly off topic by Anonymous Coward · · Score: 0

      I wouldn't say he was a pedo - more a clusterfuck of sexual issues. He thought celibacy was the way forward for all Indian men. He'd sleep naked and bathe with his girls, and would engage in some strange fucked up notion of closing his eyes while bathing so he wouldn't be tempted.

      What you have there is a man one step away from putting on suspenders and being kicked in the balls until his urges abate. In hindsight he'd have made a fine British Parliamentarian.

    21. Re:slightly off topic by Pseudonym+Authority · · Score: 1

      Have you considered that the fault doesn't lie with C++, but that you might just be a shitty programmer?

    22. Re:slightly off topic by garaged · · Score: 1

      Have you ever spent time with him outside the speech sessions?

      He is anything but selfless, he is extremely arrogant and interested in money to be called selfless.

      I agree with a lot of what he says, but he is the classic example of "do as I say, not as I do"

      --
      I'm positive, don't belive me look at my karma
  2. Stallman is the original neckbeard of computing by Anonymous Coward · · Score: 2, Funny

    Enough said.

    Gnu/Anonymous FSF/Coward.

    1. Re:Stallman is the original neckbeard of computing by greg1104 · · Score: 5, Insightful

      No, that would be Thompson and Ritchie. Stallman's neckbeard has spread horizontally to try and compete, but it's still no match for the epic reach into the neck Thompson's has in that shot.

    2. Re:Stallman is the original neckbeard of computing by Mikkeles · · Score: 2

      Better a principled neck-beard than a whiny chin-beard;^)

      --
      Great minds think alike; fools seldom differ.
    3. Re:Stallman is the original neckbeard of computing by Tablizer · · Score: 1

      Enough sed, you mean.

    4. Re:Stallman is the original neckbeard of computing by davydagger · · Score: 1

      back then you just called them "dirty hippies" and "long hairs"

  3. grep -p by Anonymous Coward · · Score: 0

    My question is why is there no grep -p, as there is in AIX. I love that flag.

    1. Re:grep -p by Anonymous Coward · · Score: 0, Flamebait

      lol AIX who uses that shit

    2. Re:grep -p by Bill+Dimm · · Score: 2

      This gives some ways to accomplish the same thing.

    3. Re:grep -p by kthreadd · · Score: 3, Interesting

      lol AIX who uses that shit

      /me raises hand

      It's not modern or "sexy", but it is incredibly stable.

    4. Re:grep -p by Anonymous Coward · · Score: 1

      A lot of US credit unions and community banks use AIX to run the core process. The Microsoft equivalent in the credit union world is Jack Henry and Associates Symitar core process which only runs on AIX.

    5. Re:grep -p by jedidiah · · Score: 4, Funny

      > lol AIX who uses that shit

      Employers.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    6. Re:grep -p by Anonymous Coward · · Score: 0

      lol AIX who uses that shit

      Anyone who appreciates the grep -p option, presumably....

    7. Re:grep -p by maxwell+demon · · Score: 2

      Of course the complete functionality of grep can be obtained with a awk or perl script. So unless you consider grep an useless legacy program, that's not much of an argument against the option.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    8. Re:grep -p by ottothecow · · Score: 1
      Yup. I use SAS on AIX pretty much every day at work. Just a few (3-4?) years ago, they finished migrating from zOS.

      I've never talked to anyone about the reasons why AIX was chosen over something else...it may have had more to do with the hardware they wanted to run (and/or re-use)

      --
      Bottles.
    9. Re:grep -p by Anonymous Coward · · Score: 0

      /me have worked on AIX support for IBM.

      If you are talking about the "uptime" stability, you are either paid or ignorant. If you are talking about features, "lol AIX who uses that shit" about sums it up.

    10. Re:grep -p by ThePhilips · · Score: 2

      If you are talking about the "uptime" stability

      As somebody who actually occasionally uses AIX, but most and foremost who does support for HA system for past 5+ years, let me just say that the uptime stability of any system is asymptotically equivalent to the minimum distance idiot admins are kept from it. Farther you keep idiots away from important system - the system which you want to have great uptime - longer the uptime gets.

      Otherwise, our AIX 5.x, 6.x and 7.x boxes run pretty well over here and with great uptime (500+ days between reboots; most commonly rebooted for network/storage reconfiguration or power outlet/physical relocation). Yeah, system is out-dated, mostly sucks and is unused. But try to think of it positively, as about the "glass half-full": Thanks God It's Not HP-sUX!!!!!!!!

      --
      All hope abandon ye who enter here.
    11. Re:grep -p by toastyman · · Score: 5, Funny

      I worked with a Russian programmer of very few words, who willingly ran AIX as his desktop OS. When asked why, he said "I enjoy the strict confines of AIX."

      I had absolutely no idea how to respond to that.

    12. Re:grep -p by Anonymous Coward · · Score: 2, Insightful

      As an IBM employee, I am equally without words.

    13. Re:grep -p by sourcerror · · Score: 3, Funny

      Why he didn't just use BSD(M)?

    14. Re:grep -p by CAIMLAS · · Score: 3, Insightful

      As someone who administers AIX but am historically from the Linux side of things, I have seen quite a few oddities on this supposedly-stable OS of IBM's, AIX.

      I have seen the kernel get clobbered by authentication systems and PAM, repeatedly. It doesn't handle OOM conditions nearly as well as Linux does (though you can tune it to a similar degree, if only because Linux borrowed a lot from their implementation). I've seen a great deal more erratic behavior (eg. daemons crashing, lack of responsiveness, etc.) on AIX when approaching OOM conditions (with or without swap - just whenever the slab space is almost all used) than I ever have on Linux.

      If it were so stable, it wouldn't need patching primarily for stability as regularly as it does from IBM. Sorry, but from where I'm sitting, AIX has a lot more patches being released for a great deal more things than RHEL does, for very basic things. IMO, the biggest reason AIX is even used specifically is due to legacy, and institutional knowledge - AIX knowledge doesn't go as stale as quickly as Linux distro-specific knowledge does, because nothing ever changes - ever - on AIX, they just add more stuff.

      And, of course, the hardware AIX runs on is pretty much just pure awesomeness. That's the biggest reason AIX should even be considered.

      (Funny enough, the VIO and/or HMC on most "AIX" equipment appears to be some neutered and highly customized version of SuSE, so technically, AIX can only really be as stable as Linux is.)

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    15. Re:grep -p by Anonymous Coward · · Score: 0

      Hey I still use AIX on my desktop, you insensitive clod!

    16. Re:grep -p by davydagger · · Score: 1

      awk replacing grep - getting in a mac truck to get the groceries.

      perl script - getting in a race car for the same

      I'm just trying to type ls -l |grep something into an interactive bash shell, simple simple shit, that breaks.

    17. Re:grep -p by cheesybagel · · Score: 1

      Heck you could replace everything: grep, awk, sed with perl. That guy is just being stupid.

    18. Re:grep -p by Anonymous Coward · · Score: 0

      I agree with you.
      I can add networking problems, routes on the systems that cannot be deleted, documentation that is "to be updated" (http://www-01.ibm.com/support/docview.wss?uid=isg1IY65990) since 2005 and other very stupid bugs ex: (http://www-01.ibm.com/support/docview.wss?uid=nas74d33539b559cc0308625792900533a8f)
      grep on AIX is crap (no -A, -B, -C as I can remember others too), sed does not know about extended regular expressions, good thing that perl is installed by default.
      VIOS it is a customized AIX, HMC uses SuSE, SVC (San Volume Controller) uses SuSE.

    19. Re:grep -p by Anonymous Coward · · Score: 0

      One of my AIX 4.3.3 machines was up over 1000 days. Sadly (sort -of) the AIX 4.3.3 is still running...

    20. Re:grep -p by Anonymous Coward · · Score: 0

      perl is a race car?

      you really need to work on your metaphors.

  4. Why does C++ matter? by PhrostyMcByte · · Score: 4, Interesting

    the example used was RMS's distaste for C++, not exactly a strong point against RMS

    So RMS doesn't like C++ -- this doesn't stop people who can use it properly from writing their projects in it, does it?

    Does RMS actually have control over what GNU projects are implemented in? If so, I'd say that's quite a strong point against GNU -- throw the whole "right tool for the job" bit out the window because one dude doesn't like it?

    1. Re:Why does C++ matter? by Anonymous Coward · · Score: 5, Informative

      From TFA (I know, I know, cardinal sin, but I read the article yesterday on LWN):

      However, all Stallman had to offer on the topic was "We
      still prefer C to C++, because C++ is so ugly" (sic). As a result of
      this, the GNU coding standards have not seen any update in years and
      are entirely obsolete.

      So, RMS wasn't involved in the C/C++ switch, but his refusal to acknowledge it has lead to a lack of "C++ is a real thing, we should have a coding standard" across GNU.

      I saw another comment somewhere (that I can't find now) about how, prior to LLVM, RMS *was* opposing many things (I believe, but can't be sure without the source, that the switch to C++ was one of these things), and since LLVM came out as a competitor, RMS has been compelled to be more amicable to change he doesn't personally like.

    2. Re:Why does C++ matter? by Anonymous Coward · · Score: 5, Interesting

      True, but those few people who use C++ correctly seem to have learned their lessons with C. I'm thinking of Sam Leffler, I've held up his clean programming in his HylaFAX software as examples of *how* to do C++, instead of merely holding up the numerous examples of how not to do it.

      Unfortunately for comparisons, Sam is one of the authors of BSD UNIX. Not NetBSD, OpenBSD, FreeBSD, or invent-yet-another-pointless-license-scheme-BSD. But original BSD. *Brilliant* programmer. Junior programmers should review Sam's code to unlearn the bad lessons taught by people who don't understand how object oriented work should be used.

    3. Re:Why does C++ matter? by K.+S.+Kyosuke · · Score: 3, Informative

      So RMS doesn't like C++ -- this doesn't stop people who can use it properly from writing their projects in it, does it?

      Yeah, after they enforce a company-wide ban on multiple inheritance, exceptions, and 95% of the publicly available libraries.

      --
      Ezekiel 23:20
    4. Re:Why does C++ matter? by sg_oneill · · Score: 1

      He's got sway. I actually love RMS's philosophy and the staunchness with which he defends it. But sometimes yeah he's a bit old fashioned like that, and yes he has some sway, because GNU is a specific project, not just a licence.

      Personally I can't stand C++ either, but my decisions affect me alone, not a huge volenteer org I'm heading up.

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    5. Re:Why does C++ matter? by dalias · · Score: 4, Funny

      The GNU coding standard for C++ should be that you use only the subset of C++ that's also valid as C... :-)

    6. Re:Why does C++ matter? by Anonymous Coward · · Score: 3, Informative

      So RMS doesn't like C++ -- this doesn't stop people who can use it properly from writing their projects in it, does it?

      Yeah, after they enforce a company-wide ban on multiple inheritance, exceptions, and 95% of the publicly available libraries.

      The Google style only applies to code written by Google employees. Those publicly available libraries are not banned (except for Boost, and then only certain parts of it).

    7. Re:Why does C++ matter? by sg_oneill · · Score: 1

      Multiple inheritance is actually problematic in a lot of cases, especially for libraries.

      Of course , its like singletons or whatever. Shouldn't do it, but sometimes deadline-practicality wins and its the best tool for the job.

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    8. Re:Why does C++ matter? by Chris+Newton · · Score: 3, Insightful

      True, but those few people who use C++ correctly seem to have learned their lessons with C.

      That may be, at least in part, because many of the less than ideal aspects of C++ come from its C heritage.

      I don’t understand some of the arguments made against C++ by certain “elder statesmen” of the OSS world. It seems they don’t like some of the extra functionality available in C++, seeing it as overcomplicated or too readily able to hide behaviour. In itself, that’s a reasonable concern. But then they use C, and reinvent the same wheels using crude text substitution macros that could be doing or interacting with anything.

      On another forum discussion a few days ago, I saw someone argue that the Linux kernel is very readable, citing this C file as an example. I’m still not sure whether their comment was meant to be sarcasm.

    9. Re:Why does C++ matter? by marcovje · · Score: 4, Informative

      Leffler moved on to FreeBSD afaik, and even was FreeBSD Foundation president for a while

    10. Re:Why does C++ matter? by beelsebob · · Score: 1

      The question is, does that valid C have a different meaning to the also valid C++ :D

    11. Re:Why does C++ matter? by K.+S.+Kyosuke · · Score: 1

      Multiple inheritance is actually problematic in a lot of cases, especially for libraries.

      Actually, multiple inheritance is problematic whenever you don't have a MOP at your disposal, because it's never clear what class precedence linearization is appropriate and whether or not it should be the same one for all cases and problem domains.

      --
      Ezekiel 23:20
    12. Re:Why does C++ matter? by maxwell+demon · · Score: 1

      In almost of the cases where you'd use multiple inheritance, the intersection of the interfaces of the two classes should either be zero, making any precedence questions moot, or obtained through diamonds with virtual inheritance and pure virtual functions in all base classes, so again there's no precedence question because the only class implementing the shared interface at all is the most derived one.

      I'd say if you need to think about precedence, you've probably already done something wrong.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    13. Re:Why does C++ matter? by Sir_Sri · · Score: 5, Interesting

      throw the whole "right tool for the job" bit out the window because one dude doesn't like it?

      Imagine a conversation goes like this. (Imagine that this is a shop that does C development right now).

      New guy: This project that needs doing. I could do it in C++, I could do it a lot faster than in C.

      Old manager guy: If we do it in C++ it means we have to keep C++ capable people on around. Even if you stick around 10 years from now you might be out of practice coding.

      New guy: Ok, but if we don't do it in C++ we're probably not going to get it done at all, because we don't have the resources to do it in C at all.

      Old manager guy: If it means we lock ourselves into a future of more skills than we have, it's not worth doing, because we can't guarantee being able to support it, and I don't want our name on abandonware.

      They'd both be right. And that would be why GNU still doesn't consider itself to have a stable release. If you demand everything be done exactly perfectly you'll never even finish one thing, and if you accept 'good enough' you can easily end up with bits of code clinging to life that you will eventually have to just rewrite.

      I just was on a project where one of the other software guys took all of the function names of a MS windows package, and completely rewrote how quite a lot of them behaved (not just implemented the same API differently, he actually completely changed what the functions do), but that was about 10 years ago. Now, to try and update that code and use the new version of the actual MS api we had a nightmare of a time, trying to figure out what he changed, and why was actually really hard and wasted a lot of money. And yet, it meant he had a working piece of software out the door 10 years ago that kept him in business for 10 years.

    14. Re:Why does C++ matter? by Zero__Kelvin · · Score: 5, Interesting

      "The GNU coding standard for C++ should be that you use only the subset of C++ that's also valid as C... :-)"

      That would not be a very good idea, since certain valid C constructs that are also valid C++ constructs behave differently.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    15. Re:Why does C++ matter? by Zero__Kelvin · · Score: 1

      The answer is a definitive yes! (Pun intended)

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    16. Re:Why does C++ matter? by Anonymous Coward · · Score: 0

      A coding standard for C++ does not make much sense since C++ has so many cascading layers of awfulness. Basically, you stay away from as many C++ complexity layers as an individual program architecture will sensibly allow you to stay clear off.

      A coding standard for C++ makes as much sense as a movement standard for boxing fights. It does not make much sense to pick this in advance independent from the actual opponent.

    17. Re:Why does C++ matter? by swillden · · Score: 5, Informative

      So RMS doesn't like C++ -- this doesn't stop people who can use it properly from writing their projects in it, does it?

      Yeah, after they enforce a company-wide ban on multiple inheritance, exceptions, and 95% of the publicly available libraries.

      Google doesn't ban multiple inheritance, though in most cases multiple inheritance of anything but pure interfaces is discouraged, and there's rarely any need for Google engineers to use all of the BOOST libraries, given Google's extensive internal libraries.

      I do wish that exceptions were allowed, but I understand the rationale for avoiding them (it's spelled out in the style guide), and can't disagree with the decision.

      (I write C++ code for Google.)

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    18. Re:Why does C++ matter? by khallow · · Score: 1

      Wow, I never thought I'd see someone admit to using HylaFAX. I remember looking for a lightweight FAX interface back in 2000-2001 for some demo project I was doing. It was a lot better than what else was out there. The MS library stuff in particular was a vast pile of crap and OS-specific of course.

    19. Re:Why does C++ matter? by Anonymous Coward · · Score: 0

      The java8 solution is great with that regards, default stateless methods in interface. The problem with multiple inheritance only arise because of states. If a class D inherits C and B that both inherit from class A which state (instances) variable are you going to use when you refer to super.someVariableInA ? Multiple ineritance only make sense in traits or in java8 default interface methods.

    20. Re:Why does C++ matter? by Anonymous Coward · · Score: 0

      Actually, multiple inheritance is problematic whenever you have nominal overriding rather than semantic overriding like provided in a language like Eiffel.

      Multiple Inheritance gets a bad rap because the only language in which most people are exposed to it (C++) implements it pretty badly. But it can be done right, and when done right it is a valuable asset.

    21. Re:Why does C++ matter? by bored · · Score: 1

      I do wish that exceptions were allowed, but I understand the rationale for avoiding them (it's spelled out in the style guide), and can't disagree with the decision.

      From someone who disables exceptions via g++ compiler flags for a few of my projects, and uses them extensively in others... The problem is that the language definition basically requires them. The ugly edge cases and extra code everyone always forgets (nothrow syntax for new) due to laziness can generate the same kind of one in a billion errors that people try to avoid by not having exceptions in their C++ programs. Being unable to signal initialization failures during construction destroys RAII for problems more complex than simple variable initialization.

      So, its a case of dammed if you do, dammed if you don't (the performance argument is sort of bogus, unless your throwing exceptions everywhere).

      Personally, I think your better off enforcing minimal use of exceptions, and solving the problem higher up at the architectural level with a transaction/thread cancellation model where any unusual exceptions are handed with one or two extremely high level catch routines. It also tends to segregate the error classes. Errors that are common are coded with normal return code handling and appropriate recovery code, uncommon failures tend to get handled with exceptions. The exceptions tend to be verbosely reported, and the operation "amputated" if you will.

    22. Re:Why does C++ matter? by 21mhz · · Score: 1

      I do wish that exceptions were allowed, but I understand the rationale for avoiding them (it's spelled out in the style guide), and can't disagree with the decision.

      From someone who disables exceptions via g++ compiler flags for a few of my projects, and uses them extensively in others... The problem is that the language definition basically requires them.

      Not in practice. If you write your constructors to only do minimal initialization (yes, RAII is overrated) and don't overload operators beyond few well-regulated cases, you don't have any need for exceptions.

      The ugly edge cases and extra code everyone always forgets (nothrow syntax for new) due to laziness can generate the same kind of one in a billion errors that people try to avoid by not having exceptions in their C++ programs.

      std::bad_alloc basically does not happen for run-of-the-mill allocations in most deployment environments today, so you can ignore it: an out-of-memory kill will get your program more often anyway, and you can't have a software safeguard for that.
      Checking for allocation failure may be useful for a few scenarios where huge buffers are allocated, but those can be done with customized code, or better, rewritten to never rely on allocating buffers with sizes approaching that of physically available memory.

      --
      My exception safety is -fno-exceptions.
    23. Re:Why does C++ matter? by bored · · Score: 1

      Not in practice. If you write your constructors to only do minimal initialization (yes, RAII is overrated) and don't overload operators beyond few well-regulated cases, you don't have any need for exceptions.

      RAII is a tool, like anything else the zealots can get carried away.

      That said, as someone who believes that objects represent things, and code them that way, I find myself starting threads, doing further resource acquisition, self registration, and all kinds of other things that _CAN_ fail in the constructors/destructors. To blithely ignore those problems, or follow every construction with a initialize/finalize type call IMHO misses the point of using C++ over C. Basically, what is being advocated is empty constructor bodies because 99% of basic initialization can be done in the initializers list (and should be if Meyers is correct).

      And its not just RAII, if you should happen to create a temporary (generally avoided but sometimes quite useful) you can loose both the ability to report errors as well as the ability to move your initialization out of the constructor..

      RAII isn't just about memory management either. The applications I work on are heavily threaded. Using RAII type classes for lock/unlock not only solves the problems with unlocking things during an exception stack unwind, but it strongly encourages clear lock scoping. Its pretty amazing how many lock bugs can be removed through the use of just a few simple rules mostly enforced by the compiler.

      I think in the end people who decide exceptions are bad and 100% rule them out of a C++ project for religious reasons (rather then lack of run-time support) do themselves a disservice. It may not be immediately evident but over time it will be.

      Discouraging their use as a general error handling mechanism may achieve much the same goals without unduly obfuscating a code base.

    24. Re:Why does C++ matter? by Anonymous Coward · · Score: 0

      New guy?? Have you read the article, boy? Plus C and C++ is just one example...

    25. Re:Why does C++ matter? by Anonymous Coward · · Score: 0

      Haven't read the article, but I think that the 'point' is a proposal that the difference between C and C++ is purely objective (pun not intended) and that fermenting distaste for either one is illogical. The argument would then become that RMS is being illogical, which is supported by a single but provable premise.
      This is constructive because if RMS realizes that he is being illogical about C++ then he can use the same brain function to revise the rest of his epistemology in the appropriate measure.

      At least, that's how I imagine an ideal programmer would construct their 'I quit!' message.

    26. Re:Why does C++ matter? by 21mhz · · Score: 1

      That said, as someone who believes that objects represent things, and code them that way, I find myself starting threads, doing further resource acquisition, self registration, and all kinds of other things that _CAN_ fail in the constructors/destructors. To blithely ignore those problems, or follow every construction with a initialize/finalize type call IMHO misses the point of using C++ over C. Basically, what is being advocated is empty constructor bodies because 99% of basic initialization can be done in the initializers list (and should be if Meyers is correct).

      I advocate that too, with the proviso that the member initializer also does nothing significant except trivial initialization. I've seen it going bad where a constructor did blocking I/O in a basic UI window class.

      If you look at libraries like Qt, the construct/set options/use pattern is not as unnatural as its dumb application may seem. The split is usually like this: the constructor creates an empty or minimally usable object; setters allow it to be customized in a descriptive manner (as opposed to an arbitrarily ordered list of arguments in a constructor); then there is an action method telling what you want to do with the object. It's also still expected from the destructor to finalize any state associated with the object without any explicit finalization method needed, so not all of RAII's benefits are lost.

      RAII isn't just about memory management either. The applications I work on are heavily threaded. Using RAII type classes for lock/unlock not only solves the problems with unlocking things during an exception stack unwind, but it strongly encourages clear lock scoping. Its pretty amazing how many lock bugs can be removed through the use of just a few simple rules mostly enforced by the compiler.

      Any class designed to be used as a helper in automatic scope should be RAII indeed. But it's not a sufficient justification for using the pattern for arbitrarily passed values, where C++ just fails to provide adequate solutions out of the box.

      I think in the end people who decide exceptions are bad and 100% rule them out of a C++ project for religious reasons (rather then lack of run-time support) do themselves a disservice.

      No, it's precisely the bad run-time implementation and its integration with other language features. I have no problems using exceptions in Java, Python, or other runtime environments where they work.

      --
      My exception safety is -fno-exceptions.
    27. Re:Why does C++ matter? by bug1 · · Score: 1

      C is and will always will be more efficient with hardware than C++ (for equally skilled programmers). Its also true that hardware resources will only become cheaper, so that advantage becomes less and less meaningful.

      A lot of older programmers value hardware efficiency more the programmer efficiency, and younger programmers dont see the value in that.

    28. Re:Why does C++ matter? by Alioth · · Score: 1

      I find that file you cite very readable. It's well formatted, it's clear what the code is supposed to do etc., comments where necessary. Why do you think it's sarcasm?

      I'm not a kernel dev, btw. It is entirely possible that I find that file eminently readable because I read a lot of other people's perl scripts...

    29. Re:Why does C++ matter? by Anonymous Coward · · Score: 0

      No wonder MS loves C++...

      OvO hoot

    30. Re:Why does C++ matter? by Chris+Newton · · Score: 1

      C is and will always will be more efficient with hardware than C++ (for equally skilled programmers).

      Why would you say that?

      There’s always been a great deal of emphasis in C++ on not paying any performance penalty for features you’re not using. Using the roughly common subset of the languages should yield similar results either way.

      As far as the extra features in C++, I don’t see any reason to assume that (for example) a virtual function dispatch via a vtable in C++ should be less efficient than the old “look up a pointer in a jump table” techniques in C that serve a similar purpose. If anything, it should be the other way around, as the C++ compiler has a little more semantic information that it could potentially use to optimise the generated code for each target hardware platform.

    31. Re:Why does C++ matter? by narcc · · Score: 1

      Its also true that hardware resources will only become cheaper, so that advantage becomes less and less meaningful.

      I keep hearing this, yet it seems that hardware isn't keeping up its end of the bargain...

      (To clarify: Software seems to be getting less efficient at faster pace than hardware is getting faster and cheaper.)

    32. Re:Why does C++ matter? by wdef · · Score: 1

      Operator overloading can be a nightmare, it's a bad idea and it's needless: http://news.ycombinator.com/item?id=559976

    33. Re:Why does C++ matter? by Chris+Newton · · Score: 1

      I find that file you cite very readable. It's well formatted, it's clear what the code is supposed to do etc., comments where necessary. Why do you think it's sarcasm?

      Well, for one thing, it’s just code in a file. There is no obvious indication of how this code fits into the wider design of the program, because C doesn’t have much of a module/namespace system. (There are some comments right at the end that seem to be about build order dependencies, but it’s not clear to me what they are trying to achieve. I assume there is some sort of project standard that requires them.)

      Next, consider the first function, xor_blocks. It appears to take about 20 lines of code just to call one of four other functions based on how many entries are in an array that was passed in. A significant proportion of the code is only there because the input arrived as a void** and a count rather than a typed array. The rest is repeating essentially the same pattern of code almost verbatim four times. It’s not clear whether the four do_N functions are completely different algorithms or just the same algorithm using defaults if there aren’t enough inputs provided. In the former case, you could express the entire function in about five or six lines in numerous other mainstream languages, most of which would just be a look-up table identifying the required functions. In the latter case, the entire 20+ line function would probably be redundant in many languages. And I see no reason another language that can express this kind of logic without the overheads shouldn’t generate code behind the scenes that is still 100% as efficient as the example.

      A little further down, we start defining macros like BENCH_SIZE. When these are later used elsewhere, you can’t tell whether you’re working with a constant or a function call with side effects. (This is a big objection I have to complaints that C++ overloaded operators could do almost anything, coming from people who then argue that we should use C instead because everything is explicit.)

      That brings us to the second big function, do_xor_speed, in which we again encounter our ambiguous struct containing function pointers and void* parameters. This time, we also use a magic number, rely on (presumably) a global variable and implicit side effects for the main loop control logic, apparently try very hard not to let that loop be optimised in some unspecified way, and cause various implicit side effects on some other (I assume) global variable.

      The final major function, calibrate_xor_blocks, has similar issues, and further complicates things by interweaving local macro definitions that mean some of the code isn’t executed, or is executed but is immediately overridden anyway, as well as apparently obfuscating a simple function call behind another macro with a name that looks like a regular function itself.

      Now, I do realise that a lot of this is how a lot of industrial C gets written in practice. I also realise that there are few realistic choices for a low-level, systems programming language today, and none that I know of has much better readability than C. But that doesn’t negate the criticism that the C code has fairly horrible readability/maintainability properties compared to what could be achieved in a more expressive language.

    34. Re:Why does C++ matter? by Chris+Newton · · Score: 2

      I respectfully disagree. I’ve worked on heavily numerical code in both C++ and Java. Writing horrors like (a.Multiply(a).Add(b.Multiply(b))) instead of a*a+b*b gets old after about the first five minutes. Also, I’m still waiting to meet the programmer who will make those * operators do division just to trick me, yet who writes Multiply to do multiplication as we’d all expect.

    35. Re:Why does C++ matter? by drinkypoo · · Score: 1

      'd both be right. And that would be why GNU still doesn't consider itself to have a stable release. If you demand everything be done exactly perfectly you'll never even finish one thing

      Did you ever actually install and run the hurd? I did. They weren't anywhere near chasing perfection, they were still trying to make it useful.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    36. Re:Why does C++ matter? by cheesybagel · · Score: 1

      It's arguable most of the uses for it should be in the standard language implementation to begin with.

    37. Re:Why does C++ matter? by Anonymous Coward · · Score: 0

      I'm glad some people actually like living their corporate lives in a straight jacket... I for one, do not. It's called lowest-common denominator programming and it's what is wrong the world. If smoeone can't understand something, no can use it.

    38. Re:Why does C++ matter? by Anonymous Coward · · Score: 0

      You don't need such an elaborate explanation for why that code sucks. It suffices to say that it's way too long. In C++ you would have been able to write it in fewer lines without sacrificing clarity.

    39. Re:Why does C++ matter? by ais523 · · Score: 2

      Also, IIRC the ban on exceptions is because they had a lot of existing code that wasn't exception-safe and didn't want to break it, rather than because they think they're a bad idea in general.

      --
      (1)DOCOMEFROM!2~.2'~#1WHILE:1<-"'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"
    40. Re:Why does C++ matter? by bug1 · · Score: 1

      I say C++ is slower than C because; as more abstraction is placed between the programmer and the hardware, it gets more difficult for the compiler to achieve the same quality of code.

      C++ is Object Oriented, to do OO requires more abstraction, OO is used to make problems easier for Humans to understand, not to make it easier for hardware.

    41. Re:Why does C++ matter? by Anonymous Coward · · Score: 0

      I looked at the source file you linked. I have also looked at other chunks of the Linux kernel code for various reasons before. In my opinion, it *is* quite readable. It took me about 2 minutes to figure out what all of the code does. The Linux kernel is practically a textbook on how operating system kernels work, (or at least a very well tested, reliable, and ubiquitous variety of kernel.)

      I'm aware that one can do everything in C++ that one can do in C, but I agree with the notion that low-level behavior should not be hidden in kernel code. Nearly all kernel code necessarily describes low-level behavior. Hiding this low-level behavior is similar to making it default to whatever the compiler generates for generic circumstances. C++ was really designed to be more of an application programming language.

    42. Re:Why does C++ matter? by vilanye · · Score: 1

      You shouldn't be hiring people that are not polyglots and can not seamlessly move from language to language. Those that can't are not programmers, they are language X end-users, AKA API monkeys. Do not hire programming language end-users, hire programmers and your little what-if vanishes.

    43. Re:Why does C++ matter? by Anonymous Coward · · Score: 0

      Old manager guy: If we do it in C++ it means we have to keep C++ capable people on around.

      That argument would have made sense 20 years ago, but with each passing year it has gotten weaker and weaker.

      At this point in time, I believe that C/C++ programmers are at least as easy to find as programmers who know only C.

    44. Re:Why does C++ matter? by Anonymous Coward · · Score: 0

      I just read the standard. You should be writing ++C for Google.

    45. Re:Why does C++ matter? by Anonymous Coward · · Score: 0

      Your misperceptions are not a compelling argument.

    46. Re:Why does C++ matter? by bames53 · · Score: 1

      If an abstraction is being properly used in C++ then a C version program would probably be best with the same abstraction. If C++ has some language support for that abstraction which C lacks and which allows the program intent to be expressed more directly then there's no reason to imagine that whatever hand-built layers are used for that abstraction in C are necessarly going to be better than the more direct expression in C++.

      For example, if a program should use dynamic dispatch then a compiler is likely to do better optimizing C++'s virtual functions (using common techinques such as devirtualization) than it will do with some hand-rolled dynamic dispatch systen in C.

      The only way C comes out ahead is when comparing well written C to poorly written C++, e.g. a C program that properly does not use dynamic dispatch to a C++ program that uses virtual functions gratuitously.

    47. Re:Why does C++ matter? by ShakaUVM · · Score: 1

      >>I donâ(TM)t understand some of the arguments made against C++ by certain âoeelder statesmenâ of the OSS world. It seems they donâ(TM)t like some of the extra functionality available in C++, seeing it as overcomplicated or too readily able to hide behaviour. In itself, thatâ(TM)s a reasonable concern. But then they use C, and reinvent the same wheels using crude text substitution macros that could be doing or interacting with anything.

      This is a reasonable criticism. I started very heavy into object-oriented programming, but after I shot myself in the foot with it enough times, I started appreciating C a lot more.

      I still write in C++, since some of the added features just make life easier (like // comments), but my code looks very C-ish. I'll use objects when necessary, but I do my best to avoid anything that hides complicated behavior.

    48. Re:Why does C++ matter? by Saija · · Score: 1

      OMG you just bring back to my mind memories of my first Linux installs: a brand new copy of suse, can't remember the version, maybe 4 or 5, still have the companion book which have some yellow fractals on the cover.
      Good ol' times on '99...

      --
      Slashdot ya no es que lo era! ;)
    49. Re:Why does C++ matter? by bug1 · · Score: 1

      C has an advantage in corner cases due to the flexibility of its lower level.

      So if there is a need to use two separate abstraction layers, then a 'hand rolled' version might be able to find savings that a compiler wouldn't look for as its treating them separately for external reasons.

      But like i said initially, the benefits only get less meaningful with time.

      Programmer/team preference is way more important than any real technical difference between C and C++

    50. Re:Why does C++ matter? by swillden · · Score: 1

      Personally, I think your better off enforcing minimal use of exceptions, and solving the problem higher up at the architectural level with a transaction/thread cancellation model where any unusual exceptions are handed with one or two extremely high level catch routines.

      I agree, but this doesn't counter the argument laid out in the Google style guide, which boils down to "it's really hard to safely add exceptions into a large code base which wasn't written with exception safety in mind."

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    51. Re:Why does C++ matter? by swillden · · Score: 1

      I'm glad some people actually like living their corporate lives in a straight jacket... I for one, do not. It's called lowest-common denominator programming and it's what is wrong the world. If smoeone can't understand something, no can use it.

      What exactly are you referring to? Exceptions in C++? If so, did you actually read the rationale in the style guide? Its conclusion is that exceptions are a good thing on balance, but that retrofitting them onto a large code base (hundreds of millions of lines of code) which was not written to be exception-safe is not feasible. It's not a matter of being straight-jacketed, it's a matter of making appropriate engineering tradeoffs in a context where extreme scalability and reliability is a basic requirement, and agility is a critical business goal.

      "Lowest common denominator" is not a good description of the programming done at Google, BTW.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  5. Distaste of C++ by BenoitRen · · Score: 5, Insightful

    I knew about Linus Torvalds's distaste of C++, but not Richard Stallman's. What is it with open-source leaders and their irrational hate of C++?

    1. Re:Distaste of C++ by russotto · · Score: 5, Insightful

      I knew about Linus Torvalds's distaste of C++, but not Richard Stallman's. What is it with open-source leaders and their irrational hate of C++?

      It's not irrational, or at least probably isn't. C++ is a horrible language, and I say this as a professional C++ programmer.

    2. Re:Distaste of C++ by AliasMarlowe · · Score: 1

      irrational

      That word does not mean what you apparently think it means...

      --
      Those who can make you believe absurdities can make you commit atrocities. - Voltaire
    3. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      Probably because you have to hold the language's hand at every step.

    4. Re:Distaste of C++ by Anonymous Coward · · Score: 5, Funny

      My distaste of C++ cannot be expressed as a fraction.

    5. Re:Distaste of C++ by BenoitRen · · Score: 1

      Most professional code is horrible, so I don't think that lends any weight to your opinion.

      I find "C++ is horrible" to be an opinion that has become easily parroted.

    6. Re:Distaste of C++ by Animats · · Score: 5, Interesting

      C++ is a horrible language, and I say this as a professional C++ programmer.

      C++ stands alone as the only major programming language with hiding but without memory safety. Strostrup is in denial about this, which prevents fixing the problem.

      Templates don't help. Trying to make templates into a compile-time programming environment results in a language that makes Perl look readable. Just because templates are a Turing-complete term-rewriting system doesn't mean you want to use them that way. Papering over the safety issues with templates doesn't help; the mold always seeps through the wallpaper. Usually at system calls that demand raw pointers.

      (Somewhere in the 1980s, low-level programming took a wrong turn. We had Pascal, the Modula family, and Ada. Things seemed to be getting better. Then Modula crashed and burned along with DEC, and Ada declined due to its bulk and overly expensive compilers. We all had to go back to C. That we're still stuck there is embarrassing. It's probably the worst major engineering standard since the British buffer-and-chain coupler from 1830 still in wide use.)

    7. Re:Distaste of C++ by thsths · · Score: 4, Insightful

      > I knew about Linus Torvalds's distaste of C++

      And for good reason, C++ in kernel space is a recipe for disaster. Some parts of it may be useful, others would be highly inappropriate.

      > What is it with open-source leaders and their irrational hate of C++?

      There is nothing irrational about it. C++ is one of the most powerful compiled languages ever conceived, but it is very ugly. It also supports just about any programming paradigm, badly, making the choice between them especially hard. Every other language out there has more focus and more style, except maybe perl.

    8. Re:Distaste of C++ by BenoitRen · · Score: 3, Insightful

      Yes, it does:

      • 1. without the faculty of reason; deprived of reason.
      • 2. without or deprived of normal mental clarity or sound judgment.
      • 3. not in accordance with reason; utterly illogical: irrational arguments.
      • 4. not endowed with the faculty of reason: irrational animals.
    9. Re:Distaste of C++ by TheRaven64 · · Score: 2

      As a C++ programmer, you don't hate C++. You only truly hate the language after trying to implement it and reading the ambiguous, informal description of it that they have the cheek to call a specification.

      --
      I am TheRaven on Soylent News
    10. Re:Distaste of C++ by Trepidity · · Score: 5, Interesting

      If anything, the dislike for C++ from people who use C++ regularly is much deeper than the more casual dislike that C programmers have. C programmers just think C++ is too complex and unnecessary, but C++ programmers find themselves so consumed by their dislike they end up doing things like writing a point-by-point rebuttal to the entire C++ FAQ.

    11. Re:Distaste of C++ by PhrostyMcByte · · Score: 4, Interesting

      What is it with open-source leaders and their irrational hate of C++?

      I don't think it's irrational. It's just for different reasons than many individuals may have.

      It is perfectly possible for someone extremely competent in C++ to write code that someone else, with an equal level of knowledge and experience, can't make heads or tails of without some serious review time.

      And then there's an additional problem that, because C++ is such a complex language, it's possible for people with more experience to write better code that people with less experience simply can't yet understand. And by less experience, I mean someone who understands the problem and the general solution, but only has 5 years of heavy C++ use. This problem of pure language complexity and a huge ramp-up time may not be unique to C++, but it's something C does not really suffer from.

      I say this as someone who absolutely loves C++ and uses it daily. I love the complexity. I love to play around with templates to do some micro-optimization that I'd probably never put in live code. But I must say, the idea of being a maintainer -- reviewing and committing a diverse set of patches like Linus has to do -- for a C++ project sounds incredibly daunting for the reasons given above.

      Often, this leads to atrocious usage guidelines that significantly hamper the flexibility and power of the language in an attempt to make it more accessible.

    12. Re:Distaste of C++ by BenoitRen · · Score: 1

      I take it this means that you don't like C++ because it doesn't babysit your memory usage? If you add memory safety it would lose compatibility with C and lose a lot of its power.

    13. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      The best that I can think of: C is small, and C++ is big. Who wants to use C++ with its pathetic excuse for type safety when you could use C just as easily? More to the point, why would you use a full-fledged string class and a gigantic I/O streams library for tools that perform jobs of relative simplicity? I'm not saying the code to do it is simple or trivial, but it's like using a battering ram to open a locked door when the key in your pocket would be much faster and more efficient. Aside from that, if you're using C++, it's tempting to use more like the new library to do all of the grep processing. Then you have a larger and slower program. Stroustrup would disagree but that's because of the implementation or OS limitations. The reality is that you can't keep going with a big program. Small and fast is good. Big and slow is not.

    14. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      Templates don't help. Trying to make templates into a compile-time programming environment results in a language that makes Perl look readable.

      The nice thing about templates is that most programers do not have to write templated classes, they can use existing ones or just continue to write template fee code. Now compare the template classes provided by c++ to their c alternatives:

      need a stack? write your own
      need a list? write your own
      need a deque? write your own
      need to sort objects with qsort? void* and casts are your friends
        and repeat this for every type you need them for (excluding define and header hacks that make templates look reasonable).

      Templates are great for solving the problem they where intended to solve, everything else is just a feature few people will have direct contact with.

    15. Re:Distaste of C++ by mwvdlee · · Score: 1

      What is it about C++ that using just the C parts from it still makes it horrible?
      Every programming language has bad parts; use the parts that aren't bad.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    16. Re:Distaste of C++ by PhrostyMcByte · · Score: 3, Interesting

      And for good reason, C++ in kernel space is a recipe for disaster.

      I hear this fairly often, but never with any compelling argument behind it. What parts of C++ wouldn't work well for kernel-mode, exactly? How are these specific parts, combined, enough to give a blanket "recipe for disaster" statement?

      The one poor argument I've heard is that some C++ features requires runtime support, and people seem to think this runtime support is some user-mode voodoo that is impossible to implement in kernel-mode. Which is complete nonsense.

      I've written drivers (albeit for Windows, not Linux), and I'm a bit of a language lawyer when it comes to C++. I can't say I've ever encountered a problem in kernel-mode where I thought C++ wouldn't be able to do the job. And not with some crappy subset of it, either. I mean full-blown, properly-used C++.

    17. Re:Distaste of C++ by larry+bagina · · Score: 1

      Bjarne Stroustrup is the father of c++. If you go read his interviews about why he created c++, you'll see that he hates C. But C was popular so he built C++ on top of it. Think about that. If you married a girl and told her she's fat and ugly and you only married her because her dad's rich.. that might upset her.

      Think about that and some of the C++ design decisions take on a new light. For example, std::auto_ptr (deprecated in c++11) didn't work with arrays because you should use std::vector instead. But you need that array for C interoperability or better performance? Well fuck you. That said, c++11 is much nicer but it's still moving further and further away from C.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    18. Re:Distaste of C++ by darkHanzz · · Score: 4, Interesting

      On the other hand, it's the only mainstream language I know that supports both very low-level and very high-level programming style. This can be a real plus for compute intense signal processing, were a small minority of the code really requires low-level implementations. Being able to mix that with high-level abstractions (e.g. linear algebra factorizations) can give both efficient and maintanable code.

    19. Re:Distaste of C++ by VortexCortex · · Score: 5, Interesting

      Agreed. There are edge cases in the language where the bolted on features don't work together because the implementation issues weren't fully considered before the feature was adopted, and efficiency is a higher priority that not having exceptional cases in syntax. Since most of the language works with itself you only develop this hatred if you've got experience in other nicer languages with syntax isn't broken in places, or until you've mastered the language and been prevented from using it by its own design. The crux of the problem is two fold: C++ tries to distance itself from implementation details, while accepting implementation details as limitations for language constructs (polymorphism + multiple inheritance + template class + method & operator overloading == uninstantiated functions and indeterminate or uncompilable code) C++11 has addressed some of this, but IMO the language just isn't complete! Furthermore the strain is compounded due to C++ being forced to squeeze the substance of its syntax out of the meager scraps of symbol space left over from the voracious host language, C (without support for which the language would have never seen widespread adoption).

      Thus, the hatred graph is like a bathtub curve: It seems irrational to those intermediately knowledgeable about the language, but perfectly sane to many new comers and seasoned veterans of C++. A large amount of adoption is due to ease of code migration from C to C++, as opposed to say, Java, and is thus won on no real merit of the language itself, but by it's martyrdom at the altar of compatibility with C. Many of the C to C++ converts never "move the furniture", so to speak, and thus the missing paneling in the corner or dark stains under the rugs is never known to them.

      That said, I still use the language, it has its merits, but never all of its features at once -- That's impossible, unlike with most every other language that exists. This is where the hatred has its roots.

      Imagine a great Enchantresses who can open their spell book and can command the full fabric of her reality, then imagine a Powerful C++ Wizard who's book of spells has contradictory elements and seemingly arbitrary restrictions based only on the syntax of the spell definitions, they've each trained a mighty Sorcerer who's now well versed in both arcane books of magic, and its his turn to take on an apprentice. The sorcerer advises against C++ for the most serious of wizardry since more elegant alternatives exist. However, the young apprentice can't fathom why... The simple C++ spells she learned seem to work fine, a natural extension of the C illusionist lessons she learned; Did not re not her object oriented magic of mops and buckets allow cleaning the kitchen floors with any sort of bucket and mop? It's unthinkable that this spell shouldn't be applied to every floor -- NAY -- every surface and abolish cleansing chores forevermore... Soon the Sorcerer arrives to dispel the tangled templated abominations of multi-inherited broom-mop-bucket hybrids so overloaded they're smashing stacks of dishes with their many scrubbing appendages, and overflowing the tower with heaps of infinite buckets.

    20. Re:Distaste of C++ by PhrostyMcByte · · Score: 2

      +1. High-level features are not mutually exclusive with low-level ones. C++ being "unsafe" in some areas is not something people are in denial about -- it is a purposeful tradeoff for providing unbeatable performance when you need it.

      Want more safety? Performance not an issue? There are better languages for those cases than C++, and it's a programmer's prerogative to use them, not a standard body's job to adapt the language for something it isn't intended for.

    21. Re:Distaste of C++ by Animats · · Score: 2

      C++ being "unsafe" in some areas is not something people are in denial about -- it is a purposeful tradeoff for providing unbeatable performance when you need it.

      This is widely believed, but wrong. You don't have to go all the way to garbage collection to get memory safety. Most of the problems with buffer overflows stem from the language design concept that the language usually has no clue about how big an array is. If the compiler knows about array sizes, it can not only check them, it can optimize the checking. Bolt-ons via templates or macros can't do that efficiently.

    22. Re:Distaste of C++ by maxwell+demon · · Score: 1

      It also supports just about any programming paradigm, badly, making the choice between them especially hard.

      So C++ is bad because it doesn't force you to use a specific paradigm? I'd say that's one of the strengths of C++. Yes, it means you have to think more. But I don't consider that a ad thing. Especially if the forced paradigm would lead to suboptimal code because your problem (or worse, just part of your problem) is more naturally described in a different paradigm. Or you'd be fighting the other language to make your code fit (like in Java building pseudo-classes only to hold "global" functions which cannot be global just because the language doesn't allow it).

      Note that I don't claim that C++ doesn't have its problems (the most important one being its overly complicated syntax, which in large parts comes from being compatible with C, but in some parts also comes from bad decisions in C++-specific features). C++ is definitely not the best language possible. but its advantages over the existing languages (at least those I know) are large enough to make it still better than those despite its problems.

      Especially in my view the languages which start with the expressed goal of improving on C++ (at least those I know) throw out the baby with the bathwater. Which is a shame because C++ could win a lot if properly redesigned without the compatibility baggage (both to C, and to earlier versions of C++).

      --
      The Tao of math: The numbers you can count are not the real numbers.
    23. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      C++ stands alone as the only major programming language with hiding but without memory safety.

      Someone is clueless about many things regarding C++, including RAII and the fact taht C++ supports garbage collection for ages now.

      Clueless criticism: how does it work?

    24. Re:Distaste of C++ by betterunixthanunix · · Score: 1

      Want more safety? Performance not an issue? There are better languages for those cases than C++,

      There are also better languages if you want both safety and performance.

      --
      Palm trees and 8
    25. Re:Distaste of C++ by maxwell+demon · · Score: 1

      But if you build custom structures using macros on top of C (and if you look at the gcc source code, you'll find they did that a lot), you'll be no better off. Instead of learning advanced C++, you'll be learning advanced project-specific macro-based structures.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    26. Re:Distaste of C++ by YurB · · Score: 3, Informative

      Linus doesn't like C++ because he's a kernel programmer. It's important to him what the CPU actually does, i.e. what machine code gets produced (more or less). RMS may not like C++ because he's from the old generation of programmers who were dealing with all the slow and big machines and for whom object oriented programming may seem just too abstract, too conceptual and far from the machine code... RMS also likes Lisp more than Python, and Lisp is also a very old language.

    27. Re:Distaste of C++ by innocent_white_lamb · · Score: 2

      Do yourself a favour and take a look at glib. God's gift to C programming -- the string handling alone is worth its weight in, well, gstrings...

      --
      If you're a zombie and you know it, bite your friend!
    28. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      The main problem is that C++ is really it's OWN language, and needs to be treated like that, rather than an upgrade to just bolt on what you want. Being a superset of C, it never really REMOVED the dangerous stuff, nor forced programmers to use the new stuff CORRECTLY. So the majority of programmers using it either strip it down to be "like C" or horribly misuse the most important functions leading to "rat's nests" of code that's just C+ (without the extra "+")

      As much as people love to hate it, the upgrade to C and C++ was Java. But even then Java tried too hard to be "everything" and got bogged down under bureaucracy of reinventing the wheel in various toolkits.

    29. Re:Distaste of C++ by Kjella · · Score: 2

      +1. High-level features are not mutually exclusive with low-level ones. C++ being "unsafe" in some areas is not something people are in denial about -- it is a purposeful tradeoff for providing unbeatable performance when you need it. Want more safety? Performance not an issue? There are better languages for those cases than C++, and it's a programmer's prerogative to use them, not a standard body's job to adapt the language for something it isn't intended for.

      The problem with that argument is that 90%+ of any given application is not performance critical. In many cases I'd argue almost none of the code is performance critical because the limitation sits between the keyboard and the chair, particularly when it comes to writing desktop apps like KDE, Gnome, Firefox, OpenOffice and so on. Far from all tings are critical on the back end either, as long as they get done on time. C++ is like using a scalpel all the time because it's a damn sharp knife, which probably works but it's not practical for anybody, not even trained surgeons. Speaking of better languages, what choices are there for writing something like KDE or Gnome? Java? C#? ObjectiveC? Or something entirely different? It's easy to find faults with C++, it's a bit harder to see the better alternative.

      --
      Live today, because you never know what tomorrow brings
    30. Re:Distaste of C++ by Xordin · · Score: 1

      Totally agree. I've maintained a couple of C++ codebases in my time. It would take weeks to expand my C++ knowledge to where I could understand the favorite language patterns of the old maintainer.

      Running old C++ code through Valgrind is hilarious. It's hard to believe how many things even experienced C++ coders get wrong.

    31. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      I come from MANY years of C (and assembly) programming, and I think C++ is all but horrible.
      When you write C the "right way", you end up basically manually coding, what C++ gives you automatically.
      You end up having a "create" function, doing the resource allocations, and returning an pointer, to something you then provide a few APIs to interact with. And you also provide a "free" function when you done with it.
      Maybe if you want to "hide" the internals of you object, you return an "handle" or a void*.
      All these abstractions are embedded in the C++ language, which provides also automatic stack unwinding and local object cleanup.
      Many people flag C++ as bad, simply because they do not know it in detail, and they do not have any idea of the machine code the compiler actually generates upon certain constructs. A `gcc -S` once in a while can shed some light. C++ compiler code generation improved quite a bit in the last 15 years.
      Admittedly, there are certain parts of C++ which can generate some WTF moments, which is heavy template meta-programming, which is the part where C++ can take a distinct departure from some of the C core way of thinking.

    32. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      std::vector is implemented as an array "under the hood." Why can't you just grab a pointer to the first element of the vector and treat that as your pointer to your array?

    33. Re:Distaste of C++ by Xordin · · Score: 5, Informative

      Reading Linux Torvalds on C++ might be instructive:
      http://harmful.cat-v.org/software/c++/linus

    34. Re:Distaste of C++ by greg1104 · · Score: 1

      Supporting C++ requires more complexity out of the compiler and the runtime libraries you're linking with. Since bugs are proportional to complexity, you're suffering from those even if you only use the C features. Using a more complex language should come with some payback, an improvement in productivity that is greater than what you're paying in overhead. Whether C++ really has such a net gain in productivity is obviously controversial.

    35. Re:Distaste of C++ by TrekkieGod · · Score: 5, Interesting

      If anything, the dislike for C++ from people who use C++ regularly is much deeper than the more casual dislike that C programmers have. C programmers just think C++ is too complex and unnecessary, but C++ programmers find themselves so consumed by their dislike they end up doing things like writing a point-by-point rebuttal to the entire C++ FAQ.

      I think they're just more vocal. Not everyone hates C++. My job involves writing in C, C++, and C#. I love C++. In my ideal world, I'd have C++ with all the .net libraries (and no, managed C++ isn't that. C# is far preferable to writing in managed C++, as C# is actually a pretty good language and managed C++ doesn't give you any of the cool features of C++ that C# doesn't have).

      I find people's arguments against C++ to be quite illogical. For example, one of the reasons I really like the language is because it can do true multiple inheritance. People everywhere will then immediately correct me with, "multiple inheritance is bad, mmk?" Then they'll back up that statement by talking about the diamond problem, and how I should use interfaces. I do use interfaces, but they're not a replacement for multiple inheritance because it's still forcing me to duplicate code when I wouldn't otherwise have to. Besides, the language handles the problem in a reasonable way (the order in which you define the inheritance matters), and, as a programmer, if you're inheriting from two classes that have a method with the same signature, then those methods should be virtual, and you should override the method to do exactly what you want. The diamond problem isn't this beast for which there is no reasonable solution. It's just something you need to be cognizant of when coding.

      There's also the people who complain about all the incredibly hard to debug crazy stuff people do with templates. You're really just complaining about bad coding. Templates allow you to build more reusable code than generics, and that's how you should use them. If you're going beyond that just because they're turing complete and you can do more with them, well...you might as well complain about C after looking at last year's winner of the obfuscated C contest.

      --

      Warning: Opinions known to be heavily biased.

    36. Re:Distaste of C++ by Xordin · · Score: 1

      For a reasoned distaste of C++, see:
      http://yosefk.com/c++fqa/defective.html

      A proper distaste of C++ is best acquired by taking over a legacy C++ project.

    37. Re:Distaste of C++ by Xordin · · Score: 1

      It's impossible to use templated code (even "well tested" code like the STL) without having to debug template issues yourself.

      Even std::list is so unbelievably tricky to use that writing your own C list would give you better quality.

    38. Re:Distaste of C++ by Kawahee · · Score: 3, Interesting

      It sounds like you have more experience than myself, but after reading the below article I was of the opinion that C++ in a kernel is not a good idea right now.

      C++ for Kernel Mode Drivers: Pros and Cons

      The advice seems somewhat relevant for platforms other than Windows.

      --
      I'll subscribe to Slashdot when I see a month without a dupe, a typo, or an article the "editors" didn't read.
    39. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      mindless fuckwads find themselves so consumed by their hateful delusions they end up doing things like writing a point-by-point rebuttal to the entire C++ FAQ.

      FTFY

    40. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      > I knew about Linus Torvalds's distaste of C++

      And for good reason, C++ in kernel space is a recipe for disaster.

      There are plenty of languages that aren't appropriate for use in the kernel, but that's no reason to hate them in general.

    41. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      To me, comparing C++ to one of the academic favorites (which will be replaced by another flavor of the month a few years down the road... remember when Scheme was the 'it' language among the cognoscenti?) is like comparing a big city like New York with a quaint bedroom suburb catered to the upper middle class. Yes, the big city has big problems, and lots of parts that don't quite fit together. It also has more going for it, and more people using it for bewildering varieties of purposes, than the chic town will ever have.

    42. Re:Distaste of C++ by betterunixthanunix · · Score: 1

      Every programming language has bad parts; use the parts that aren't bad.

      That would mean, as a first step, not using pointers. Which would rule out something as simple as hello world.

      --
      Palm trees and 8
    43. Re:Distaste of C++ by Anonymous Coward · · Score: 1

      Then use std::array or std::vector

    44. Re:Distaste of C++ by webmistressrachel · · Score: 2

      Which ones are they then? Head up the performance axis (away from safety) and we get assembly or binary. Head down (toward safety) and we get, errr, vb and javascript?

      Name these languages that offer more performance AND safety than C++, or GTFO. And I'll get modded troll for calling a spade a spade with your bull.

      --
      This tagline was transcoded to result in at least one smirk. If you experience failure to smirk, please consult your Gen
    45. Re:Distaste of C++ by celle · · Score: 4, Funny

      " the string handling alone is worth its weight in, well, gstrings..."

            If they're empty gstrings that's not saying much.

            capcha: adorable

    46. Re:Distaste of C++ by innocent_white_lamb · · Score: 1

      A gstring automatically resizes itself to fit anything that you want to put into it! (Check the documentation for details.)

      Incidentally, glib can be used independently from Gnome and the like.

      --
      If you're a zombie and you know it, bite your friend!
    47. Re:Distaste of C++ by betterunixthanunix · · Score: 3, Interesting

      When you write C the "right way", you end up basically manually coding, what C++ gives you automatically.

      In C++, you still have to do things by hand that other languages give you automatically (and in ways that need not be the case). For example:

      • Multiple dispatch
      • Dependent types (templates get you 1/100 of the way there)
      • Continuations
      • Handling correctable errors (there is no real mechanism for saying, "OK, I fixed the problem, now you can try the operation that caused the error")
      • Embedded languages (operator overloading gets you 1/100 of the way there on this one as well)
      • Partial evaluation
      • Currying
      • Pattern matching / unification
      • Invoking the compiler at run time

      ...and that is not even an exhaustive list. Some of these features are related to each other; for example, continuations make error recovery a non-problem. The lack of a powerful macro system and the enormously complex grammar make it hard to implement these features without modifying your C++ compiler, which is very much non-trivial (compare to Lisp, where new features can be added via the macro system; this is how object oriented programming was first added to Lisp).

      The standards committee missed its chance to really make C++ competitive against modern languages with C++11. I suspect they will miss the mark again in C++14, and probably in C++17 as well. Eventually C++ is going to die, because programmers will be less concerned with things like compatibility with the error-prone and incomprehensible programming techniques of the 1970s and more concerned with solving bigger problems and writing reliable code (I seriously doubt that C++ will be a winner in healthcare systems; there is just too much working against C++ there, and too little in its favor).

      --
      Palm trees and 8
    48. Re:Distaste of C++ by cats-paw · · Score: 1

      not too mention SML which is a really nice language to use for large projects.

      it's amazing how pervasive C still is.

      --
      Absolute statements are never true
    49. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      Someone is clueless about many things regarding C++, including RAII

      A bit late for CS freshmen to pop up online for the first time, isn't it? September was three months ago.

    50. Re:Distaste of C++ by mvdwege · · Score: 1

      How about Ada?

      --
      "I know I will be modded down for this": where's the option '-1, Asking for it'?
    51. Re:Distaste of C++ by betterunixthanunix · · Score: 1

      OCaml comes to mind; FFTW was written in OCaml. Lisp also comes to mind; CL-PPCRE outperformed libpcre (C, not C++, but how exactly would C++ help speed up regular expression parsing?). Both languages are safer than C++ (in many sense of the word "safe"), and both perform on par with C++ (unless the programmer is ignoring performance).

      Really, your one-dimensional view of performance versus safety is simplistic and, well, one-dimensional.

      --
      Palm trees and 8
    52. Re:Distaste of C++ by maxwell+demon · · Score: 1

      I think C++ is all but horrible.

      Judging from the rest of your comment, I don't think you think that. C++ being "all but horrible" would mean C++ being almost horrible. What you obviously mean is C++ being not at all horrible.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    53. Re:Distaste of C++ by maxwell+demon · · Score: 1

      Because that way you'd not get the ownership transfer semantics of auto_ptr. And of course if you tried to use that pointer with auto_ptr, you'd be firmly into trouble.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    54. Re:Distaste of C++ by ewibble · · Score: 1

      I agree with the comments these features would be valuable additions to C++, but this does not make it any worse than C which I assume RMS uses. Templates while by no means perfect are a vast improvement from passing around void *. As with any feature care needs to be taken to use them appropriately.

      I think the argument is they won't even move to C++, I have had this problem trying to convince people at my work to switch, C++ isn't the best language for the job but at least it is a little bit of progress, for goodness sake you can even write the exact same code as in C.

      Also why is hiding an memory safety linked, C is lacking in memory safety just as much as C++, maybe even more so you can't even append to a string in C without worrying about memory.

    55. Re:Distaste of C++ by maxwell+demon · · Score: 1

      While there are indeed many things which could be profitably added to C++ (I don't agree about all items on your list, though; for example I'd hate it if every program compiled with C++ had to include a C++ compiler), remember this is about people who prefer C to C++. C gives you not a single of the items on your list.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    56. Re:Distaste of C++ by phantomfive · · Score: 1

      If you add memory safety it would lose compatibility with C and lose a lot of its power.

      That C compatibility is overrated. Every language, Java, TCL, Perl, Python, C#, etc. has a mechanism for calling into C code.

      C++ can theoretically be mixed with C in the same file, but in practice no one actually does that. We all write C in our .c files, and C++ in our .cc files, and call back and forth.

      --
      "First they came for the slanderers and i said nothing."
    57. Re:Distaste of C++ by phantomfive · · Score: 1

      Name these languages that offer more performance AND safety than C++

      Heck, even Java can be safer and more performant if you call into JNI for the tight loops. C++ attempts to optimize all the wrong things. C++ wasn't made for efficiency; if you want to make an efficient C++ program, you will inevitably use a subset of C++, though figuring out which subset to use will be hard, and may vary from compiler to compiler. Why would you do that to yourself?

      --
      "First they came for the slanderers and i said nothing."
    58. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      I use the parts of C++ that aren't bad. I call them "C".

    59. Re:Distaste of C++ by russotto · · Score: 2

      The problem with that argument is that 90%+ of any given application is not performance critical. In many cases I'd argue almost none of the code is performance critical because the limitation sits between the keyboard and the chair, particularly when it comes to writing desktop apps like KDE, Gnome, Firefox, OpenOffice and so on.

      This sort of reasoning is what gets us bloated and slow desktop apps.

      Far from all tings are critical on the back end either, as long as they get done on time.

      Except that CPU you're wasting is CPU you can't use for other things. It's expensive to build a data center twice as big because your code performs poorly.

    60. Re:Distaste of C++ by Rockoon · · Score: 1

      I'm not going to sit here and pretend that multiple inheritance is good or bad, because quite frankly thats not the point. I am also not going to pretend that templates are good or bad, because that too isnt the point.

      The real question is "are these things done well?"

      I'll tackle the templates vs generics.

      C# generics surely has some warts on it, but what C# generics does do it also does well. A specific and quite well defined re-use problem was tackled in a highly simple and competent manner.

      C++ templates on the other hand.. it seems like the specific and well defined problem templates tackle is the problem of people speaking negatively about C++ with regards to re-use problems. "this solves that problem once and for all.. ONCE AND FOR ALL!!"

      Templates solve the re-use problems in the same way that physics solves my wreath hanging problem.

      --
      "His name was James Damore."
    61. Re:Distaste of C++ by mwvdlee · · Score: 1

      Pointers are only difficult if you use pointer math. Just treat them as references like you would in Java and C#.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    62. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      I know you were trying to be funny, but 400/3 is also a fraction. They're not limited to the 0..1 range.

    63. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      If you make C++ memory safe you've also removed the main reason to have a language like C++ in the first place. If you said that C++ should have a nicer and larger safe subset then I'd agree with you. Your criticism is like saying that knives should fix that "can cut things" problem because it's dangerous. It's both dangerous and the main feature all at the same time.

    64. Re:Distaste of C++ by Kjella · · Score: 4, Interesting

      This sort of reasoning is what gets us bloated and slow desktop apps.

      No, it's what keeps people from ever getting around to fixing those issues because they're still busy chasing down application crashes and memory leaks, combined with a fear of throwing out bad code in favor of new code with equally severe bugs. Do any kind of profiling and you will see it's all long tail, a few sections of code are called extremely often and the rest rarely if ever during normal operation as they're error handlers and such.

      Except that CPU you're wasting is CPU you can't use for other things. It's expensive to build a data center twice as big because your code performs poorly.

      More expensive than the time and cost spent developing, maintaining and dealing with the fallout of bugs in your high performance delicate code? And again it's the long tail, you probably have 10% of the software you use taking 90% of the capacity leaving 10% for the other 90%. Even if their execution time doubled you'd need 110% capacity, not 200% capacity. All I'm saying is write your slow code as clean, safe and maintainable as possible and optimize the few things that really matter.

      --
      Live today, because you never know what tomorrow brings
    65. Re:Distaste of C++ by gnasher719 · · Score: 1

      It is perfectly possible for someone extremely competent in C++ to write code that someone else, with an equal level of knowledge and experience, can't make heads or tails of without some serious review time.

      That person would be extremely competent in C++, but totally incompetent in software development. And yes, I've seen some of those.

      I have written bits of C++ code (not many) that are totally non-obvious and hard to understand. But only if I had a very good reason, and only with documentation added why this was done and how it works.

    66. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      Why? He knows more than anyone about kernels, but on the C++ side he's got not a clue in the world. Can't blame him, he's far too busy, but the fact stands.

      Microsoft OTOH has a much more sound story about C++ in drivers, where you can clearly see that the whitepaper author knew a lot more about C++, and still could tell a IRQL and a IRQ apart. Basically, kernel-mode C is not ISO standard C, but uses a lot of extensions. This prevents silly errors as your page fault handler being paged out. Those same extensions are not available to C++. Sure, having an OO model of filesystems is nice, and a caller of FileSystem::Read really doesn't need to know whether you have an Ext3FileSystem or an Ext4FileSystem , but if the vtable is paged out you're dead.

      Exceptions have similar issues; unwind tables better not be paged out either. Templates OTOH are a huge improvement even in kernels. How many linked list implementations are there in the Linux kernel?

    67. Re:Distaste of C++ by PhrostyMcByte · · Score: 1

      None of the C++ features listed in that link are inherently incompatible with kernel-mode. They're all simply a lack of support in the compiler to target the environment.

    68. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      He is talking about using it for git or system-level stuff. And he's probably right there. But just the STL alone make C++ useful in application level code.

    69. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      I knew about Linus Torvalds's distaste of C++, but not Richard Stallman's. What is it with open-source leaders and their irrational hate of C++?

      It's not irrational, or at least probably isn't. C++ is a horrible language, and I say this as a professional C++ programmer.

      Agreed.
      Briefly speaking, C++ is a language that itself needs to be re-factored.
      By the way, C and C++ plays different role, C can be viewed as a portable assembly, while I don't think C++ is suitable for this purpose.

    70. Re:Distaste of C++ by Dixie_Flatline · · Score: 1

      I've been programming professionally in C++ for ten years, and I'll be the first to admit that I stay away from a lot of the so-called 'powerful' features. In fact, in the games industry, we tend to stay away from that stuff in general. It's the nature of systems that have a lot of churn, both in features and maintainers. An engine is pretty old if it's five years old. Ten years (which I've seen) is really the limit of usefulness. The code needs to run fast, be debugged quickly and under pressure, and be reliable. So we use a fairly limited subset of the language.

      But I still don't like it. My problem with it stems from two things (which is kind of just one thing):

      1) There's a lot of discovered functionality; and
      2) The specification is huge and difficult to implement properly.

      The first is actually a result of the second, and that mostly comes down to templates. Template meta-programming wasn't intended. It's interesting stuff that's an accidental result of making a Turing complete language and bolting it onto the side of the primary language. And frankly, it's a solution to a problem that never should have existed in the first place. The things that templates do have been implemented in other languages before.

      But that second point is the real kicker. I remember when the C++ standard was confirmed to NOT have a bad recursion in it. That was just around ten years ago, and it's a story I remember reading here. But what I also remember is that professional compiler writers were showing up and commenting about how insane the spec is. They often set out to make a perfect compiler that implemented everything, but they always gave up after tearing out their hair and going half insane.

      To me, that's a huge issue that sits in the back of my mind. How good can a language be if the specification isn't understood BEFORE the compiler is written? How well implemented is the compiler that I'm using? How far can it be trusted?

      I'm no great shakes as a compiler programmer—I've only implemented one that was a limited subset of pascal, in my university days—but I'm confident that given some time and impetus, I could actually write a C compiler that worked. I can basically guarantee that I'd never be able to do the same with C++. And is the increase in expressive power sufficient to make me believe that the trade-off is worth it? Obviously C can go a long way on its own.

      At the end of the day, it's usually the algorithms that make the difference, and most of us can make a go of it in any language. But philosophically, I really just can't get behind what C++ is.

    71. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      The hilarious part is that the C/C++ runtime generally DOES know how big a given array is, because usually you either (a) allocated the array explicitly at compile time (e.g. uint32_t array[5]), so obviously the compiler should know how large it is, or (b) allocated the array exactly at runtime with malloc (e.g. uint32_t * array = malloc (sizeof(uint32_t)*5)) and the runtime needs to keep track of that size so that it knows how much memory to free when you later call free on the same pointer. The number of times you're dealing with a different array than either of these cases is negligible.

      But fuck you, this is C/C++, so deal with it yourself, right?

    72. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      Not even infinity / 1?

    73. Re:Distaste of C++ by smash · · Score: 1

      Typically, 90% of CPU time is spent in 10% of the code.

      If you shave 10-20% off 10% of the runtime of your app, you have made a 2% improvement. At what cost? Often readability, maintainability, etc. Not to mention going through 90% of the code in the app to shave that 10-20%.

      1-2% is not worth it. Profile. Optimise hotspots. Premature and/or un-necessary optimisation is BAD. You don't see game programmers writing the glue code in assembly any more either.

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    74. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      When I read this part:

      C++ is a horrible language. It's made more horrible by the fact that a lot
      of substandard programmers use it, to the point where it's much much
      easier to generate total and utter crap with it. Quite frankly, even if
      the choice of C were to do *nothing* but keep the C++ programmers out,
      that in itself would be a huge reason to use C.

      I am reminded of Max Planck's famous quote: "Science advances one funeral at a time."

    75. Re:Distaste of C++ by russotto · · Score: 1

      Do any kind of profiling and you will see it's all long tail, a few sections of code are called extremely often and the rest rarely if ever during normal operation as they're error handlers and such.

      That's exactly the opposite of long tail. Long tail means the tail as a whole is significant, though any given item in it is quite small.

      More expensive than the time and cost spent developing, maintaining and dealing with the fallout of bugs in your high performance delicate code?

      Yes. Because high performance code doesn't necessarily have to be "delicate". It does mean you can't copy objects around willy-nilly because you're afraid of mutability (functional languages, I'm looking at you). It means you probably don't want a garbage collector -- and if you do, you have to be just as careful about memory allocation as if you didn't, which kind of defeats the purpose. It means you can't just call std::do_something (or your language's equivalent) unless you know that std::do_something has decent performance for your class, which probably means you need to know more about its implementation than you'd prefer. You also have to know more about your compiler than you'd like, making sure you give it opportunities to optimize.

      Sometimes you do need to resort to fragile and/or nonstandard tricks, but not often.

      All I'm saying is write your slow code as clean, safe and maintainable as possible and optimize the few things that really matter.

      This is where C++ shines, as much as that turd can shine. You can write most of your code as clean, safe, and maintainable as possible (within the limits of C++; you're still in template hell), and go pretty much as nasty as you want in the tricky sections without leaving the language.

    76. Re:Distaste of C++ by BenoitRen · · Score: 1

      Please, spare us. That article is mostly hot air. There's very little substance to be found.

    77. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      C++ and Java are terrible programming languages. After experiencing the cleanness of SmallTalk, a pure object-oriented programming language, and being well-versed in the C programming language, it was a nightmare to code in C++ or Java although not impossible if you adhered to proper object-oriented software design.

    78. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      Linus's distaste for C++, and the underlying reason are perfectly rational, the AROS project ran into exactly those problems.

      But there's a big fucking difference between writing applications that run in user-space, and applications that run in kernel space.

      And RMS's GNUs have yet to actually release a production kernel.

    79. Re:Distaste of C++ by Darinbob · · Score: 1

      I would prefer a style mid way between bare C and full blown C++. Templates are a often misued, though can be helpful when used rarely and judiciously (ie, not generics or boost). Exceptions when implemented well are nice, however they do in no way remove the need for careful thought when implementing error handling. Of most importance though is that C++ makes it a lot easier to modularize your code (stick common stuff into classes or name spaces) and has better type checking and safety as well as link time function call checking.

    80. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      C++ templates brought in the so-called "duck typing" paradigm (if it walks like a duck, it's a duck) through the back door - people seemed to discover it one at a time through the '90s as the new standard was being developed. So C++ templates bring a lot more to the table than a typesafe, debuggable macro facility. But remember, it's still all compile-time code so it feels low-level.

      When I read some of the posts on the thread, the C++ haters (or dislikers) seem to fall into two camps:

      1) those that complain that C++ is not doing its job as "a better C", because it generated code behind the programmer's back, which could allocate memory, etc.

      2) those that complain that C++ doesn't do all the things one is accustomed to from using some of the newer virtual machine-based or scripting languages.

      Well, yeah. C++ is a system programming language that facilitates higher levels of abstraction than C, without requiring a team of long tenured programmers like the Linux kernel maintainers who know all the nooks and crannies of what the macros do and where the function tables are. It excels at frameworks and low-level applications where performance is critical, but which are rather open-ended with respect to development - not just in the sense of accepting external plug-ins, but in the sense of the API's expanding and evolving on a continuous basis.

      So if you want to develop an operating system kernel, you probably want to use something lower level than C++. If you want to develop a social networking web site supported by ads, you probably want something (or multiple somethings) higher level.

    81. Re:Distaste of C++ by Darinbob · · Score: 1

      Runtime support is a massive headache when you're on an embedded system or in a kernel. Granted every language has some sort of run time layer to be supported, which is not portable. In C it's not too bad though, just copy your sections to the right spot in memory. C++ just the start up is suddenly a lot harder; constructors to be called before main(), an explosion of linker section types, exception tables for stack unwinding and "personality", etc. It can also be much harder to control the sections that things are in depending on the compiler, since C++ does a lot of implicit code generation (ie, if you've got a virtual function table, does it end up in a code section or a data section?).

      In the kernel you're not using a "hosted" environment which changes the C++ standard in subtle ways. You may even have code that you want to execute during bootup before any static constructors have been initialized, and you're definitely never going to be running after main() is called.

      Neither C nor C++ is clearly best, I've done embedded systems with both. C++ definitely gives you more flexibility with modularization and the type checking is nice. But when you're really in the low level code you end up using something that looks just like C except maybe some namespaces/classes, more consts, and better type checking.

    82. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      .net libraries. Well there's your problem right there!

    83. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      I know you were trying to be funny, but 400/3 is also a fraction. They're not limited to the 0..1 range.

      400/3 is still a rational number. Irrationals are numbers like pi or e.

    84. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      C++/CLI (the update to managed C++) is far better and does include features not available to C#, like deterministic finalization.

    85. Re:Distaste of C++ by vux984 · · Score: 1

      The diamond problem isn't this beast for which there is no reasonable solution. It's just something you need to be cognizant of when coding.

      A solution using MI isn't necessarily bad on its own, and it's easy "be cognizant when coding" when you are designing and implementing something from scratch to solve a problem. MI can even seem elegant.

      But when you come back to it and start maintaining and extending it... more often than not the previous 'elegance' of MI rapidly becomes regrettable.

      There's also the people who complain about all the incredibly hard to debug crazy stuff people do with templates.

      The problem with templates starts right with debugging issues that crop up with the STL. Even the compile time errors are frequently cryptic or even outright incomprehensible.

    86. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      I dunno. That many gstrings, scattered around the room like that... something interesting happened here, and recently. Maybe you'll want to stick around to see if it happens again.

    87. Re:Distaste of C++ by Codifex+Maximus · · Score: 1

      C is intrinsic in my opinion. C++ can get very complicated.

      --
      Codifex Maximus ~ In search of... a shorter sig.
    88. Re:Distaste of C++ by jimbo · · Score: 1

      Yeah. To expand on that. Typical personal development goes like this:

      1. novice/intermediate: using and learning.
      2. Experienced/expert: Enamoured with self, confident, vast knowledge and ability to write intricate and complex code.
      3: Seasoned Software Developer: Writing easy to understand and maintainable code, "simple is beautiful".

      This kind of personal development applies to many things in life, architecture, engineering disciplines, etc. etc. the three steps typically also lands within certain age groups due to human nature.

    89. Re:Distaste of C++ by master_p · · Score: 1

      C++ can easily do multiple dispatch, by using templates.

      No mainstream programming language has a depentent type system yet. Not even Haskell.

      Continuations are difficult to do without sacrificing the "don't pay for what you don't use" principle, which is a lot more important than continuations.

      Handling correctable errors can (and should) be handled at library level, and c++ can perfectly do that. Exceptions are for exceptional situations.

      C++ does DSLs fine, there is little need for anything beyond operator overloading.

      C++ does partial evaluation just fine, thanks to templates.

      C++ does currying just fine as well, thanks to templates and function objects.

      C++ does pattern matching just fine, and now that it has lambdas it is easier and more natural than ever before.

      And since you haven't bothered with googling the points you make, I won't either. Life is short.

    90. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      Think about it: From C++ it is easier to interface to compiled C code than to other compiled C++ code.

    91. Re:Distaste of C++ by Marxdot · · Score: 1

      As many will say in this thread, it's a horrid language.

    92. Re:Distaste of C++ by Marxdot · · Score: 1

      Or just spend five minutes writing your own much slimmer, faster, and just Generally Better versions of whatever you may want from glib.

    93. Re:Distaste of C++ by Marxdot · · Score: 1

      'Pointer math' is not difficult at all.

      What is it about C++ that using just the C parts from it still makes it horrible?

      Well, partly the fact that the same C++-compatible C source will take an order of magnitude longer to build with a C++ compiler than with a C compiler because of the ever-increasing ambiguity introduced in C++, and partly the fact that there's no reason to use C++ and I'm not a masochist, thanks.

      Every programming language has bad parts

      Nah.

      use the parts that aren't bad.

      Yes, I'll use C.

    94. Re:Distaste of C++ by Marxdot · · Score: 1

      What is 'properly-used C++'? First the essential C++ advocacy catchphrase was 'don't use the bits you don't like', now it's 'you're not using it properly'.

    95. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      Meh, mixins and decoration usually do a better job, sadly Aspect C isn't much developed.

    96. Re:Distaste of C++ by tyrione · · Score: 1

      On the other hand, it's the only mainstream language I know that supports both very low-level and very high-level programming style. This can be a real plus for compute intense signal processing, were a small minority of the code really requires low-level implementations. Being able to mix that with high-level abstractions (e.g. linear algebra factorizations) can give both efficient and maintanable code.

      Objective-C.

    97. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      They are real programmers.

    98. Re:Distaste of C++ by darkHanzz · · Score: 1

      Objective-C.

      I've always wondered about the dynamic typing: How does that hold up in large projects, with dozens of programmers ? For me, the static typing of c/c++ catches a lot of errors/typos in function call arguments.

    99. Re:Distaste of C++ by jvkjvk · · Score: 1

      Your reply us unfortunately wrong, however.

      Given that C++ is turing complete, any 'spell' that the "Great Enchantress" can create well, so can the C++ guru. There is not a single thing the enchantress can do with her compiled spell that the wizard cannot, and that's the fact, jack.

      Fact is, the end result for the great Enchantress is exactly the same if they misuse their language constructs or implementation details.

      You can argue that you don't like how you have to go about the syntax construction, but fair is fair, they are both equally powerful in EFFECT.

    100. Re:Distaste of C++ by TheRaven64 · · Score: 1

      Glib is a tool for people who have a problem for which C is not the correct tool, yet insist on trying to use C.

      --
      I am TheRaven on Soylent News
    101. Re:Distaste of C++ by gweihir · · Score: 1

      C++ is actually a very good example of how to not design an OO language. As such it can be used to great advantage explaining good and bad language design. And, unlike Java (which is also a very badly designed OO language), C++ allows for easier examples than Java with its low S/N ratio.

      Caveat: I learned OO with Eiffel, one of the few languages where it has actually been done right.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    102. Re:Distaste of C++ by ardiri · · Score: 1

      ... because real programmers use C :)

      nothing like doing some polymorphism and inheritance via casting of pointers! :) - good C code can destroy even the best written C++ code if it is done right. unfortunately (and i know this will mod me down); the kids of today just dont get how vital C code was back in the day. they want to do everything in a "higher" level language that is supposedly more cross platform. C is the only true cross platform language out there.

      RIP: dennis ritchie.

    103. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      I've spent nearly my entire career programming C++ in kernel space. It's a great tool for the job when used properly. Even when it's not, the end result is no worse than our millions of lines of legacy C spaghetti.

    104. Re:Distaste of C++ by optikos · · Score: 1

      [C++ is] the only mainstream language I know that supports both very low-level and very high-level programming style.

      Apparently you don't know Ada2005 and Ada2012. Ada2005 & Ada2012 have richer low-level capabilities than C++1998 and C++2003, although once LLVM's clang and GCC's g++ and Microsoft Visual C++ all support all of {N2239, N2427, N2748, N2752, N2547}, C++2011 will then conceivably have greater expressivity than Ada2012 regarding concurrency-atomicity declarations. Ada2005 & Ada2012 is capable of nearly all of C++2003's major high-level capabilities, except meta-template programming because Ada's generics are not themselves Turing-complete as a functional (sub)language via recursive generics-/template-expansion, as C++1998-&-later's templates are. The more that I utilize C++'s meta-template programming, the more that I consider it a botched kludge straight from Hell, so Ada lacking meta-template programming is a Good Thing. Conversely, Ada has a rich amount of reflection via its tick (i.e., apostrophe) suffixes on identifiers; reflection is what meta-template programming is often used for in C++ anyway.

      The Ada2012 Language-Reference Manual, Ada2012 Rationale, and other interesting Ada2012 materials are at: http://www.ada2012.org/

    105. Re:Distaste of C++ by sjames · · Score: 1

      The problem is more along the lines that C++ encourages making the wrong trade-offs. If you really need the performance offered badly enough to give up safety, C is the right choice (you can use explicit object orientation there if you like, it works well in the Linux kernel for example). OTOH, if you really need flexibility that C doesn't offer, you probably can afford a language with memory management and bounds checking and would enjoy the even greater flexibility that those offer.

      That's not to say C++ should never have been. We needed to explore the space between structured programming and object oriented programming and C++ was exactly that exploration. However, because of C++ we know things now that we didn't then, so we can do better than C++ for object oriented programming.

    106. Re:Distaste of C++ by sjames · · Score: 1

      This sort of reasoning is what gets us bloated and slow desktop apps.

      No, we get slow bloated apps because programmers desperately try to make C++'s promise of reusable classes live up to expectations by doing, undoing, and redoing over and over through child classes. Even more so because C++ doesn't offer sufficiently flexible type handling. The result is that the apps spin around in spirals very fast but only get to their destination slowly.

      It's funny how often a 'slow' interpreted language that offers that flexibility outruns C++ on the desktop by virtue of better written and more maintainable software.

    107. Re:Distaste of C++ by guacamole · · Score: 1

      I have known of RMS's' distaste for C++ from as far back as 1999. Just take the KDE debacle for example. Certainly, the biggest issue that FSF had with KDE was in QT's (the library KDE was and is based on) non-free license. However, the fact that it used C++ was up there close to the license issue.

      Can sympathize with them as well as with those who don't like C. I know C well, as well as several scripting languages, and just started learning C++. The complexity is just mind boggling. At the same time, using C to tackle a problem is like specifying to a carpenter where to place each molecule to build a chair. Both are very hard to code in for general problems IMO. Can't wait to move onto Java or C#.

    108. Re:Distaste of C++ by mwvdlee · · Score: 1

      Pointer math is difficult in that it is incredibly easy to make very unforgiving, and often difficult to trace errors and security holes and rarely reflects the concepts that it models. As a general rule of thumb; pointer math in a library or framework = good, pointer math in ordinary code = bad. Exceptions apply where obvious.

      People often complained that C++ performs worse than C because of all the overhead. Truth is that C++ commonly outperforms C because it's much easier to model, understand and optimize at the algorithm level. C++ outperforms C because humans are limited.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    109. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      The problem with C++ is that bad coding there is EASY. You have to work quite hard to produce something IOCCC worth, but it's very easy to create something unreadable in C++ (admittedly, not as unreadable as IOCCC winners, but still very bad). Multiple inheritance, operator overloading and templates are all very nice when you write code, but most programmers spend much more time reading code than writing.

    110. Re:Distaste of C++ by PhrostyMcByte · · Score: 1

      What is 'properly-used C++'? First the essential C++ advocacy catchphrase was 'don't use the bits you don't like', now it's 'you're not using it properly'.

      By "properly" I mean fully, with no features left out. I'd hoped to have implied that with the context you left out, "not a subset," but maybe I did that poorly. Exceptions, RTTI, non-trivial static variables, the full standard library, and even the thread storage class included.

      "Don't use the bits you don't like" is kind of a stupid catchphrase, certainly not one of C++. If it had any mantra, it might be "don't pay for what you don't use".

    111. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      C++ being a recipe for disaster in the kernel is why BeOS and Syllable never worked because they were written in C++. Wait, BeOS did work? It just didn't catch on? Oh.... damn...

    112. Re:Distaste of C++ by PhrostyMcByte · · Score: 1

      Garbage collection has its uses. C++ makes resource management trivial and safe, so really it wouldn't be used for the same reasons as other languages tend to like it for, but they do exist. I'll actually be happy to see if WG21 can find a way to get it into the language cleanly and efficiently.

      Maximally efficient compile-time bounds checking is possible right now, thought there are so many places where this can't work that it would provide only a slight safety -- and language support for this wouldn't do any better.

      Run-time bounds checking is something we already have. Every random-access container in the standard library has an at member function which throws an exception if the given index is out of bounds.

    113. Re:Distaste of C++ by Marxdot · · Score: 1

      'Pointer math' where it is clear = good. Silly, opaque code = bad.

      Truth is that C++ commonly outperforms C

      It depends.

      it's much easier to model, understand and optimize at the algorithm level

      What. No it isn't.

    114. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      I guess it's too complex for them: http://cpprocks.com/cpp-ruby-coffeescript-language-complexity/

      You may say that means those programmers suck. But that could also mean that very few programmers should be using C++ (or C for that matter). The rest should be using other programming languages.

    115. Re:Distaste of C++ by betterunixthanunix · · Score: 1

      C++ can easily do multiple dispatch, by using templates.

      As we all know, that is "easy," especially compared to languages that have multiple dispatch built in.

      No mainstream programming language has a depentent type system yet.

      Non-mainstream programming languages have dependent types. What's stopping C++? That could be something that really helps C++ shine -- you know, something that actually sets it apart in a positive way from other languages.

      Continuations are difficult

      I know, and that is the typical excuse. That is why it took over a decade to fix the template/right shift problem, and that is why C++ falls behind high level languages: the standard avoids things that are "hard."

      Handling correctable errors can (and should) be handled at library level, and c++ can perfectly do that. Exceptions are for exceptional situations.

      Well, as an exercise, figure out how an I/O library should handle an attempt to write to a full disk. Should it open a GUI dialog? Should it just die?

      Or, do you think this is an exceptional situation, and that the client code also needs to know how to retry or abort whatever operation failed? Luckily, we have languages that do not break encapsulation like this.

      C++ does DSLs fine

      OK, add operator@ to the language.

      C++ does partial evaluation just fine, thanks to templates.

      In other words, the programmer can implement this by hand, using templates, and get something that works sort-of like how it would work in a language that has it built in. Which is exactly what I was replying to: the objection that C forces you to do things that are built-in to C++.

      C++ does currying just fine as well, thanks to templates and function objects.

      See above.

      C++ does pattern matching just fine, and now that it has lambdas it is easier and more natural than ever before.

      C++ does not do pattern matching at all. You get a switch statement, which gives you some small amount of pattern matching on values, and some amount of pattern matching on function arguments. Otherwise, you are stuck trying to implement it yourself (see above) or finding another way.

      Life is short.

      Yes, life is short. That's why people who have hard computational problems are not using C++; they have more important things to do than deal with C++ and it's barely-usable feature set.

      --
      Palm trees and 8
    116. Re:Distaste of C++ by betterunixthanunix · · Score: 1

      On the other hand, it's the only mainstream language I know that supports both very low-level and very high-level programming style.

      It is not the only one that supports this; it is, however, the only one that manages to botch it so badly. Lisp programmers have been doing this for decades; likewise, ML and Ada support this.

      The problem with C++ is that the low-level constructs are hard to escape -- you have to work very hard to ensure you don't wind up using a primitive pointer, a fixed-width integer, a floating point number, etc. C++ programmers must do extra work to remain at a high level -- extra work to ensure that "42" becomes an arbitrary-width integer, extra work to ensure that string literals become string objects and not pointers, extra work to ensure that a rational number type is used rather than floating point numbers.

      On the other hand, in Lisp, you need to do extra work to get low-level things. You need to explicitly tell your compiler that you want "42" to be a fixed-width integer (usually, Lisp programmers do this for optimization purposes); it is very hard to deal with primitive pointer types, which are not even standardized (there is no way to make such things portable or safe). Even when you get something low-level, you need to work hard to ensure that it stays low-level; something as simple as incrementing a fixed-width integer requires you to explicitly say that the result should be fixed-width (otherwise, you get an arbitrary-width integer, because the language won't set up a situation where an overflow might occur unless you explicitly ask for that).

      --
      Palm trees and 8
    117. Re:Distaste of C++ by Jheaden · · Score: 1

      Oh if only this were true!

      The code base I'm currently working with mixes the hairiest aspects of C and C++ in a single file. And this isn't old code either, its maybe a year old and causing me nothing but grief.

    118. Re:Distaste of C++ by Joey+Vegetables · · Score: 1

      OK, I will grant you that (and I do not consider Ada to be mainstream). But what would be the upside of choosing C++ rather than a higher level language (e.g., C#, Python, or maybe in your case Fortran) plus C for the places where maximal performance and/or hardware access are required?

    119. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      I knew about Linus Torvalds's distaste of C++, but not Richard Stallman's. What is it with open-source leaders and their irrational hate of C++?

      They are smart and know a dog's breakfast when they see it.

    120. Re:Distaste of C++ by darkHanzz · · Score: 1

      The one thing that trips me up with python is the link to C++. Cython seems a bit hakish, ctypes requires plain C. Plus, I'd like to be able to move algortihms from high level to low-level once profiling indicates that it's a performance critical part. That's easier if both high- and low-level are the same language. Keeping everything in one language is simple. Once a build-system is set-up, re-compiling+running a C++ program takes about as much time as starting a python script. Both C++ and python applications can be fast or slow to startup, determined by how many dll's/dependencies are loaded. So for a quick test, I'd prefer python, for anything serious I use C++.

    121. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      Interestingly, I wrote a bare-metal kernel for the IBM XT in graduate school for the operating systems class using Borland C++ and it worked fine. It was object-oriented and utilized inheritance but did not use exceptions (as those were still new and unstable in those days) or templates (which were still not conceived of yet). Exceptions would probably cause the most problems. Anyway, it is possible and even pleasant if you do not use all the features of C++ (which incidentally is my philosophy of using C++ which makes it palatable for many projects).

    122. Re:Distaste of C++ by phantomfive · · Score: 1

      I'm sorry, that sounds horrible. At least if it's only a year old, there isn't enough of it that it can't be rewritten in a year!

      --
      "First they came for the slanderers and i said nothing."
    123. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      The document describing the memory management disciplines for the object graph describing my dislike of C++ is longer then the specification of Scheme.

    124. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      It's expensive to build a data center twice as big because your code performs poorly.

      Give me the poor performing code that is less buggy and ships six months earlier every time. The cost of a few extra CPUs, servers, or SSDs is laughably small compared to the cost of an entire dev team's salary and benefits.

    125. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      mod up to 6++

    126. Re:Distaste of C++ by Anonymous Coward · · Score: 0

      It takes less effort to learn C + your high-level language of choice + C-glue for that language, than in takes for you to learn C++ properly.

  6. pot meet kettle by gbjbaanb · · Score: 2

    However, all Stallman had to offer on the topic was "We
    still prefer C to C++, because C++ is so ugly" (sic).

    well, score one for technical argument and intellectual reasoning.

    If ugliness was a consideration, then surely GNU should be moving to a beautiful language, such as C#. If no, then WTF does subjective qualities of a language have to do with anything, there's no problem with any language as long as it is understandable (and I contend that means individual coding style rather than anything in-built - C can be so obfuscated they have competitions for it!).

    the problem with all of this is the usual geek tendency of arrogance - where one always thinks he has the mental superiority to everyone else, and this is the biggest single detriment to the OSS community of all.

    1. Re:pot meet kettle by Steauengeglase · · Score: 1

      I'm just some guy on the street, but I was pleased to read it and see that it was for pragmatic and not political reasons. At least a pragmatic problem can have a pragmatic solution instead of turning into a ideological mess.

    2. Re:pot meet kettle by Anonymous Coward · · Score: 0

      Surely you're kidding, right? When has any programming-language-based argument EVER been treated as a purely pragmatic issue and then solved? I've been programming professionally and as a hobby since 1977, and calling language disputes "religious wars" has always been one of the most extreme forms of understatement in all of computing.

    3. Re:pot meet kettle by Anonymous Coward · · Score: 1

      As opposed to the ability to follow simple syntactic rules and spelling practices, such as capitalizing the first letter of your sentences or learning when to use parentheses instead of misusing "-" to separate a parenthetical comment. And let's not forget repeating part of a sentence part of a sentence part of a sentence part of a sentence part of a sentence part of a sentence.

      The problem is that C++ _encourages_ such levels of abuse by failing to even report such syntax errors as errors. The compiler often blindly accepts massive errors, such as miscasting of variables, as valid syntax. This makes debugging far more complex. Don't get me *started* on the results of operator overloading encouraged by C++.

    4. Re:pot meet kettle by Steauengeglase · · Score: 1

      I'll take a language fight over a commie GPL v. capitalist proprietary license v. any other license style fight any day of the week. At least the former doesn't end with totalitarianism v. global corporatism.

    5. Re:pot meet kettle by ChrisMaple · · Score: 2

      Operator overloading is essential to the readable implementation and use of new data types. Consider a new class of 192 bit integers. Would you rather read
      a=add192(mul192(c,d),mul192(d,add192(e,f)))
      or
      a=c*d+(d*(e+f))
      ?

      --
      Contribute to civilization: ari.aynrand.org/donate
    6. Re:pot meet kettle by dotgain · · Score: 1

      Bah, I'll take 'long long long long int' over that any day.

    7. Re:pot meet kettle by Anonymous Coward · · Score: 0

      C can be so obfuscated they have competitions for it!

      I can not only deobfuscate most of IOCCC entires but also e.g. explain which ones of them invoke undefined behaviour in some subtle way (and challenge some common false claims along the way).

      I don't claim this is easy or something everyone can do. However, if there was an IOC++CC I wouldn't be able to say the same about those. Someone would probably write a program around constructors, exceptions and smart pointers that would print pi out of negative refcounts. Another one would solve 3SAT in constant time by letting the compiler decide whether a given expression is a type or a statement or which overload is the most appropriate for given situation.

    8. Re:pot meet kettle by Marxdot · · Score: 1

      Most languages are doing just fine without operator overloading.

  7. grep and sed need routine maintenance? by Anonymous Coward · · Score: 0

    wow, you'd think they would be pretty much done by now

    1. Re:grep and sed need routine maintenance? by maxwell+demon · · Score: 1

      wow, you'd think they would be pretty much done by now

      Well, the post is actually a sed release message. Here's the start:

      I am pleased to announce the release of GNU sed 4.2.2. The latest
      release has the following bug fixes and new features:

      * don't misbehave (truncate input) for lines of length 2^31 and longer

      * fix endless loop on incomplete multibyte sequences

      (There are actually quite a few more points)

      Line lengths of more than 2^31 are probably not that common (indeed, even about a decade ago that would have exceeded maximal file size), so it's no surprise that it only came up now (indeed, some vendors would probably just have documented it as limitation of their program instead of fixing it). Also, multibyte characters for sure weren't in the original specification of sed.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    2. Re:grep and sed need routine maintenance? by Anonymous Coward · · Score: 0

      The mouse jerked on click. You were supposed to be modded as "Informative". Sorry. :(

  8. slick as a gazelle? by Anonymous Coward · · Score: 0, Offtopic

    You'll still get eaten by a big cat.

    1. Re:slick as a gazelle? by Anonymous Coward · · Score: 0

      Another dumbass moderator... didn't get the Apple reference.

  9. 2000 called by Fished · · Score: 1

    The year 2000 called. They want their "obvious" back.

    --
    "He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
  10. Thanks! by Anonymous Coward · · Score: 0

    Good post. Thanks, Paolo! I've used grep and sed as much as anything else on *nix systems...I'm glad you contributed for as long as you did.

  11. "Pointed criticism", but hardly "scathing rant". by Anonymous Coward · · Score: 5, Informative

    I advise people to read the actual message; this summary is exaggerated.

  12. Re:I often disagree with RMS, but... by TheRaven64 · · Score: 3, Insightful

    C++ is crap, but when the alternatives are a tasteful subset of C++ and a half-arsed reimplementation of a horrible subset of C++ in C macros, I'd rather take C++ and bitch about it than suffer in C. There are very few places where C++ is the right tool for the job, but C is often not the right tool for these either.

    --
    I am TheRaven on Soylent News
  13. Holy slanted summary, Batman! by murdocj · · Score: 4, Informative

    The posting is NOT a "scathing rant", it's a pretty clear, calm and well-reasoned explanation as to issues that the author sees with GNU and GNU software development. There's no flamebait, no ranting, no name-calling.

    1. Re:Holy slanted summary, Batman! by Anonymous Coward · · Score: 0, Troll

      But this is Slashdot where one crazy neckbeard (RMS) is never flat out wrong no matter how wrong he is.

    2. Re:Holy slanted summary, Batman! by Anonymous Coward · · Score: 0

      Totally this! There have been some good rage quits in the open source community, but this isn't even close to one of them. It's very dignified, clear, and ammicable.

      More to the point, he is _right_.

      GNU was never sexy imo.. it always had a stuffy boring but reliable feeling to it. Even that logo.. it just feels.. old, even when it was new! More than that, it has crawled while everyone around them ran. It kicked a lot of stuff off, but has just kinda sat there, refusing to give up ideas long since proven silly.

      Some people like working on the old reliable stuff, and I think GNU still has a huge place for a long time.. but I totally agree that if you want to be on the cutting edge and driving change vice maintaining the base line.. GNU is not the place to be.

    3. Re:Holy slanted summary, Batman! by statusbar · · Score: 3, Informative

      Absolutely.

      Also, one of the interesting points about the primary reasoning behind the creation of the CLANG compiler was not because of the GPL license.

      it was because the developers wanted to make GCC more powerful, so that it could be used as a library.

      Stallman refused to allow the features to be added even though they were not asking for the GPL licensing to be changed.

      So the developers started CLANG. In c++. as a library.

      Watch this for some very interesting history and features:

      http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Clang-Defending-C-from-Murphy-s-Million-Monkeys

      --
      ipv6 is my vpn
    4. Re:Holy slanted summary, Batman! by Anonymous Coward · · Score: 0

      He questioned a local cult hero. Wagons must be circled, and straw men erected and destroyed.

    5. Re:Holy slanted summary, Batman! by iluvcapra · · Score: 2

      But RMS's position on not modularizing GCC isn't irrational, at least from his perspective -- his concern is that if GCC is made into a set of libraries, vendors will write proprietary front- and middle- ends to do all the (awesome) stuff Clang/LLVM do, and this would lead to a vicious cycle where all development on the GNU toolchain would be diverted from the hard-to-monetize GPL's GCC, and into the BSD or proprietary libraries people stick onto it.

      HIs refusal to make GCC into a library is his strategy for making sure commits keep coming into GCC. And in OSS, he who receives the commits has the power.

      --
      Don't blame me, I voted for Baltar.
    6. Re:Holy slanted summary, Batman! by Nemyst · · Score: 1

      (the example used was RMS's distaste for C++, not exactly a strong point against RMS)

      That offhand remark was a rather obvious red flag. Regardless of what you think on the subject, your opinion has no place in what should be a neutral, objective summary relating facts. Sigh.

    7. Re:Holy slanted summary, Batman! by dkf · · Score: 3, Informative

      HIs refusal to make GCC into a library is his strategy for making sure commits keep coming into GCC. And in OSS, he who receives the commits has the power.

      The problem with that strategy is that it keeps you as king of a shrinking castle; many potential community members decide they don't want to put up with the attitude and go elsewhere. Sure, there are faster ways to become irrelevant, such as taking everything private and selling out to Ora... err... EvilSoft, inc., but the trend is still down if you don't try to properly maintain the community.

      I've seen it said that the internet sees censorship as damage and tries to route around it. It's true for other types of over-strict control too. It doesn't matter whether the control freak has good reasons for doing it either; the internet doesn't care for the moral strength of the reasons, it just sees the outcome. RMS's opposition to the things that some wanted to do with GCC has prompted the creation of an open competitor that is sapping much of the potential strength they might've otherwise had. This long-term threat to GCC is largely of their own making.

      Oh well, I'll probably use GCC for a few years more at least; old habits die hard (and I never wanted to write a C compiler in the first place, so the internal complexity was an issue far off my radar).

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    8. Re:Holy slanted summary, Batman! by Anonymous Coward · · Score: 0

      Which is probably why, as a Red Hat developer, he quit. Red Hat has been moving developers into maintainership positions on a whole host of core infrastructure projects. By doing so, it guarantees that Linux follows Red Hat's directions under its hegemony, shutting out competitors.

    9. Re:Holy slanted summary, Batman! by Beetle+B. · · Score: 1

      The posting is NOT a "scathing rant", it's a pretty clear, calm and well-reasoned explanation as to issues that the author sees with GNU and GNU software development. There's no flamebait, no ranting, no name-calling.

      1. It is scathing.

      2. The person who wrote it describes it as a rant (see the subject line).

      --
      Beetle B.
    10. Re:Holy slanted summary, Batman! by Darinbob · · Score: 1

      Well, you could say that instead it is his fear that someone somewhere might use free software to do non free stuff is what is irrational.

    11. Re:Holy slanted summary, Batman! by statusbar · · Score: 1

      This is what I don't understand - If GCC is under the GPL, and was modified to be a library, under the GPL the front ends / library clients that use it would ALSO have to be released under the GPL. The original developers had no problem with that. So what, exactly, would the problem be for RMS? It could only have increased the pervasiveness of GNU/GCC. And if there was some problem that RMS knows about then this would be a problem with the specific license that GCC uses.

      --
      ipv6 is my vpn
    12. Re:Holy slanted summary, Batman! by iluvcapra · · Score: 1

      It's not a settled issue as to wether or not a work under its own license may dynamically link to a GPL'd library. The FSF says that if your code links to a GPL library, that makes your code a derivative work of the library. Not everybody believes this, it's never been tested in court, and this theory would seem to run contrary to the rationale behind the FSFs claim the GNU Classpath is not a derivative work of Java.

      That said, even if the FSF's reasoning were to prevail, it would be too easy for someone to write a wrapper around a Modular GCC that allowed people to save intermediate work for use by their own tools. The whole point is people love the huge number of language frontends and the assembly generation, but want to do their own static analysis and AST and middle-stuff. If RMS keeps all of the code tightly-coupled, then people can't bootstrap their own proprietary compilers with the work he put into the parts that don't suck.

      It's pretty shitty, but it's a normal way of doing business. I work in the film industry and there's the company you might have heard of called "Panavision," they make crappy cameras but awesome lenses, so what they do is they make their lenses only fit a proprietary mount that only their cameras have. RMS is sorta doing that.

      --
      Don't blame me, I voted for Baltar.
    13. Re:Holy slanted summary, Batman! by mbkennel · · Score: 1

      Peace will come when Stallman loves open source coders more than he hates capitalists.

    14. Re:Holy slanted summary, Batman! by drinkypoo · · Score: 1

      HIs refusal to make GCC into a library is his strategy for making sure commits keep coming into GCC. And in OSS, he who receives the commits has the power.

      The problem with that strategy is that it keeps you as king of a shrinking castle; many potential community members decide they don't want to put up with the attitude and go elsewhere

      This might wind up being a good thing for gcc users, even. It would be nice if there were some meaningful competition to gcc, because sometimes you wind up with code you can't compile without gcc because everyone assumes everyone has it, which makes it really annoying when you're having a problem with gcc or trying to milk more performance out of some code with another compiler. On some platforms, gcc produces an inferior result to other compilers for some code, so it sucks to be tied to it.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    15. Re:Holy slanted summary, Batman! by Anonymous Coward · · Score: 0

      RMS is no 'hero', no matter how much he dresses up in costumes. He isn't the jesus of free software either.

    16. Re:Holy slanted summary, Batman! by statusbar · · Score: 1

      Good points. So the issue is really with the GPL license enforceability....

      I wonder if the same issues are at hand with GCCXML : http://www.gccxml.org/HTML/Index.html

      One could make a library that just spawns a sub-process running GCCXML, then grab the result and pass the appropriate parts of the parse tree to the caller.

      No linking involved, no GPL violations either.

      --
      ipv6 is my vpn
    17. Re:Holy slanted summary, Batman! by Anonymous Coward · · Score: 0

      I was quite sad when I had to add clang to my list of supported compilers for Python extensions -- not because LLVM is bad, but because GCC is dead. 10 years from now the only contributor will be Debian, and then solely because of licensing. Ubuntu and downstream distros will use LLVM just as like the BSDs.

      Hell, given the nature of the license and speed of development, there's a decent case to be made that we could see LLVM in a MS compiler product by 2020.

  14. Re:I often disagree with RMS, but... by BenoitRen · · Score: 1

    Except C++ isn't crap.

  15. Re:I often disagree with RMS, but... by pointyhat · · Score: 1

    Prove it!

  16. No disagreements? by hduff · · Score: 0, Troll

    So he's just on his period?

    Oh wait, it's just a sensationalist headline.

    --
    "I believe in Karma. That means I can do bad things to people all day long and I assume they deserve it." : Dogbert
  17. Re:I often disagree with RMS, but... by Anonymous Coward · · Score: 4, Funny

    Except C++ isn't crap.

    Pshaw. Well, I guess we can't really blame the Inferiors. Until you mature, I suppose you won't have a lush, fully-grown neckbeard whispering in your ears the dark secrets of why any programming language invented past 1972 is inherently worse. Trust me, everything will make so much more sense once you've heard the beard. Then you'll understand why we ONLY decided to grudgingly tolerate C after we made it more baroque than necessary to ensure our own job security. This entire "easier to write code" fad will certainly pass.

  18. Define horrible by ArchieBunker · · Score: 1

    For the people who don't program, can you define why its "horrible"?

    --
    Only the State obtains its revenue by coercion. - Murray Rothbard
    1. Re:Define horrible by Anonymous Coward · · Score: 0

      if it makes you want to openly weep in frustration at it's unusability and it actively makes doing safe/fun things difficult, then it's probably horrible. (or you don't know how to use it)

    2. Re:Define horrible by Jeremy+Erwin · · Score: 1

      Is this some sort of role playing exercise? "Imagine you don't know how to program?"

    3. Re:Define horrible by betterunixthanunix · · Score: 4, Funny

      If C++ were a car, the accelerator would be a pedal located under the passenger seat, a dial on the radio, and a lever in the trunk. Most users would just shift into neutral, which would be a 14 step process, and push their car around the block; they would then point to this as a major accomplish, and would note that once the car is in neutral it is powerful -- after all, you can always shift into drive if you really need to!

      --
      Palm trees and 8
    4. Re:Define horrible by sourcerror · · Score: 1

      the accelerator would be a pedal located under the passenger seat, a dial on the radio, and a lever in the trunk.

      No, that's the brake pedal.

    5. Re:Define horrible by ArchieBunker · · Score: 1

      Yes, I don't know the first thing about C or C++ for that matter. If C++ is indeed so horrible then why was it invented and why is it still being used?

      --
      Only the State obtains its revenue by coercion. - Murray Rothbard
    6. Re:Define horrible by Marxdot · · Score: 1

      ArchieBunker realizes that markets are not so infallibly rational after all. Popularity tends to be inversely proportional to goodness, particularly when committees, stupidity, marketing, and very many buzzwords & fads are involved.

    7. Re:Define horrible by LingNoi · · Score: 1

      It's like starbucks and coffee snobs.

  19. Exciting stuff by Anonymous Coward · · Score: 0, Troll

    One neckbeard quits his job because he doesn't like some other neckbeards.

    News at 11.

  20. I fail to comprehend the money part by Anonymous Coward · · Score: 0

    "Projects such as gnash are bound to have constant funding problems despite being (and having been for years) in the FSF's list of high priority projects."

    Aaaand to (hypothethically) dump RMS and FSF is gonna help gnash funding... How, exactly?

    I think RMS gets way too much hate than he deserves, but I would be more likely to understand this as basis for such a decision. That no one besides FSF, which receives limited funding itself, helps GNU is hardly an argument against FSF. I get the point about bureaucracy and indecisiveness, though.

    1. Re:I fail to comprehend the money part by Anonymous Coward · · Score: 0

      I think RMS gets way too much hate than he deserves

      He has gone out of his way to earn every bit of that hate.

    2. Re:I fail to comprehend the money part by Anonymous Coward · · Score: 0

      Yeah, sticking to one's views and not having double standards is so 1979...

  21. RMS is right about C++ by Anonymous Coward · · Score: 0

    sorry

  22. Re:I often disagree with RMS, but... by statusbar · · Score: 1

    All languages are crap at some level and for some uses.

    But watch this from Bjarne last february for some insight in C++11:

    http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Keynote-Bjarne-Stroustrup-Cpp11-Style

    --
    ipv6 is my vpn
  23. You're full of shit. Ever hear of RAII? by Anonymous Coward · · Score: 5, Insightful

    When using RAII sensibly, C++ does offer excellent support for babysitting your memory usage. In fact, it offers superb support for managing any sort of a resource that needs to be allocated and later deallocated. There is no good equivalent in C.

    These days, C++'s modern smart pointer classes make memory management a complete non-issue. You get very predictable and effortless freeing of memory, all without having the performance of your app destroyed by garbage collection like you do when using a language like Java, C# or Ruby.

    This is just the power of C++ in action. It lets you easily build minimal-cost abstractions upon C.

    1. Re:You're full of shit. Ever hear of RAII? by Anonymous Coward · · Score: 1

      If you're a stellar coder building from the ground up, C++ is fantastic, especially for cheap performance and rapid development of flexible structures and object hierarchies.

      However, if you're adopting someone else's code, C++ IS A DOG PERIOD. Chances are, 99.99% of the time, you'll grow grey hair trying to dechipher what was meant by that template library, these three different class-hierarchies, or why the hell they use C randomly all over the place...!

      I loved C++ in my teens, but got over it. Other's code just wasn't worth it, and coding it all myself wasn't worth it either.

      Ruby I feel is on the right track. Not Rails. Ruby.

    2. Re:You're full of shit. Ever hear of RAII? by betterunixthanunix · · Score: 1

      These days, C++'s modern smart pointer classes make memory management a complete non-issue.

      So, do you need shared_ptr, weak_ptr, or unique_ptr? I ask because (a) choosing the wrong one will create bugs in your code and (b) this is another example of something that is automatically determined in other languages.

      This is just the power of C++ in action.

      Yes, it certainly is: the power to create inflexible programs that act as magnets for bugs.

      --
      Palm trees and 8
    3. Re:You're full of shit. Ever hear of RAII? by K.+S.+Kyosuke · · Score: 1

      You get very predictable and effortless freeing of memory

      I don't think so. Once you start deallocating a large tree or a similar structure, it will be very far from being effortless, and the only predictable thing is that it will hang your code for a while. The only benefit you'll get over GC is that this hiccup will take place at a precisely defined spot.

      Anyway, RAII in C++ is a bad joke. If you like the idea so much, switch to D. It's much saner.

      --
      Ezekiel 23:20
    4. Re:You're full of shit. Ever hear of RAII? by gbjbaanb · · Score: 1

      so what you're saying is that when there's a fuckup in the code that causes a big problem, you'd rather it happened at random rather than in a deterministic place where you can see it occur, easily see what the problem is and fix it.

      There are plenty of cases where GC is a joke, not being able to clean up your code until it feels like it doesn't make for better or more reliable systems. (an example, I have a WCF service, it uses log4net to log stuff, and I use its property system to add the caller's ip. But where there's an exception, the pop doesn;t occur in the service Dispose method because the framework has decided to hang on to it and free it up later. So the next log gets 2 ip addresses logged.. So what would be nice clean code in C++ becomes a mess of manually handling Exception exceptions in order to bypass the system so it works). GC is for lazy-ass programmers who don't know better.. RAII is for lazyass programmers who know and love what it does for them.

    5. Re:You're full of shit. Ever hear of RAII? by Anonymous Coward · · Score: 1

      this is another example of something that is automatically determined in other languages

      I'd like to know which languages can automatically determine when a weak pointer can be used.
      High-level languages normally automatically "determine" that you need a shared_ptr even when you don't. weak pointers have to be created explicitly, while auto_ptr and unique_ptr don't exist.
      While using shared pointers by default works, the overhead is often unacceptable, particularly in the sort of area where C++ is widely used. auto_ptr, scoped_ptr and unique_ptr have no overhead and are sufficient 90% of the time.

    6. Re:You're full of shit. Ever hear of RAII? by Anonymous Coward · · Score: 0

      If the nodes of the tree are fixed size the issue you mention only exists for a horribly unoptimized implementation. If you've got widely-varying-sized nodes you can still get instant deallocation as long as you only grow the tree. If you've got widely-varying-sized nodes AND you need to remove nodes from the tree you can still get instant deallocation as long as you are willing to waste some memory - but probably not much more than would be wasted by the system memory allocator due to fragmentation. If you've got widely-varying-sized nodes AND you need to remove nodes individually AND you must use a minimal amount of memory, then you are indeed in a situation where garbage collection is pretty nice. I've never encountered such a case but I'm sure it happens.

    7. Re:You're full of shit. Ever hear of RAII? by colinrichardday · · Score: 1

      I'd like to know which languages can automatically determine when a weak pointer can be used.

      In a language without pointers, never.

    8. Re:You're full of shit. Ever hear of RAII? by petermgreen · · Score: 1

      AIUI there are two reasons to use weak pointers

      1: to allow for references which you need to stay arround as long as the object exists but you don't want them to keep the object in existance.
      2: when you are using a memory management model (typically reference counting) that cannot clean up cycles of garbage and therefore requires you to avoid creating cycles in any structure that could become garbage.

      Afaict point 2 forces you to make a lot of pointers "artifically weak" to avoid cycles which in turn means you have to be very careful to keep a reference around to the root of a data structure to keep parts of it from being freed too early. That is the price you pay for using automatic reference counting as your memory management strategy.

      Of course tracing GCs have their own problems. Afaict the reason java runs with a low memory limit by default is to make sure that the gc is forced to run before the program eats up too much memory and drives the system into swap death.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    9. Re:You're full of shit. Ever hear of RAII? by Darinbob · · Score: 2

      Smart pointers are a band aid really, a way to get something the superficially resembles garbage collection in a more traditional pascal/c like language. Scoped pointers are useful but limited, and reference counting has been known to be a faulty memory management system for decades. A big drawback of both is that it encourages novices (and even some veterans) into thinking that memory management is easy.

      Garbage collection does not destroy performance, do not take the poor implementations of some languages as proof of inherent inefficiencies.

    10. Re:You're full of shit. Ever hear of RAII? by Darinbob · · Score: 1

      GC when designed well and used well is a great tool. However it often gets messed up, with bad implementations or misguided attempts to have "finalization". It often gives you better performance than manual allocation and deallocation especially if it moves memory around which can improve locality of reference. The drawback of GC is that it really requires a high level language. And for a great implementation you need some OS and CPU support for it (ie, to flag pages as dirty, etc)t; though for simple scripting languages not designed for performance you can get away with a portable implementation in C.

    11. Re:You're full of shit. Ever hear of RAII? by Anonymous Coward · · Score: 0

      I don't think so. Once you start deallocating a large tree or a similar structure, it will be very far from being effortless, and the only predictable thing is that it will hang your code for a while. The only benefit you'll get over GC is that this hiccup will take place at a precisely defined spot.

      Yes. The only way around this in C++ is to define your tree as POD (or at least something without a destructor), then arena-allocate it, and free the arena as a whole. At which point you might as well be using C.

    12. Re:You're full of shit. Ever hear of RAII? by fnj · · Score: 1

      Contrary to the other respondents, AC is spot on. At the risk of excluding some very minor cases where they may be called for, "naked" pointers should, and need, NEVER be used in a C++ program. If you find them there, it means a poor quality C++ programmer (who may be a good C programmer) has used them ignorantly, or the code is very archaic.

      Garbage collection is a nod to terrible programmers who are not up to the task of managing their own resources in code. Smart pointers are a far superior, better controlled way to manage resources. And there are other resources besides memory, which garbage collection offers no support whatsoever in managing, but C++ idioms manage very well, and in very deterministic and optimized fashion.

    13. Re:You're full of shit. Ever hear of RAII? by fnj · · Score: 1

      No, actually it is garbage collection which is obviously the band-aid, in support of poor quality programmers who shouldn't even be working on code.

      Smart pointers are far more efficient and deterministic than garbage collection, and similar C++ methodology allows managing things other than memory, which garbage collection does help you with at all.

      Clearly you don't have a single clue how RAII works.

    14. Re:You're full of shit. Ever hear of RAII? by Darinbob · · Score: 1

      Oh? Explain how to do something like Lisp w/o garbage collection, or defend why it's only for poor quality programmers.

    15. Re:You're full of shit. Ever hear of RAII? by bored · · Score: 2

      Garbage collection does not destroy performance, do not take the poor implementations of some languages as proof of inherent inefficiencies.

      I have yet to find a GC language that deals in an acceptable manner with problem sets that stress the memory subsystem.

      Its a well studied problem and many papers have been written about the amount of extra physical memory required in a GC system to meet the performance of a non GC one. Sure, if your working set is 1/1000th the memory of a machine GC will be as fast or even faster due to the lazy nature of the GC. But if your working set is even as large as 1/4 the memory of a machine the performance _WILL_ take a big hit. This is not important for single application small dataset desktop environments but its immensely problematic for ones which share the physical memory with other applications, or ones which have large footprints. Machines with 1-2TB of RAM command a significant price premium over ones with 256GB.

      Plus, most GC's have big issues when there is a lot of data flow over time, your working set may be fairly small, but if your mixing in a lot of transient short lifetime data its far to easy to confuse many of the GCs out there. Its a darn hard problem to solve, and even in non GC environments with some kind of cache its a difficult problem to solve. So, you come back full circle and you end up using language hints to the GC or rewriting your code to provide hints to the GC that the lifetime of particular pieces of data are short and they should be cleaned up/reused more frequently to avoid polluting the actual working set.

    16. Re:You're full of shit. Ever hear of RAII? by Darinbob · · Score: 1

      Generational garbage collectors do well with transient objects. Ie, generational scavengers assume all new objects are ephemeral and so just scans older items which are presumably fewer in numbers, any new that ends up referenced will be promoted to an older generation.

      However like many of them they will take up more memory so you're right there.

    17. Re:You're full of shit. Ever hear of RAII? by Anonymous Coward · · Score: 0

      These days, C++'s modern smart pointer classes make memory management a complete non-issue.

      So, do you need shared_ptr, weak_ptr, or unique_ptr? I ask because (a) choosing the wrong one will create bugs in your code

      No, you ask because you are incompetent in C++.

      This is software engineering. You don't have the omni-hammer that will handle all your nail-like problems. You need to choose the right tool for the job.

      So, do your homework, and learn about the different kind of smart pointers, or just stay away from C++ and refrain from criticizing something you don't understand.

      and (b) this is another example of something that is automatically determined in other languages.

      Are you sure?

      So why, in addition to normal references, are there weak references in Java?

      If you had done your homework, you would know about the "smart references" in that language, and know why they exist, that is, the very same reason their equivalents exist in C++.

    18. Re:You're full of shit. Ever hear of RAII? by gbjbaanb · · Score: 3, Insightful

      I hear this a lot - that it is faster, and my observations ( of a fair few GC-based language systems) are that is is tosh.

      It is faster to allocate - any system that doesn't care about memory usage is, and given an infinite block of memory that you always allocate from the end is super fast. The problem comes when you have to compact - this is a pretty slow operation. You'd never think about writing an app that copied large blocks of memory about every second, yet this is exactly what the GC does once your app gets going. De-allocation is also slower that most other systems as it has to consider finalisation (which, as you noted is shite) but it is necessary - you cannot have the system deallocate an object while it contains other resources that require freeing, and you cannot have a high-level language that mandates you to manually free those things (C does that, its a fine language for its purposes, but its not considered as high a level as you want).

      Then locality of reference, this is also mostly meaningless. I know you want memory blocks to be contiguous (imagine a string where each character was in wildly different memory locations), but compare what the GC gives you compared to the C style of allocating a block of memory and filling it with data - in a GC system you can allocate memory all over the place, and the GC will compact it to a point, but those blocks will never be exactly next to each other - which is what you want for the performance benefits. If you have a c style array, or a c++ vector, then you do get this kind of performance gain (at a cost of having to copy the memory into the pre-allocated buffer, but that's still no slower than the GC copying the same data when it does a compaction).

      So think about what the GC really gives you - the ability to pretend you don't care about memory.

      I'd say they made a huge mistake when designing GC systems, in that they always make it work with memory, but then apply it to objects. Object lifecycle is different to memory, you want objects to disappear when they're no longer used, only in some cases can you tell the system to destroy the object when it feels like it, but in most cases you want the object to clean itself up properly. There's no real reason why they couldn't have put RAII style semantics in (ie by making the system generate automatic calls to a destructor - like Microsoft now does with the using() syntax) and let the GC manage the memory allocation only.

      But still, for performance, a GC is nowhere near as fast as a deterministic program. Just look at the performance counters in a .NET app to see the GC going bonkers. I've seen it compacting the heap hundreds of times a second in a decently written large app.

    19. Re:You're full of shit. Ever hear of RAII? by Anonymous Coward · · Score: 0

      Keep blaiming the language for your inability to program in it.

      C++ is hard, therefore no one can write C++ correctly.
      Chinese is hard, therefore, no one can speak Chinese correctly.

    20. Re:You're full of shit. Ever hear of RAII? by Anonymous Coward · · Score: 0

      If you would rather have a GC randomly block your code at random times, you should try getting a job in banking, finance, aerospace, machine learning, indistrial controls etc. etc. You know, something other than a stupid smart phone app or web2.0 whatever. That's the problem with you kids. You think just because python, ruby and whatever else makes for easy development of "a piece of junk is good enough" style application like web development and smartphone apps that the rest of the programming world could deal with garbage like that and function.

      Industrial control automation doesn't have a "Refresh" button on the web browswer when your code hangs up while a steam valve isn't being released, waiting for your precious idiot-proof GC to do its thing.

    21. Re:You're full of shit. Ever hear of RAII? by Darinbob · · Score: 1

      Classic GC showed up with very fine grained language. Languages that had at least one allocation in every line of code, often more. Lisp, Smalltalk, functional languages like ML, etc. Many allocations are done implicitly. This is very different from things like .NET where allocations are relatively few and often done explicitly.

      As for the locality of reference, it really means that you don't end up with pages that are mostly empty, which is very important especially on a time shared system. It's not so big a deal with caches today, especially on systems with huge amounts of multi tiered caches.

      Those languages were also designed with very constrained memory compared to modern systems, such as 1 to 4 MB, very different from a GC design where you can just let a gigabyte fill up before worrying about it and put the mark and scan on a separate processor even. I think the modern system designs really have eliminated a lot of need to do GC smarter, at least for a basic application.

    22. Re:You're full of shit. Ever hear of RAII? by Anonymous Coward · · Score: 0

      It seems that you are judging all garbage collection by the weak implementations in many of the current languages. GC needn't have all that bad of properties if you do it right. Unfortunately, the ones with better properties are also more complex and hence are not implemented. For reference see http://www.cs.kent.ac.uk/people/staff/rej/gc.html

    23. Re:You're full of shit. Ever hear of RAII? by Anonymous Coward · · Score: 0

      If c++ is so hard to use, perhaps it is not good?

    24. Re:You're full of shit. Ever hear of RAII? by Anonymous Coward · · Score: 0

      A language is a tool. A tool that is extremely hard to used, compared to other tools that solve similar problems is a bad tool. If C++ requires much more of the programmer than a regular language then C++ is a bad language.

    25. Re:You're full of shit. Ever hear of RAII? by Anonymous Coward · · Score: 0

      So your one-size-fits-all GCs are supposed to compete with program-specific memory management by an experience software engineer ?

      I have some doubts.

    26. Re:You're full of shit. Ever hear of RAII? by Anonymous Coward · · Score: 0

      Garbage collection is a nod to terrible programmers who are not up to the task of managing their own resources in code.

      Makes sense. A bit like C++ is a nod to terrible programmers who are not up to the task of managing their own object orientation and are thus unable to use C? Or how C is a nod to the people who are unable to code quickly and efficiently in assembly? Or how assembly is a nod to the people who are to stupid to do simple machine code translations?

      Even if you are competent enough to build a house using nothing but an axe and a bunch of trees, sometimes it is actually helpful to have power tools and high quality prefabricated materials.

    27. Re:You're full of shit. Ever hear of RAII? by K.+S.+Kyosuke · · Score: 1

      so what you're saying is that when there's a fuckup in the code that causes a big problem, you'd rather it happened at random rather than in a deterministic place where you can see it occur, easily see what the problem is and fix it.

      Deallocating stuff is not a "fuckup". The problem is that C++ forces you to do the cleanup 1) in a continuous block of run time that is difficult, if not impossible to break up into more manageable pieces, 2) with the individual steps being overly expensive, because you need to maintain invariants (allocator state) after every single deallocation. This ends up as being very expensive. With certain modern GCs, however, you can 1) delay the deallocation, 2) run it piecewise, if necessary, that is, concurrently with doing useful work, 3) run it in parallel with doing useful work, i.e., you can dedicate a core for it. (Azul has been doing it for years on custom HW, and recently, they've ported their GC technology onto generic PC systems in form of the Zing memory manager.) I don't see any way of doing this in C++. Care to show me?

      --
      Ezekiel 23:20
    28. Re:You're full of shit. Ever hear of RAII? by K.+S.+Kyosuke · · Score: 1

      Smart pointers are far more efficient and deterministic than garbage collection

      Which is brilliant, as long as your programs are deterministic themselves. How about throwing concurrency into the bag? Dijkstra has always said that the only way of fighting nondeterminacy is to completely embrace it (or something like that, look at his guarded command language, for example)

      --
      Ezekiel 23:20
    29. Re:You're full of shit. Ever hear of RAII? by vilanye · · Score: 1

      It is not a fuckup on the programmers part, it is deficiencies in C++. In the case the poster gave, there is really nothing you can do in C++ to clean up trees gracefully and without interrupting the execution.

    30. Re:You're full of shit. Ever hear of RAII? by vilanye · · Score: 1

      Not with Java. Allocation is faster than malloc and deallocation is basically free. http://www.ibm.com/developerworks/java/library/j-jtp09275/index.html

    31. Re:You're full of shit. Ever hear of RAII? by vilanye · · Score: 1

      And Java now has stack allocation for short-lived objects so the last memory advantage C++ had is now gone.

    32. Re:You're full of shit. Ever hear of RAII? by Anonymous Coward · · Score: 0

      Yeah, only the stuff you work on counts. Keep on believing that while you wonder why no one gives a shit what you say.

    33. Re:You're full of shit. Ever hear of RAII? by gbjbaanb · · Score: 1

      "is basically free".

      lolol.

      deallocation is only basically free when you don't do it. Otherwise, you have to compact the heap - which is most certainly not free - or you'll either run out of memory, or you'll have to start allocating using a next-free-block algorithm, just like malloc does.

    34. Re:You're full of shit. Ever hear of RAII? by gbjbaanb · · Score: 1

      Languages like .NET allocate a massive amount of memory - objects are new'ed all over the place, and internally even more so.

      Take a look at the GC allocations counters in perfmon to see just how "few" allocations are actually done, you'll be surprised. Then take a look at the GC collection counters for an even bigger surprise.

      Locality of reference is the huge thing today - my 3ghz CPU only runs that fast if it can read memory, and it can only read at that speed from L1 cache (which is quite tiny). Sure they have MBs of cache at L2 or L3, but that's still slow, just faster than main RAM. So unless your app can fit into the L1 cache, its going to run slowly (relatively), and I mean slowly like its swapping (as it will be - swapping to the other caches or main RAM).

      The other aspect of a GC language is that it makes it easy for allocation to occur, so all these languages (which admittedly might be due to other factors, not the GC) tend to use a lot more ram than other types of system. More RAM = less that can fit in that cache = slower.

      Letting the GC fill up a gig of ram just means you have to wait a little longer before you see it stall, which won't be very long on today's systems that gobble up a gig in no time. Then it just has more work to do compacting the large heap - which is why one performance fix to GCs was generational collection - ie running the GC on a smaller set of the heap. This is why you don't see the GC pauses you used to on old Java programs.

  24. If you want sexy, you're in the wrong place by Anonymous Coward · · Score: 0

    GNU was never sexy imo

    That has to be one of the most ridiculous comments ever made about GNU or FSF. Jeez, talk about scraping the barrel.

    GNU was never aimed at being sexy. It was completely focused on software freedom, and has steadfastly stuck to that line.

    If you don't value that goal, and prefer "sexy", you need to get out of our hair fast and find your own interest group.

    1. Re:If you want sexy, you're in the wrong place by Anonymous Coward · · Score: 0

      Other AC never said it was supposed to be "sexy", just that it wasn't.

      Personally while I disagree with RMS and the FSF on a lot of things, I do have to admit they have never in my memory compromised on their core goals. RMS is a mildly extremist lunatic, but he's not a hypocrite.

      That said, I do agree that GNU really is the dragging edge software wise. They continue beating horses long after there is nothing there but horse mash (see: guile) and seem to outright ignore a lot of the non-philosophical advancement in software.

  25. He sounds like a whiny teenager by Anonymous Coward · · Score: 1

    I re-read Bonzini's post, and his complaints seem to boil down to this:

    1. There are no official or de facto C++ coding standards for GNU projects. There cannot be an official one because of Richard Stallman's opposition to C++. Not that his voice matters anymore to those working in the trenches, but hey, it's still annoying.

    2. The FSF isn't doing enough to help the GNU projects, either with funding or PR.

    3. It simply isn't "cool" to be associated with a GNU project anymore.

    Not saying that these aren't valid reasons for moving on... people make career decisions for any number of reasons. However it IS bad form to blast this out in a public forum as one's last act as official maintainer. Because many people read and remember the headline without reading and evaluating the content.

    I predict that Mr. Bonzini will soon regret that he doesn't work for a boss with such a detached style as Stallman.

    1. Re:He sounds like a whiny teenager by KermodeBear · · Score: 4, Insightful

      3. It simply isn't "cool" to be associated with a GNU project anymore

      That isn't quite what he said.

      3) Attaching the GNU label to one's program has absolutely no attractiveness anymore. People expect GNU to be as slow as an elephant, rather than as slick as a gazelle, and perhaps they are right. Projects such as LLVM achieve a great momentum by building on the slowness of GNU's decision processes, and companies such as Apple get praise even if they are only embracing these projects to avoid problems with GPLv3.

      Being part of GNU is not an emblem of technical leadership anymore, either. "If it is done poorly in Unix, feel free to replace it completely with something totally different and better". Is this still true of today's GNU?

      He said that GNU isn't attractive because the leadership isn't effective. It takes too long to make decisions. Sounds to me like "analysis paralysis", or at least typical management where people are too busy playing politics instead of trying to create something awesome.

      --
      Love sees no species.
    2. Re:He sounds like a whiny teenager by Anonymous Coward · · Score: 0

      What do you mean only sounds like a whiny teenager?

    3. Re:He sounds like a whiny teenager by Anonymous Coward · · Score: 0

      His boss is Red Hat. I wouldn't be surprised if they endorsed this move.

    4. Re:He sounds like a whiny teenager by LingNoi · · Score: 1

      Sounds to me like "analysis paralysis", or at least typical management where people are too busy playing politics instead of trying to create something awesome.

      Yes, that pretty much sums up the FSF for as long as I can remember.

  26. Re:I often disagree with RMS, but... by Anonymous Coward · · Score: 4, Insightful

    That's why all of the leading DBMS's and most Triple-A video games are primarily written in C++, as well as the guts of Google's search engine, Amazon's order and fulfillment system, Microsoft Office and Exchange server, etc.

    Because these people don't realize that C++ sucks that's why!

  27. Christmas by dutchwhizzman · · Score: 1

    It's Christmas and we have nerd rage on the intertubes. At least it's less boring than reading facebook updates or twitter feeds....

    --
    I was promised a flying car. Where is my flying car?
    1. Re:Christmas by Anonymous Coward · · Score: 0
  28. Comptibility with C... by betterunixthanunix · · Score: 2
    1. What compatibility with C? C and C++ diverged long ago; there is now only a non-empty intersection of the two languages.
    2. High-level languages often include an FFI, and that FFI is usually able to call compiled C functions. Lisp does it, Haskell does it, even Java supports this (and by extension, so do JVM languages like Scala).
    3. How is continuing to support the language that allowed programmers to create many of the most infamous bugs in the history of computing a source of language power? When I think of language power, I think more of things like the ML type system, the Lisp macro system, embedded definite clause grammars, etc. -- things that enable programmers to write code in a single day that would take weeks of effort to get right in C++.
    --
    Palm trees and 8
    1. Re:Comptibility with C... by maxwell+demon · · Score: 1

      What compatibility with C?

      The compatibility that you can freely exchange data structures with C code, as long as C knows about the data structure in question (which in good approximation means anything not containing classes or references).

      If C++ arrays included sizes, you'd not be able to receive them from C code, and not to pass structures containing arrays to C code. If you're writing pure C++ code, you generally shouldn't use raw arrays anyway.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    2. Re:Comptibility with C... by Anonymous Coward · · Score: 0

      So, you can exchange data with C if (and only if) you're careful about it.

      You can do that with Python, too. Or Java.

    3. Re:Comptibility with C... by maxwell+demon · · Score: 1

      Not much care is needed. Basically, in all but the most contrieved cases if the C compiler eats your definition then it will also understand your data structure. Especially you don't need to maintain separate C headers and C++ headers, but you cannot do that with Java.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    4. Re:Comptibility with C... by petermgreen · · Score: 1

      the vast majority of C structures are also C++ structures and will end up with the same binary representation in both.

      Making a header for a C library that can be used in both C programs C++ programs is basically a matter of adding a bit of boilerplate at the start and end and avoiding some of the hariest C constructs. The ease of doing so and the popularity of C++ combine to make the vast majority of C libraries available to C++ coders with nothing more than a #include.

      Whereas with most other languages even if they support efficient direct calls to C functions* you have to completely rewrite the function declarations and data structure definions and hope you got the mappings right so that the types match up in a portable manner. Sometimes there are automatic converters but in my experience they have trouble handling all but the simplest cases.

      * Java for example doesn't, they expect you to write a C or C++ wrapper to interface between native and java code. There is a third party hack called JNA but IIRC it comes at a severe performance cost.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
  29. Re:I often disagree with RMS, but... by jedidiah · · Score: 2

    The leading DBMSs?

    Those are likely older than you are.

    Probably not as much C++ in there as you think.

    --
    A Pirate and a Puritan look the same on a balance sheet.
  30. yosefk is a Pussy by Anonymous Coward · · Score: 1, Insightful

    He didn't master the tool called "C++", so he got himself a toy called "C#". Now he bitches about the tool when in reality his own conceptual and practical incompetence is to blame.

  31. Re:Who Gnu by jedidiah · · Score: 3, Insightful

    It's like I just got out of a hot tub time machine and it's 1995.

    Glacially slow development in GNU projects? That's not new.

    Linux would not exist without the annoying aspects of GNU and the FSF. They would have made their own kernel in a timely fashion and Linus may never have been motivated to make his own.

    In other news: water is wet and apples fall out of trees.

    --
    A Pirate and a Puritan look the same on a balance sheet.
  32. Is this about Copyright Assignment? by Xordin · · Score: 2

    The LWN article linked to is about "Copyright assignment" (http://lwn.net/SubscriberLink/529522/854aed3fb6398b79/)

    The author seems to complain that he cannot retain copyright over his work.

    Does that mean he doesn't want to code for free anymore?

    1. Re:Is this about Copyright Assignment? by BitZtream · · Score: 1

      Retaining copyright and coding for free are not mutually exclusive.

      It's only misunderstanding GPL zealots who think that.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  33. Horribleness in C++ by betterunixthanunix · · Score: 5, Insightful

    It is not hard to find examples of why C++ is bad. C++ is statically typed, but fails to deliver the sort of type system power that ML gives programmers. C++ is object oriented, but provides no metaobject protocol and forces programmers to resort to its clumsy templates system to do things that are not hard in languages with MOPs. C++ programmers are expected to figure out whether or not they should use a shared_ptr, weak_ptr, or unique_ptr, or if they should just give up on smart pointers and try to manage memory deallocation on their own (and, of course, there is no garbage collector, not even an optional one). The fact that "move semantics" and "r-value references" are considered to be highlights of C++11 speaks volumes about C++.

    For me, the major issues in C++ are not even the lack of features, although most people start there; I point to the difficulty with writing reliable code in C++ as the most important problem. C++ exceptions are only useful in cases where there is no possible way to recover from an error. There are situations in C++ where exceptions are the only way to signal an error; thus there are situations in C++ where recoverable errors become unrecoverable for no reason other than deficiencies in the language. Worse still, the very situations where exceptions are the only way to signal an error also happen to be the situations where throwing an exception is dangerous: constructors and destructors. Beyond handling errors, there is the lengthy list of undefined behavior in C++, much of which could have been defined without any ill effects. The C++ standard even fails to rule out programs that could not possibly make any sense; for example, having a non-void function without any return statements (yes, most compilers will warn you about that -- but warnings are not part of the standard, and if most compilers can detect this there is really no excuse for the standard not explicitly forbidding it).

    It is not hard to understand why "C++ is horrible" has become the go-to response to any comment about C++. It is a horrible language, and it is likely a culprit in the billions of dollars wasted on software bugs each year (buffer overflows, dangling pointers, etc.). It is a horrible language because it is inflexible, it lacks expressive power, and it makes things that are simple in other high-level languages needlessly difficult (how do you give the user a macro system that allows them to extend any feature of your program in C++? In some languages, that is as simple as giving the user access to a REPL, from which they can override or extend any behavior.). We are, unfortunately, stuck with this language, and will likely be stuck with it for a while (though I am hopeful that the need for reliable healthcare software will ultimately kill C++, MUMPS, and other awful languages).

    --
    Palm trees and 8
    1. Re:Horribleness in C++ by maxwell+demon · · Score: 2

      Worse still, the very situations where exceptions are the only way to signal an error also happen to be the situations where throwing an exception is dangerous: constructors and destructors.

      There's nothing dangerous in throwing from constructors. Of course destructors are a different matter.

      It is not hard to understand why "C++ is horrible" has become the go-to response to any comment about C++. It is a horrible language, and it is likely a culprit in the billions of dollars wasted on software bugs each year (buffer overflows, dangling pointers, etc.).

      So you claim you'd get more buffer overflows and dangling pointer with C++ than with C? I strongly doubt that. Remember, this is about C++ being a horrible language compared to C.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    2. Re:Horribleness in C++ by Man+On+Pink+Corner · · Score: 4, Insightful

      I think the most revealing comment about C++ comes from Stroustrup himself, in the first line of the preface to the first edition of The C++ Programming Language.:

      "C++ is a general purpose programming language designed to make programming more enjoyable for the serious programmer."

      I suppose if you enjoy connecting car batteries to your testicles you might enjoy programming in C++ as well. But for the rest of us, this line adequately demonstrates how little self-awareness Stroustrup brought to the language design process.

    3. Re:Horribleness in C++ by betterunixthanunix · · Score: 3, Interesting

      There's nothing dangerous in throwing from constructors. Of course destructors are a different matter.

      Unless the object is being constructed in the global scope, in which case there is nowhere for the catch block to be placed. Or if the object is being constructed as part of the destructor of another object, which would happen if you were using smart pointers and the destructor passed a smart pointer object to some function.

      Remember, this is about C++ being a horrible language compared to C.

      Fair enough, although for all of the complexity of C++ it does little to solve the problems we see with C (perhaps not more dangling pointers, but not substantially less either).

      --
      Palm trees and 8
    4. Re:Horribleness in C++ by Anonymous Coward · · Score: 0

      (though I am hopeful that the need for reliable healthcare software will ultimately kill C++, MUMPS, and other awful languages).

      MUMPS is extremely reliable, and faster than anything you can do with more modern tools. Stop tearing down what you do not understand.

    5. Re:Horribleness in C++ by maxwell+demon · · Score: 1

      Unless the object is being constructed in the global scope, in which case there is nowhere for the catch block to be placed.

      OK. Global objects with constructors have enough problems in C++ even without exceptions that I'd avoid them anyway.

      Or if the object is being constructed as part of the destructor of another object, which would happen if you were using smart pointers and the destructor passed a smart pointer object to some function.

      If the destructor code doesn't add a proper try/catch around that code, it's a problem of the destructor passing the smart pointer, not of the constructor of the class pointed to. Note that an exception could also be thrown by the operator new called from the new expression inside the smart pointer code, thus the constructor not throwing is no guarantee to getting no exception in this case. Of course exceptions are only safe if the calling code is written to correctly handle them. That's not specific to constructors.

      Fair enough, although for all of the complexity of C++ it does little to solve the problems we see with C (perhaps not more dangling pointers, but not substantially less either).

      Here I disagree. A lot of things where you need pointers in C can be written using C++'s container classes where the pointers are well hidden and already managed for you. In C++ you'd need to use pointers there which then could dangle if you get it wrong. Moreover, a lot of the cases where you have to use pointers can be done with RAII/smart pointers. Provided smart pointers won't dangle either, and even self-written RAII is so dead simple that it is hard to get wrong once you've learned the basics. It probably depends on the type of programs you write, but I'd say that C++ reduces dangling pointers a lot.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    6. Re:Horribleness in C++ by bored · · Score: 3, Interesting

      But for the rest of us, this line adequately demonstrates how little self-awareness Stroustrup brought to the language design process.

      Nah, what I read when I see that is, if your going to be writing code for 30-40 years, spending a few to learn the details of an extremely powerful tool will make the remaining much more satisfying.

      Of course you should spend a little time getting proficient in some alternatives. You may find that they agree with your more. But, I've been writing C++ code for nearly 20 years now. I've programmed professionally in a few other (non C based), and played around with dozens of others in my spare time. What I find is that for the core of a project I tend to return to C++, and I enjoy that work. Sure there may be significant amounts of code written in other languages (often for the UI) better suited to some particular task, but C++ tends to be the glue binding everything together, if for no other reason that its higher level than C, yet interfaces very cleanly with the C binary calling conventions. It also tends to be a language I can depend on to provide a reasonably efficient solution to any problem I may come across. I find, time and time again, doing work in a "higher" level language, some language feature turns out to be a fatal Achilles heel requiring some really hacky solution (often dropping to C) to solve.

      Modern servers, are amazing pieces of hardware, but I don't think a lot of the programmers writing code on them really realize it. When I see a little 4U server pulling down tens of GB/sec of external IO, and pumping millions of transactions a second, I wonder why the management UI (probably written in java) checking the status of a piece of hardware takes 30 seconds to start and lags for a second or two every time I click something. I wonder what it could possibly be doing that pegs out a 3Ghz CPU for longer than it took to boot an apple II GS at 2.5Mhz. I think, hey its running some kind of long self test, but I know that the self test options on buried elsewhere and take even longer...

    7. Re:Horribleness in C++ by jimbo · · Score: 1

      Exactly.

      It takes several years to become a good C++ developer and some don't have what it takes but for the experienced developer it's a very powerful and enjoyable tool. I've been at it for a while too (decades) and enjoy C++.

      C++ requires a bit more to master but it is worth it.

    8. Re:Horribleness in C++ by 21mhz · · Score: 1

      If the destructor code doesn't add a proper try/catch around that code, it's a problem of the destructor passing the smart pointer, not of the constructor of the class pointed to. Note that an exception could also be thrown by the operator new called from the new expression inside the smart pointer code, thus the constructor not throwing is no guarantee to getting no exception in this case. Of course exceptions are only safe if the calling code is written to correctly handle them. That's not specific to constructors.

      Thanks for spelling out why C++ is a horrible language for getting, you know, real shit done rather than grappling with the language.

      Fortunately, there are ways to make it usable by ignoring problematic parts of the language and standard libraries, and many real-world projects have them applied to their coding guidelines.

      --
      My exception safety is -fno-exceptions.
    9. Re:Horribleness in C++ by Anonymous Coward · · Score: 0

      Unless the object is being constructed in the global scope, in which case there is nowhere for the catch block to be placed. Or if the object is being constructed as part of the destructor of another object, which would happen if you were using smart pointers and the destructor passed a smart pointer object to some function.

      It's not dangerous, it's simply irrecoverable. What would be a reasonable alternative - after all, your program contains an invariant of that object being available and valid at all times.

      Destructors should not throw, that's true. That's why you should take precaution if executing any throwing code inside a destructor (and put such code in a try-block). Constructors are not special in this regard (and they can be marked non-throwing). Copy constructors for sane smart pointers are non-throwing.

      You can leak any resources with more "modern" languages, and with enough available resources, there's no guarantee that any sort of GC will ever run to take care of these leaked resources if the programmer forgot to take care of it. Are these languages dangerous beyond repair, too?

    10. Re:Horribleness in C++ by Anonymous Coward · · Score: 0

      Unless the object is being constructed in the global scope, in which case

      throwing from a ctor in global scope is the least of your problems, so lets ignore the existance of ctor try{} blocks and the fact that you can move the throwing code into the ctor body and catch it there for the moment.

      We have other things like:

      • Unspecified creation order, which makes it easy to access uninitialized variables
      • Global state, which is rarely a good idea
      • The singleton antipattern, same as global state
      • linkers which might optimize your globaly constructed object (and any visible sideeffects) out if the variable is not directly referenced by other code

      So avoid doing C style things like global state in C++, these are two different languages.

    11. Re:Horribleness in C++ by Anonymous Coward · · Score: 0

      LOL. Oh nos! Programmers will have to learn which smart pointer to use! We should just have one smart pointer that isn't perfect for all situations but is ok for most! Hurray!

      Also, you forgot intrusive_ptr and if you can't figure out the difference between a smart_ptr/weak_ptr and a unique_ptr you might want to take a look at Visual Basic. It's probably more your speed.

    12. Re:Horribleness in C++ by Anonymous Coward · · Score: 0

      Global objects with constructors have enough problems in C++ ...

      As someone whose day job is Java, I can say that the "In C++" can be removed from that statement. Enjoy trying to debug anything when the damn GUI is implemented as a singleton, and the static{ ... } block that does 90% of the application startup is broken. All you get is a NoClassDef error and a lot of experience writing trace statements.

    13. Re:Horribleness in C++ by Anonymous Coward · · Score: 0

      C++ is statically typed, but fails to deliver the sort of type system power that ML gives programmers. C++ is object oriented, but provides no metaobject protocol and forces programmers to resort to its clumsy templates system to do things that are not hard in languages with MOPs.

      The same template system that one sentence ago you were claiming doesn't exist?

      C++ programmers are expected to figure out whether or not they should use a shared_ptr, weak_ptr, or unique_ptr

      You use the one that has the semantics you need, obviously. If you can't figure out what that is, sell your computer and get a dog.

      or if they should just give up on smart pointers and try to manage memory deallocation on their own (and, of course, there is no garbage collector, not even an optional one).

      O RLY?

      (though I am hopeful that the need for reliable healthcare software will ultimately kill C++, MUMPS, and other awful languages).

      I am hopeful that the need for sentient humans will ultimately kill you, and other awful people.

  34. Re:I often disagree with RMS, but... by betterunixthanunix · · Score: 2

    Yeah, and here are some applications that run in demanding environments, that were not written in C++, and that you would probably be hard-pressed to write in C++ (at least with the same results):

    https://en.wikipedia.org/wiki/Dynamic_Analysis_and_Replanning_Tool

    https://en.wikipedia.org/wiki/FFTW

    http://www.haskell.org/haskellwiki/Haskell_in_industry

    Hm, that's interesting -- demanding environments, high stakes, and no C++. This might be a clue; it is the experience of a team working in another demanding environment, that used some C++ code but mostly Lisp, who were not terribly impressed by what they saw with C++ (it seems like it was more of a chore for them):

    http://www.paulgraham.com/carl.html

    Of course, that was ten years ago. Times have changed; now C++ has r-value references and smart pointers!

    --
    Palm trees and 8
  35. Re:I often disagree with RMS, but... by Man+On+Pink+Corner · · Score: 1

    Also, the barber says you need a haircut.

  36. An epic case of MISSING THE WHOLE FUCKING POINT!!! by Anonymous Coward · · Score: 0, Flamebait

    Wow... Here it's claimed that... RMS's worst flaw... Is his software design preferences?! And that is why copyFREE software is gradually leapfrogging copyLEFT?! Nonsense! That's like saying Hitler's worst flaw was his vegetarianism!

    I hate to see bad people attacked for wrong reasons, because it distracts the eye of history from their actual faults. In reality RMS is intelligent, charismatic, and does not have an oft-alleged hygiene problem. He might not be an accomplished programmer, but some of his lispy software design ideas did at one time have merit, though history has shown them to be less than ideal. C++ does contradict the UNIX philosophy of developing myriads of small tools, although it might be a valid option for huge projects like compilers and Web browsers (until a better C-killer language, like D or Go, is fully baked). Free software should handle such aesthetic disagreements amicably, through forking and choice. Vi / Emacs / Eclipse users can be friends, yadda yadda yadda...

    RMS's real flaw is his fanatical socialist / anti-capitalist politics, and that is precisely the philosophy from which radical copyLEFT has emerged!

    RMS's vision stands against the software philosophy of the free market, where copyfree and proprietary software exist in a symbiotic relationship, resulting in a more financially-solvent, more competitive, more innovative, and more advanced software industry world-wide. He thinks all businesses are evil, and that everything, starting with software development, should be funded by the state - presumably with him in charge.

    RMS and his supporters are horrendously hypocritical in their stance on "intellectual property rights". GPL relies on illegitimate government force far more than major software corporations do, because the latter mostly function through explicit contracts (SaaS, hardware bundling, support contracts, education / certification contracts, etc). GPL, on the other hand, is purely an "implicit contract", which, in a rational world, would have no more validity than sticking a post-it note on your forehead that says "by seeing me you are legally bound to kiss me"!

    The practical consequences of copyLEFT have been horrendous, not just for the software industry at large but for the growth of free software as well. CopyLEFT is inherently antagonistic and legally unpredictable, which gives the business world good reasons to avoid it. Billions have been wasted rewriting the same code (at times in roundabout ways) just to avoid copyLEFT restrictions! Since copyFREE code equalizes the playing field, the fact that so much open source software was poisoned by copyLEFT has benefited the strongest player in the market, which is Microsoft - whose dominance would have been greater still without the copyFREE software that has been utilized by its competitors like Apple, thus restoring a more competitive environment.

    --libman

  37. MOD PARENT UP! by Anonymous Coward · · Score: 1

    There is no shortage of insightful and very detailed negative critiques of C++ on strictly objective engineering grounds, but the parent distills just the essence of the argument and does so without raising heat. Well written and very concise.

    As both an educator and a freelance developer who has worked in many commercial C++ teams, I can only shudder at the extreme myopia of those who advocate in favor of C++ for applications development. It has its useful niche, certainly, like all languages do, but that niche is not large-scale applications development. To use an unsafe language for that purpose is to knowingly accept that your application will be bug-ridden and a wide open security risk. This is not negotiable.

    Large programs have bugs in proportion to their size, this absolutely cannot be avoided, and to make matters worse, C++ has by far the most complex syntax and semantics of any programming language in existence, which amplifies the inherently high bug rate of the unsafe language. If you do not accept this, then you are in denial of CompSci fundamentals and a direct contributor to the software crisis.

    Use some insight, people. You can't juggle for long periods of time with a bunch of scalpels without cutting yourself. And you can't program large applications with an unsafe language without the software equivalent of blood and pain. Use some judgment.

    1. Re:MOD PARENT UP! by SomeKDEUser · · Score: 1

      It's because of people like you that once in a while a horrible, slow, unresponsive desktop app is foisted upon users. Because java or c#.

      I write c++. I know which part of my code will be touched by less experienced programmers, and I code these parts without the most esoteric bits of the language. I know which parts need speed and low-level optimisations. And I know which part will require extensibility. C++ allows both the genericity and the low-level optimisation. No language has quite the range of possibilities c++ has. Great power, great responsibility and all that.

      Mem leaks are easily fixed if you a) don't create them, and b) run you code through valgrind once in a while. Large programmes are typically sensitive to runtime performance, and the performance of the whole thing might well evaporate from a thousand small overheads from "safe languages".

      But at the end of the day, no amount of language design will save you from programmer errors...

  38. RMS suppressed C++ and Flash for the same reason by Anonymous Coward · · Score: 1

    RMS suppressed C++ and Flash support for the same reason Adobe and Microsoft are fading them away: Because they were and are ill conceived crap meant to wall garden programmers with property libraries and complexities that rely on a dedicated and nontransferable skill set.

    Writing in C++ is only done out of ignorance or reliance on property libraries. No person in his right mind chooses it. Hell, even Microsoft is trying to put it aside in favor of C# and this guys are crazy as Win8.
    I tend to think the only reason there's even a C++ compiler in Linux is because the GCC guys felt bored with C since it was so rock solid perfect and decided to experiment. I'm completely serious. Most of the linux kernel is shiny-new-feature driven and the compiler is much the same.

  39. Re:An epic case of MISSING THE WHOLE FUCKING POINT by Anonymous Coward · · Score: 0

    You are a fucking idiot.

    Evidence suggests otherwise.

    Go suck on some Koch brothers cock.

    Rationality benefits all who are rational.

    --libman

  40. Re:I often disagree with RMS, but... by Anonymous Coward · · Score: 0

    C++ has had smart pointers for over 15 years (as long as they've had templates). It was just up to the local project architect, or senior programmers (or maybe even a clever junior programmer, for the use of his part of the codebase) to write the code. It wasn't rocket science, but it does require some language experience and careful thought. The "official" auto_ptr template was a mess and has been deprecated.

  41. Irreconcilable off-by-1 item index differences? ;) by D4C5CE · · Score: 1

    This boils down to these three points:
    1) To put it somewhat bluntly,

    ...to RMS, these absolutely had to be points 0 thru 2? ;-)

  42. The takeaway for me is... by mccrew · · Score: 4, Funny

    I guess the big news here to me was that GNU grep and sed were being maintained. :)

    --
    Hey, Windows users, there is no such thing as "forward" slash, there is only slash and backslash.
    1. Re: The takeaway for me is... by jfengel · · Score: 1

      Seriously. Do they require any actual work? Or are they just upgrading the features to the point where they can read email and browse the web?

    2. Re: The takeaway for me is... by drinkypoo · · Score: 1

      Seriously. Do they require any actual work? Or are they just upgrading the features to the point where they can read email and browse the web?

      You can trivially find out precisely what work is going on (i.e. from the bug queue from grep) and see that it's generally maintenance. You could trivially have found this out by searching for "gnu grep bugs", e.g. with google.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  43. why not skip to D? by Anonymous Coward · · Score: 0

    May be GNU should skip C++ and go for the D language.... see dlang.org

    1. Re:why not skip to D? by Anonymous Coward · · Score: 0

      D isn't all sunshine and rainbows either. I think deadalnix summarizes some of the problems nicely in this http://forum.dlang.org/thread/kaqbkp$1kqj$1@digitalmars.com?page=2 discussion.

  44. Ruby is NOT on the "right track". by Anonymous Coward · · Score: 1, Interesting

    I'm sorry, I find it extremely laughable that you can suggest that "Ruby is on the right track."

    Nearly everything about Ruby is wrong. That's why it has such a rotten community surrounding it, and such rotten frameworks and apps (like Rails) built upon it. Pick just about any factor, and Ruby will be doing it the worst way possible.

    1) Performance: Ruby's performance is virtually always abysmal, while C++ code generally performs very well. This makes Ruby pretty much unusable for anything serious. When foolish people do try to use it for something serious, they usually end up having to throw far more hardware than should be necessary at it, or have to rewrite their code in a better-performing language.

    2) Portability: C++ is far more portable than Ruby. It's also much more convenient to distribute C++'s binaries to end users than it is to have to distribute a Ruby implementation, or have the user try to provide the correct version themselves.

    3) Community: The C++ community is made up of some of the best minds there are. These people usually have extensive academic backgrounds, followed by decades of real-world software development experience. They are professionals in every sense of the word. The Ruby community, on the other hand, is absolutely toxic. But that's not surprising, given how many of them are still inexperienced teenagers, and "manchild" is the best way to describe the ones who are older. Oh, the C++ community also welcomes women, and treats them as equals, while the Ruby community has been shown to hold extremely sexist and bigoted attitudes toward women.

    4) Maintainability: The features of C++ help with the creation of large-scale software systems, often worked on by thousands of people over many years. C++ software is extremely maintainable compared to Ruby code. Ruby advocates failed ideas like dynamic typing and monkey patching, both of which hurt the maintainability of an application. It's far easier to get up-to-speed with a complex C++ system than it is to do so with even a simple Ruby app.

    5) Developer Productivity: C++ has far more robust development tools, including compilers, IDEs and debuggers, than we see available for Ruby. Furthermore, C++'s compiled nature catches many issues early, which makes unit testing and bug fixes far less of an issue than we find when using Ruby.

    I think you get the idea. It's clear that C++ is superior to Ruby in essentially every way. In reality, there's no comparison between the two. C++ is the more sensible language to use, even for web development.

    1. Re:Ruby is NOT on the "right track". by Rufty · · Score: 0

      The Ruby community, on the other hand, is absolutely toxic.

      I love the ruby language, but the community, yes. Toxic.

      --
      Red to red, black to black. Switch it on, but stand well back.
    2. Re:Ruby is NOT on the "right track". by vilanye · · Score: 1

      1. Performance has nothing to do with language design and everything to do with implementation. For 99% of the use cases Ruby is fast enough.
      2. Yeah, C++ is more portable. What percentage of programs run on more than one platform, 5%? 1%? Rarely an issue
      3. How is the Ruby community toxic, I think you are getting Ruby and Rails confused. The rails community is where the drama is, not the ruby community. If you can find a humbler man than Matz, I would like to see it.
      4. Like C++, in the hands of a crappy coder, you get an unmaintainable mess, but in skilled hands Ruby is terse, easily readable, infinitely flexible and a joy to maintain. It is obvious that you don't have the first clue about Ruby. I will take your 100,000 line C++ program and put it up a functionally equivalent 10,000 line Ruby program in a maintenance contest any day of the week. An order of magnitude less lines of code and next to no line noise in Ruby makes it way more maintainable.
      5. productive> environment to> >>. If you have to rely on the compiler to do your debugging you have lost the maintainability you claim. Ruby is compiled by the way.
      I think it is clear that you have zero experience and knowledge of ruby.

    3. Re:Ruby is NOT on the "right track". by Anonymous Coward · · Score: 0

      Performance has something to do with language design. Especially, languages designed with the mindset that performance is an implementation detail (like ruby) invariably have horrible performance (like ruby).

    4. Re:Ruby is NOT on the "right track". by vilanye · · Score: 1

      Stupid slashdot wiped my angle brackets, my point that got eaten is that C++ is lost in a sea of angle brackets, worse than lisp with parens.

  45. Heretic or Apostate by JDOHERTY · · Score: 1

    "The author is quick to note that he has no philosophical disagreements with GNU or the FSF." - oh so he's a heretic not apostate, thank Linus! But get the pyre going anyway.

  46. Oh no! by Anonymous Coward · · Score: 0

    To think of all those great new features in grep and sed we've be missing out on!

  47. Re:Who Gnu by LizardKing · · Score: 1

    Linux would not exist without the annoying aspects of GNU and the FSF. They would have made their own kernel in a timely fashion and Linus may never have been motivated to make his own.

    Interestingly, the original architect of the Hurd kernel wanted to use 4.4BSD as a starting point, but was overrulled by Stallman who wanted to use Mach.

  48. Re:RMS is holding free/open source back by dkf · · Score: 1

    We are about ten years overdue for someone to lead the FSF. All the successes in open source and free software have been despite RMS, not because of him.

    You might be more fair and qualify that with the word "recent". RMS has been on his crusade for free software for far longer than 10 years, and some of the key enabling things early on were tools he and the FSF created. GCC was a crucial part of this, as it broke the specter of vendor lock in at the tool chain (a real threat at one point).

    But the world has moved on.

    --
    "Little does he know, but there is no 'I' in 'Idiot'!"
  49. this is just plain... by korgitser · · Score: 1

    ...awk-ward!

    --
    FCKGW 09F9 42
  50. Re:RMS suppressed C++ and Flash for the same reaso by maxwell+demon · · Score: 1

    C++ is an open standard. You can even compile it with the GNU compiler. There's absolutely nothing proprietary about C++.

    --
    The Tao of math: The numbers you can count are not the real numbers.
  51. ESR latest project, a python disaster by loufoque · · Score: 2, Interesting

    This reminded me of the latest project of ESR: a system to replace the CIA IRC bot that sends messages to IRC channel when people commits things to repositories. http://www.catb.org/esr/irker/
    He chose to implement it in Python, probably because of distaste for C++.

    After several days of trying to use it and running into severe bugs (random crashes, often locks up, doesn't deal well with unstable connections, excessive memory and CPU consumption, data races and general unreliability -- and of course it required latest python and some very svn version of some library dependency, no fun otherwise) I gave up on trying to fix it and rewrote it from scratch in C++ instead.
    In two hours I had a working lightweight and extremely robust implementation of the protocol he defined. I followed the project for a while and it seems it kept having major usability issues for weeks, to the point where many people were reporting bugs and contributing hacks to fix them.

    All because it was poorly designed and overengineered. The guy actually made the whole thing multi-threaded (with no knowledge of how to synchronize things properly) even though it wasn't needed.
    I think one of the bad aspects of that old generation of notorious hackers is that they're not that good, but their name pulls people in.

  52. Re:RMS suppressed C++ and Flash for the same reaso by loufoque · · Score: 2

    There is nothing about C++ that makes it proprietary.
    It's designed by a committee in which both companies and academia are very active.

    As someone part of both the C and C++ standards committees, I can tell you that interest in evolving the C++ language is much higher than in evolving the C language.
    Some of that evolving is done by academia which do it for the pleasure of making programming languages better, while companies do it to better push their technologies. For a couple of examples IBM is interested in standardizing decimal floating-point, since their hardware natively supports it, while Intel and Microsoft are working on standardizing parallel features.

  53. Emacs, gcc etc all over again by dbIII · · Score: 2

    His style of running things and divergent goals from the actual projects just rubs people up the wrong way at times. With emacs it was the ability to take advantage of features in an X-Windows environment (which the hurd didn't have, so he forked emacs away from the developer) and with gcc it was to improve compilation of linux binaries (which didn't help hurd).

  54. Can him already by Anonymous Coward · · Score: 0

    News Flash - RMS is a fossil whose refusal to use modern technology completely absolves him of any relevant opinion on the state of software, hardware, the internet, and privacy. Anyone listening to him is equally out of touch.

    Why the internet continue to post content about him is simply baffling. He's essentially the gross uncle, who eats his own bodily excrement and talks about why it should be okay to have sex with children and parrots, who you don't want your friends to find out about.

  55. Summary is missing the link to the scathing rant.. by D'Sphitz · · Score: 3, Informative

    In a scathing rant posted to a GNU project mailing list

    Where is this scathing rant? All I can find is a extremely polite, well written airing of grievance and resignation.

  56. Re:I often disagree with RMS, but... by rev0lt · · Score: 3, Insightful

    Yeah, and here are some applications that run in demanding environments, that were not written in C++, and that you would probably be hard-pressed to write in C++ (at least with the same results):

    Example 1: a DSL. Nice, but for demanding environments, go check ADA - full blown OOP - and generally slower than C++.
    Example 2: A FTT routine, how nice. Having worked with assembly implementations on several architectures, hardly a good example - except if you look at all that "demanding" software that also uses FFT in C++. And its not like C++ is a black container unable to use 3rd party libraries.
    Example 3: A fringe functional language. Don't get me wrong, I actually like some of the concepts of Haskell, but it is not a mainstream language, nor is an "industry standard" (except some specific companies), And Haskel is actually SLOWER than C++. A lot.

    Why are you bitching about "demanding environments"? Can you enumerate which companies RMS has worked for? Because what I see is a guy completely out of touch with reality. And you may like him a lot, thats your problem, but if he had his way, you'd be compiling your ghc with EGCS today. If you think C++ is so broken, tell me - what is the size (bytes) of an unsigned int in C? Why promote so shamelessly such a defect-prone language - specially after a decade of vunlerabilities related to the poor implementation of the standard library? Why don't you bitch about that?
    And you have *tons* of demanding environment examples done with C++, Python, PHP, Java, Ruby, C#/.NET, etc. and only a few done in pure assembly. Even most operating systems try to use as little assembly as possible. So your point is?

    Disclaimer: I don't even like C++. It has most of the atrocities of C coupled with a half-assed OO support.

  57. Re:An epic case of MISSING THE WHOLE FUCKING POINT by unixisc · · Score: 1

    You are right about Stallman's extreme Leftist views, and being familiar w/ your link, I'm not sure why you say that he attacks bad people. While people can have different opinions about Bush, Romney, Obama and so on, the causes Stallman embraces worldwide are wacko Left. In the Mid East, w/o saying so in so many words, he backs Jihad terror groups against Israel. And his views on pedophilia and necrophilia - how on earth can anyone consider that mainstream? And the grep/sed guy has only noticed that he is a problem now?

    From the OP

    Additionally, he noted that the FSF is not doing enough to help GNU "Projects such as gnash are bound to have constant funding problems despite being (and having been for years) in the FSF's list of high priority projects.". Finally:

    "Attaching the GNU label to one's program has absolutely no attractiveness anymore. People expect GNU to be as slow as an elephant, rather than as slick as a gazelle, and perhaps they are right. Projects such as LLVM achieve a great momentum by building on the slowness of GNU's decision processes, and companies such as Apple get praise even if they are only embracing these projects to avoid problems with GPLv3."The author is quick to note that he has no philosophical disagreements with GNU or the FSF.

    He is partly right, and a better case in point is HURD. Nothing makes the FSF look like a bunch of opportunistic thieves than abandoning HURD for all practical purposes, and trying to hijack Linux instead under a brand 'Linux-libre'. Also, by starting so many GNU projects when there ain't enough people to complete the first few, they have not done themselves any favors. Like I pointed out in the Trisquel thread, most of the GNU programs are geared towards programmers. I mean lisp, guile, scheme, et al - how important is it to support all languages, as opposed to supporting a handful, and then using those to create quality software?

    The choice of whether to program in C, C++, Objective-C, Objective-C++, C#, Java or whatever should be a decision of individual programmers, since the FSF is not a company. RMS makes things ugly when he opposes bytecode distribution, even though that achieves a lot of the portability and helps proliferate Java software across various platforms. In this case of C++, regardless of whether C++ is better or worse than C - and obviously, the programming world is divided on that issue - it would be a better idea to have all the tools available and let the programmers decide. But RMS, contrary to his 'freedom' sloganeering, has never been about choice in software any more than he is about choice in his pet issues - politics.

    Also, nothing demonstrates Stallman's anti-business attitudes better than his advocacy about 'freedom'. First, all the software had to be liberated, and when programmers asked how they should make their money, he stated that they could make their documentation a service. When programmers started doing that, he started demanding that the documentation should be free. When programmers, in order to get around the software support issues, started offering application services, he came out w/ AGPL. When TiVo, using legitimate GPL conditions, came out w/ a product where the code could not be altered, he came out w/ a new GPLv3 in which he had a specific clause slamming the company, calling it the 'anti-TiVoization' clause. Which company in their right mind would want to make their software GPL, knowing that even if they figured a way to make money, Stallman will do what he can to close that loophole?

    On a final note, I agree w/ other posters above as well - I had no idea that grep & sed were still under maintenance. Honestly, the author should think of writing something new, instead of something that existed from the 70s. Maybe things like extending Qt to cover Objective-C, or some such activity, which would be more useful than maintaining the functionality of 2 utilities that nobody other than programmers use.

  58. Whoa by nomadic · · Score: 1

    Someone actually maintains sed and grep? I would think after FORTY years you can probably just let grep do its thing on its own.

  59. STL doesn't work? by Frankie70 · · Score: 1

    It works fine for me. I have been using Microsoft's STL for 10 years now without problems - it's implemented by Plauger.

  60. Re:Who Gnu by rev0lt · · Score: 1

    Linux would not exist without the annoying aspects of GNU and the FSF.

    Given that Linux did not start as a GPL project, I seriously doubt it. And it is widely known that Linux was started because of licensing issues with Minix, and because 386BSD wasn't available.

    They would have made their own kernel in a timely fashion and Linus may never have been motivated to make his own.

    A couple of years after Linus started Linux, the 386BSD was made freely available. Even considering that Hurd was started almost one year before Linux, if not for Linus work (and all the volunteers), RMS and the whole GPL thinggy would be a remainder of the nineties, like pagers and AOL, while we'd be using BSD-derived workstations.

  61. Re:RMS is holding free/open source back by rev0lt · · Score: 1

    GCC was a crucial part of this

    What you know today as GCC was done as "fork-and-merge". There was a lot of resistance in integrating the patches/changes provided by EGCS. Had he get away with it, GCC would probably be dead, and you'd be running a fork of it.

  62. Software liberation not necessary for open source by unixisc · · Score: 1, Interesting

    but this is my account of Richard Stallman's presentation to the Yorktown High School Computer Club for anyone who would be interested.

    Reading that linked article reminded me - the printer deal that was the cause of him starting this whole thing - it could have been solved w/o an anti-business manifesto demanding that all software be free. All he needed to have done was demand that whenever software changes hands - legally or illegally, the source code must accompany it. He needn't have said squat about re-distribution rights.

    After all, a lot of companies did agree that open source, as in making sure that source code always accompanies binaries, is a good idea. As long as they are allowed to restrict distribution to only their paying customers, this is not an anti-business business model. The software vendor sells their software - both binaries and source code - to their customers, and in the license, they explicitly prohibit its redistribution. That way, if the customer needed to customize the thing for their own usage, they could hire their own programmers, dip into the source code, make whatever modifications they need, and use it in-house, w/o threatening the business of the ISV. Or if the ISV goes tits up, the customer can hire their own programmers to maintain that software as long as they need to, rather than be forced to sink cash into a new platform. This is a win-win scenario for both the ISV and customers.

    By focusing on the liberation of software, rather than just ensuring that the source accompany the binaries, Stallman screwed a fantastic opportunity here - maybe deliberately, given his Marxist world views. The above idea would preserve the interests of ISVs as well as that of customers, making it truly workable. But by insisting that the ISV can't prevent re-distribution, Stallman made the GPL essentially a poison pill. After all, as it has been demonstrated, there are very few ways to make money on software that is GPLed. All this would also have avoided a gazillion licenses, since most of the variations are due to variations in redistribution clauses.

    Open-source, as defined by OSI, has some of the same issues by insisting on the freedom of re-distribution. Since they are not leftist fanatics like Stallman, one would hope that at least they would see it this way, and allow for a total non-free software to get open source endorsements as long as source code accompanied the binaries. That would achieve all the OSI goals of promoting better software, while also earning it the broad based support of the software industry.

    Getting back to the FSF, the other issues that they espouse, such as security & privacy, are things they could support, but which are totally separate issues from open source. One could put bots and other spyware into open sourced software as well, and a consumer would still have to know where to look for them to flush them out. Instead, have totally different movements on those other issues.

    But given how everyone knows that TINSTAAFL, the 'free-software' or 'software-freedom' concept has to go. Free is a beautiful word, and doesn't deserve to be maligned by the Orwellian language of Stallman and his club.

  63. Re:Who Gnu by unixisc · · Score: 1

    Is he still w/ the project?

  64. Easy solution: by Tablizer · · Score: 1

    Just Grep the 'net for a new maintainer

  65. Re:Software liberation not necessary for open sour by Ironchew · · Score: 3, Insightful

    He needn't have said squat about re-distribution rights.

    Except that redistribution rights are important today. Why should a company be able to restrict me giving away copies of programs?

    Open-source, as defined by OSI, has some of the same issues by insisting on the freedom of re-distribution. Since they are not leftist fanatics like Stallman, one would hope that at least they would see it this way, and allow for a total non-free software to get open source endorsements as long as source code accompanied the binaries. That would achieve all the OSI goals of promoting better software, while also earning it the broad based support of the software industry.

    As far as Stallman is concerned, it's the philosophy that comes first, not "industry support" of whatever the current fad is.

    Stallman screwed a fantastic opportunity here - maybe deliberately, given his Marxist world views.

    Your political dog-whistling really doesn't have any bearing on the merits of Free software.

  66. Re:An epic case of MISSING THE WHOLE FUCKING POINT by Anonymous Coward · · Score: 0

    You are right about Stallman's extreme Leftist views

    I try to avoid the irrational left-vs-right "wing" terminology. It originated as a schism within the socialist movement, with those seated on the "right" of some historical deliberative body being "nationalist socialists", and those on the "left" being "internationalist socialists". I reject them both.

    One possible exception may be when I'm highlighting the distinction between copyLEFT and copyFREE with upper casing, just as a reading aid (unless I forget). The former is an application of copyright that stands for a particular political special-interest group, while the latter stands for freedom.

    and being familiar w/ your link,

    By this do you mean the the thread on the Free State Project forum?

    I'm not sure why you say that he attacks bad people.

    I think you've misunderstood me. I was saying that Stallman is often attacked by other people for all the wrong reasons - and not for the right reasons to be severely critical of him.

    Personal attacks against Stallman are often focused on his lifestyle choices, and I think those attacks are often irrational. Hippies are a-OK, as long as they don't initiate aggression (i.e. socialist politics) against others. Even voluntary communists are OK (even though their philosophy is so dysfunctional it is almost never practiced voluntarily). I can respect lispy emacs users, even though I reject GNU Emacs and its license. I can agree with some of Stallman's software design ideas, while disagreeing with others.

    What is irreconcilable between me and Stallman is that he believes in using government-veiled violence to get his way, and I refuse to recognize that violence as legitimate.

    In the Mid East, w/o saying so in so many words, he backs Jihad terror groups against Israel.

    I am rather critical of Israel myself (although I do recognize its accomplishments as warranted). Israel could have been established without violating the Property Rights of the Palestinians... But that's a whole nother debate...

    And his views on pedophilia and necrophilia - how on earth can anyone consider that mainstream?

    Actually those are some of the issues where Stallman is mostly right (except he'd probably fail to fully recognize Parents' Rights in regard to the former). Pedophilia is clearly an illness, and its indulgence is clearly unethical, but it doesn't constitute rape in every single case. The hysteria over "kiddy porn" is probably the #1 threat to Internet freedom that exists today!

    The choice of whether to program in C, C++, Objective-C, Objective-C++, C#, Java or whatever should be a decision of individual programmers, since the FSF is not a company. [...]

    A group doesn't need to be "a company" (presumably you mean like with salaried employees) in order to have working standards. There's great usefulness to organizations that set policies for the projects that they accept under their umbrella, as long as people are free to fork off on their own if they so choose. We can have the best of both worlds - rational order as well as freedom. There's nothing wrong with having large "cathedrals", as long as there's a "bazaar" of competition between them.

    I myself firmly believe that having every component written in a different language is horrendously ugly! I'm a big fan of all UNIX systems programming taking place in C, and brand new future-oriented "post-POSIX" OS projects starti

  67. Re:I often disagree with RMS, but... by statusbar · · Score: 1

    ...More like the barber shows you the cool new shaver that you didn't understand and that he helped design.

    An interesting exercise is to compare the internals of Clang, written in more modern C++ versus gcc, written in C, and to decide for yourself which one you'd rather maintain.

    http://llvm.org/svn/llvm-project/cfe/trunk/

    http://gcc.gnu.org/viewcvs/trunk/gcc/

    Note that Clang is written in modern C++ and is also faster than GCC.

    One benchmark shown is that clang loading a parse tree of 'precompiled headers' is almost the same time as it takes to just compile the headers.

    FWIW, I'm switching to Clang wherever it is supported because of all of the regressions in GCC for vectorization in C and C++ since GCC 4.2

    --
    ipv6 is my vpn
  68. Re:I often disagree with RMS, but... by Anonymous Coward · · Score: 0

    Hardly fair to compare a 25-year-old project with Clang. Code ages like dead fish, regardless of what language it's written in.

  69. The alternative is... Gnome 3, Windows 8, Unity by SmallFurryCreature · · Score: 2

    Lets face it, we have recently had some experience with projects that are the core of computing where it went terribly wrong. The GNU tools are so basic to Linux that if they underwent the same rapid development as others, they become unusable. On the other hand, if they don't keep up, they become obsolete. And when it comes to a tool chain, you can't just modernize one because it is part of a chain and it would break the chain. Simply chaining a few parameters for grep would destroy how many scripts?

    You can't even just rewrite it in a new structure while keeping the interface the same because that would mean your new version would need to achieve in months a complete feature and robustness parity with the original program. This was one of the things that bit Gnome 3 hard, it just wasn't complete when it was supposed to take over from its predecessor. Stuff like Hurd and Grub 2 suffer similar programs, their goals may be noble and far reaching but they are/were for a long time not even suited as a replacement in all but the most trivial setups.

    And frankly, I don't care if the GNU toolset is slow as hell or doesn't get many new gadgets... many of these programs are so essential, so basic to unix style computing that you can wonder if they ever need to evolve. How long has a hammer been a hammer and just right for being a hammer?

    Proof me wrong, write a new grep tool. Get it adopted and supported. It will be a very long road. And all along the road you will have a tool that is not yet as widely installed, robuust, tested, documented and understood. The end destination better be paradise to make that worth it.

    This guy might be disappointed with RMS support now but just wait until he tries to get support for an alternative grep for people to use, document, bug report, debug. Many have tried such things, most failed.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

  70. Fortran! by mbkennel · · Score: 1

    "Name these languages that offer more performance AND safety than C++"

    Yes, Fortran. Fortran 2003/2008 is a very good conventional straight-forward programming language, except for I/O. It has a better memory and execution model for high-performance computing.

    http://en.wikipedia.org/wiki/Fortran#Fortran_2003

    And it supports successful code-reuse, proven empirically over decades, even when hobbled with backward compatibility with ancient cruft/

    www.netlib.org

    Fourier transform routines written in the 1960's are still good. Ugly to look at, but it will compile and link and work just fine.

    http://www.netlib.org/go/realtr.f

    And of course it doesn't omit obvious things like FUCKING MULTIDIMENSIONAL ARRAYS for real, in the language, and interoperable everywhere. And they can start at 1 or 0.

    And a pointer is not the same as an allocatable array/structure.

  71. Re:An epic case of MISSING THE WHOLE FUCKING POINT by Elendil · · Score: 1

    > Billions have been wasted rewriting the same code (at times in roundabout ways) just to avoid copyLEFT restrictions!

    Billions have been wasted rewriting the same code (at times in roundabout ways) just to avoid proprietary restrictions, too. People who want to use copyleft code only have to release their changes, it's not such a big deal...
    From the point of view of the software ecosystem, I'd say that the GNU toolchain has given birth to what I consider the most successful open-source project ever, namely Linux (probably a billion-dollar success overall), mostly under the GPL. From an industrial point of view, copyleft hasn't harmed Google too much, and Apple is definitely not a model for free software.

  72. Eheh, explain Linux vs BSD then by SmallFurryCreature · · Score: 3, Insightful

    Microsoft LOVES BSD, they can take code from it and never contribute anything back. But it is Linux that got popular not BSD.

    BSD has its supporters, like MS, who don't actually do anything to support it. Linux has supporters, like IBM, who do massive contributions.

    The GPL has won, the only ones who hate is who want stuff totally free and not contribute anything back. Well, for those people there is BSD. Enjoy.

    The fact that Linux is on its way to become the biggest OS, the most used and the most installs (thanks to Android) says enough that the GPL works a LOT better then BSD in encouraging industry AND consumer adoption.

    And still kiddies who never will amount to anything claim that all the Linux users and contributors are wrong. OPEN YOUR EYES!

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

    1. Re:Eheh, explain Linux vs BSD then by davydagger · · Score: 1

      "Microsoft LOVES BSD, they can take code from it and never contribute anything back. But it is Linux that got popular not BSD. "

      its because many of the companies, that profit from the based linux communities, give back. IBM, Intel, RedHat, etc....

    2. Re:Eheh, explain Linux vs BSD then by WaywardGeek · · Score: 1, Insightful

      I was going to reply with something along the same lines... GNU GPL won. The world runs on GNU as well as other respected FOSS licenses. You're point that Linux is becoming the world's most used OS is quite relevant. Linus continues to make software easier to write and share, with tools like git. However, the most popular GNU/Linux distros went the other way - binary incompatibility, complex and out dated package managers, and gate-keepers who revere the stability of their distro to the detriment of progress. With Android, Google wiped GNU off of Linux and started over, with a far simpler. more secure, and stable computing model. Then they opened it to developers who could publish any crappy app they like. The result is hundreds of thousands of apps, most of which are useful to someone.

      Free software developers like me need a new home, where we can share code and apps as easily as people sell binary-only apps on Android. Computing continues forward, but GNU/Linux lags behind. Last night, I watched my daughter using an iPad with a keyboard, and I had the sudden realization that I was watching the future of computing: touch screens with keyboards where all the software is rewritten or massively customized for this environment. She was moving her hands like lightning, zooming and panning, and then hammering out text on the keyboard, faster than any keyboard/mouse combo could allow. With the Minecraft PE app, she showed that creating 3D content on a tablet is faster than the best desktop environment, and even first-person-shooters are more natural. I remain pessimistic that we can build successful free software tablet environment starting with GNOME or KDE. A free (as in freedom) software app store for Android would be awesome. I'd love to see a free software Android fork with a modern package manager and native development tools.

      --
      Celebrate failure, and then learn from it - Nolan Bushnell
    3. Re:Eheh, explain Linux vs BSD then by cheesybagel · · Score: 3, Interesting

      Actually I think Google is getting bitten by their choice to use the Apache license for most of their Android software. It started with Amazon and Baidu developing their own OS and giving none of the code back and it is going to get worse before they realize the damage and re-license.

    4. Re: Eheh, explain Linux vs BSD then by Concern · · Score: 1

      +1

      --
      Tired of Political Trolls? Opt Out!
    5. Re:Eheh, explain Linux vs BSD then by Dr.Dubious+DDQ · · Score: 1

      "A free (as in freedom) software app store for Android would be awesome." Check out F-Droid. "I'd love to see a free software Android fork with a modern package manager and native development tools." Not quite a complete project for what you want, but BotBrew is a start... Also, if it's ever possible to install FirefoxOS on more than a handful of devices, it sounds like a possible contender for the niche, too.

    6. Re:Eheh, explain Linux vs BSD then by MysteriousPreacher · · Score: 2

      Microsoft LOVES BSD, they can take code from it and never contribute anything back. But it is Linux that got popular not BSD.

      BSD has its supporters, like MS, who don't actually do anything to support it. Linux has supporters, like IBM, who do massive contributions.

      The GPL has won, the only ones who hate is who want stuff totally free and not contribute anything back. Well, for those people there is BSD. Enjoy.

      The fact that Linux is on its way to become the biggest OS, the most used and the most installs (thanks to Android) says enough that the GPL works a LOT better then BSD in encouraging industry AND consumer adoption.

      And still kiddies who never will amount to anything claim that all the Linux users and contributors are wrong. OPEN YOUR EYES!

      Well done. You're wrong in exactly the opposite direction to the people you claim to be wrong. To be more charitable, you're working from a pretty odd definition of "popular".

      For the sake of argument, let's say that Linux (mainly through Android and various appliances) has the largest installed base? Does that make Linux popular? Undoubtably, yes! Does that make BSD licensed code unpopular? No.

      Is Android Linux? Sure, in the pure sense of the word "Linux". i.e. the Kernel. What about the predominantly Apache licensed userland? Is that Linux? In common parlance it is a Linux distro - albeit not your father's Linux. How about Mac OS X, with its various BSD and MIT licensed guts. Pretty popular, even if it's in a minority on desktop and mobile. What about OpenSSH?

      The GPL hasn't won over BSD, you numpty. At best, the GPL for certain projects is doing what its users wanted. Same is true for BSD licensed projects. It's about what the authors want! This is entirely a competition in the diseased minds of zealots who claim victory where there really is no competition. It's like fucking 100 women in order to claim victory over a guy who's happily married and not interested in sticking his cock in anything with compatible genitals.

      I'm fucking sick of this BSD/GPL/Apache/MIT/Billy Bob's Friend's Cousin's 3rd Public License v2.3 fanboy war. Just use what's best for you, and license under whatever best suits your goals. Just don't be a fucking moron and use a license that requires x, and whine when y doesn't come. Don't go claiming victory just because you have to pack your balls in ice. That's just not what everyone wants, and if the married guy wants to fuck Belize hookers, he's a moron.

      --
      -- Using the preview button since 2005
    7. Re:Eheh, explain Linux vs BSD then by Anonymous Coward · · Score: 0

      Only the irony is that Android uses FreeBSD licensed code.
      And Google annually donates about 10-49000 Dollar to the FreeBSD project.
      And is almost deemed as to violate the GPL.
      And if you consider that Linux is the winner of all the OS:es or even BSD then that's only due to the fact of having more hardware it support, which means nearly 0 overall.

      And how much do you even know is "Linux" on Android?
      Because this argument is nearly identical to the iOS and Mac OS X which surprise, surprise runs FreeBSD!

    8. Re:Eheh, explain Linux vs BSD then by WaywardGeek · · Score: 1

      Thanks for the informative reply! I was hoping a well informed geek out there would save me the trouble of finding projects like f-droid and BotBrew. These sound like two projects I'll have to take seriously.

      --
      Celebrate failure, and then learn from it - Nolan Bushnell
  73. Re:Software liberation not necessary for open sour by countach · · Score: 2

    Yeah, and then every man and his dog would have to re-implement that fix independently. Your suggestion is bat-shit crazy.

  74. Ideas and the real world by medoc · · Score: 1

    MySQL: C++
    Mozilla: C++
    Libre/OpenOffice: C++
    Qt/KDE: C++
    Etc.

    Let the brainy people discuss why C++ is such a bad language in theory and go back programming...

  75. We know we're really screwed by SpaghettiPattern · · Score: 1

    We know we're really screwed when the maintainer of cat gives up.

    --

    I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
  76. Re:I often disagree with RMS, but... by Anonymous Coward · · Score: 0

    If you'd ever seen the guts of most commercial RDBMS's you wouldn't be pointing to them as an example to support your advocacy.

  77. Re:RMS suppressed C++ and Flash for the same reaso by cpghost · · Score: 1

    You're confusing some proprietary C++ libraries with the C++ standard and the C++ Standard Library that both have nothing proprietary in them and that are cross-platform.

    --
    cpghost at Cordula's Web.
  78. Re:Software liberation not necessary for open sour by Anonymous Coward · · Score: 0

    'Anti-business manifesto' ... 'Stallman['s] Marxist world views ... 'leftist fanatics like Stallman'. Good grief. Please stop posting on Slashdot, and go back to Fox comment sections.

  79. The poster child for the GNU development process by DrXym · · Score: 1

    If you want to see how a good idea can brought to its knees by politics, correctness and an extreme lack of pragmatism then look no further than Hurd. Here is a project which started before Linux and development was so glacial and bogged down in politics that Linus Torvalds preferred to write his own kernel from scratch than wait any longer. It seems a lot of other people agreed with him which is why Linux is practically ubiquitous and Hurd isn't. It's not the only GNU project infamous for its extreme lack of progress so perhaps there is a stigma attached to the name.

  80. Re:I often disagree with RMS, but... by Anonymous Coward · · Score: 0

    What's exactly a horrible subset of C++ in C macros?

    Are you talking about template-include-trick or simply defines around "virtual function calls"? (the former being serious wtf hack and the latter pretty much a standard practice that unfortunately sometimes grows little bit too far)

  81. Re:An epic case of MISSING THE WHOLE FUCKING POINT by Marxdot · · Score: 1

    Pair of insane, rambling commenters.

  82. Re:An epic case of MISSING THE WHOLE FUCKING POINT by Anonymous Coward · · Score: 0

    Ah, you have nothing to offer except cryptic responses to supplement your cryptic rants.

  83. Re:Who Gnu by Anonymous Coward · · Score: 0

    "In other news: water is wet and apples fall out of trees."

    Water is not wet. (See some of the superb arguments here.)
    Also, do most apples fall off trees, or are they being removed by humans?

  84. Did you actually read that?? by Anonymous Coward · · Score: 0

    ban on multiple inheritance ...

    The ban on multiple inheritance is rather standard and the only thing relevant to modern c++.

    ... exceptions ...

    They have 3 different reasons, one of which is

    increasing compile time (probably slightly)

    which is not a sane argument to make when talking about c++ compile time, the probably even makes it obvious that they did not even check their facts and only sought more reasons to get rid of exceptions.

    The other two can be summed up as "we do not have exception safe code, we do not write ideomatic c++ (RAII) and we prefer to litter our logic with c style if(error) return style error handling"

    In other words google has a nice code style that I am happy I do not have to follow and most of the companies I worked at did not follow

  85. Re:An epic case of MISSING THE WHOLE FUCKING POINT by Anonymous Coward · · Score: 0

    Billions have been wasted rewriting the same code ... just to avoid proprietary restrictions, too.

    But that code has not been published, and not hypocritically called "free software", enjoying publicity benefits as such.

    If someone writes a piece of code that looks suspiciously similar to Microsoft code (that has not been leaked), s\he isn't under threat of legal action, because s\he had no access to the code. But if someone's code is similar to something released under GPL, then this is a problem. Since code follows similar patterns, more and more of the programming noosphere is gradually being locked up under copyLEFT restrictions, and thus more and more people can become subjects of legal threats.

    People who want to use copyleft code only have to release their changes, it's not such a big deal...

    Except for the people writing under copyFREE licenses (or "public domain" code). FreeBSD had, in effect, recently put adding new features and optimizations on the back burner, so its best minds could focus on rewriting components that are GPL.

    Irrational use of violent force, which is what GPL is ultimately backed by, is always a "big deal". Today this violence may get you what you want, forcing others to publish their code against their will, but tomorrow the guns of state will inevitably turn to less sympathetic endeavors. The only way to control this force is through a rational set of principles - initiating aggression is just as wrong when it benefits you as it is when it harms you.

    From the point of view of the software ecosystem, I'd say that the GNU toolchain has given birth to what I consider the most successful open-source project ever, namely Linux (probably a billion-dollar success overall), mostly under the GPL. From an industrial point of view, copyleft hasn't harmed Google too much, and Apple is definitely not a model for free software.

    As explained in my earlier posts (read that whole comments tree), Linux being more popular / better than BSD UNIX did not come about as the result of any benefits of GPL - to the contrary, it had been swimming against the current. CopyLEFT does produce very real harm, as is evidenced by the fact that copyFREE projects are gradually leapfrogging copyLEFT ones. Apple's choice of PostgreSQL over MySQL is perfectly understandable. You may not consider Apple "a model for free software", but they have made very significant contributions to FreeBSD, LLVM, WebKit, etc.

    Google was actually reluctant to choose Linux over a permissively-licensed alternative like Free/NetBSD as the basis of Android / ChromeOS, but Linux was already ahead on ARM, had better drivers, and was more popular with the devs. Like I said, Linux had managed to success in spite of its copyLEFT license, not because of it. Google chose a copyFREE license for every single FLOSS project that they themselves had started, but replacing the Linux kernel simply didn't make financial sense - so far... But they are experiencing plenty of GPL-related headaches, and would probably be even more inclined to avoid it in their future products.

    The GNU Project's only advantage is that it was started all the way back in 1983/4. Linux was usable in 1991, and went viral with distros like Slackware and Debian in 1993. FreeBSD did not get rid of the AT&T lawsuit FUD until 1994, when the train has already left. (And it didn't become purely copyFREE until 1999, when the obnoxious advertising clause was finally removed from the license.) Sometimes the cost of switching to a whole different OS outweighs the drawbacks of sticking with a copyLEFT OS, and so L

  86. Clarifications on LLVM by the Sed Maintainer by tyrione · · Score: 1

    Apple is the primary funder of LLVM and the creator of Clang, LLDB, and following them is Google and dozens of other major corporations contributing to the LLVM Projects.

  87. Re:RMS is holding free/open source back by ThePhilips · · Score: 1

    Still, early versions of GNU libc and cc in the 80s and 90s where crucial. At the time it was not only the open source model which was doubted - it was doubted whether "bunch of unemployed hippies" can write anything as sophisticated and of production quality. FSF/GNU under RMS guidance had managed it.

    EGCS happened much later, in the end of the 90s. As old saying goes (I have forgotten original wording), person who have contributed something major to development eventually becomes a major impediment to development himself. RMS religious zeal was important instrument to persist through the times of total commercialization of the software. Now, after he made sure that open source exists and thrives, he himself is more of an obstacle to the future of what he had created.

    --
    All hope abandon ye who enter here.
  88. Re:An epic case of MISSING THE WHOLE FUCKING POINT by Anonymous Coward · · Score: 0

    All logic is "cryptic" to the functionally illiterate.

    --libman

  89. Re:An epic case of MISSING THE WHOLE FUCKING POINT by Anonymous Coward · · Score: 0

    The words "insane" and "rambling" must have a completely different meaning to someone with an alias referencing Karl Marx...

    (Those who have actually read Marx as much as I have will understand.)

    --libman

  90. Re:I often disagree with RMS, but... by cheesybagel · · Score: 1

    Clang is faster at producing slow code.

  91. Re:Software liberation not necessary for open sour by braeldiil · · Score: 2

    The "printer thing" is actually a red herring. The act that started RMS on his path was a lot simpler - all his coworkers at the MIT AI lab left. Stallman had finally found a place where he was comfortable, then thay all left to try and make a little money. RMS threw a hissy fit and set about taking all their original ideas and releasing them as free software. His stated goal was to drive them out of business - either to punish them for leaving or maybe to force them back to the lab. The printer story developed later, in an effort to make it seem not nearly so petty.

  92. Anonymous Coward is a Pussy by leaen · · Score: 1

    He didn't master the tool called "C++", so he got himself a toy called "C#". Now he bitches about the tool when in reality his own conceptual and practical incompetence is to blame.

    Basic advice on trolling: Follow hyperlinks to get superficially correct posts and avoid mistakes like writing about embedded guy that he exclusively uses C#

  93. Yawn... by Spugglefink · · Score: 1

    Grep maintainer quitting. 900 billion people use grep. Somebody else will maintain it. Nothing to see here, move along.

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

      Yeah let's just ignore the issues and pretend everything is rosy with GNU.

      You're part of the problem.

  94. Re:Who Gnu by Anonymous Coward · · Score: 0

    Linux would not exist? Linux does not exist.

    It's GNU/Linux.

  95. Re:Prick by Anonymous Coward · · Score: 0

    A well thought out, non-rage post about what he thinks is wrong is GNU and you respond the same way the FSF usually does to criticism.

    Fuck you.

  96. Re:RMS suppressed C++ and Flash for the same reaso by alexo · · Score: 1

    RMS suppressed C++ and Flash support for the same reason Adobe and Microsoft are fading them away: Because they were and are ill conceived crap meant to wall garden programmers with property libraries and complexities that rely on a dedicated and nontransferable skill set.

    Writing in C++ is only done out of ignorance or reliance on property libraries. No person in his right mind chooses it. Hell, even Microsoft is trying to put it aside in favor of C#.

    Could have fooled me.

  97. -1 Pedantic by Anonymous Coward · · Score: 0

    In most fields of examination, infinity is not a rational number, because it's not strictly a number. "= infinity" is treated as a property rather than a definition, with the meaning being "x = infinity iff for all N, x > n"

  98. Re:Software liberation not necessary for open sour by jythie · · Score: 2

    I had not hear this part of the tale. Can you site a reference?

  99. Re:I often disagree with RMS, but... by statusbar · · Score: 1

    GCC has been effectively re-written many times during that time. I myself was involved in the porting of G++ v1.38 (before GNU G++ was part of GCC) to run self-hosted on the Atari ST, back in 1989 or 1990. I don't think anything still exists from that code base in GCC 4.7 at all.

    --
    ipv6 is my vpn
  100. Re:I often disagree with RMS, but... by statusbar · · Score: 1

    That's not true in general, and not true specifically when generating SIMD code for SSE4 or ARM NEON.

    All the latest GCC versions 4.4, 4.5, 4.6 have serious regressions in SIMD optimizations, it actually went backwards in efficiency over the years.

    Final code efficiency is the primary reason why I needed to switch to Clang.

    It is a real pain btw to have to have two C compilers for a single embedded device!

    --
    ipv6 is my vpn
  101. Re:An epic case of MISSING THE WHOLE FUCKING POINT by Anonymous Coward · · Score: 0

    Just so you know, you don't come off as intelligent. You come off as a sophomoric student desperate to prove he isn't as ignorant has he secretly suspects he is.

  102. Oh thank Christmas! by mbourgon · · Score: 1

    I got what I wanted for Christmas, early - proof that we can still have a flamewar about News for Nerds!

    --
    "Sometimes a woman is a kind of religion, she can save your soul & set you free from all your sins" - Bad Examples
  103. We try our best! by Anonymous Coward · · Score: 0

    Funky or not, we try our best sometimes but that is never good enough.

  104. Not Just "Performance" by Anonymous Coward · · Score: 0

    It is also very much about (soft) real-time capability. GC languages simply cannot provide that. Which results in sub-standard User Experience, when GC kicks in.

    Here is my memory-safe, no-GC language:

    http://sourceforge.net/projects/sappeurcompiler/

  105. Muha by Anonymous Coward · · Score: 0

    Your argument is equivalent to saying "we don't need pricey aluminium any more, let's use lead for the next A380, after all Saturn V engines will be able to lift even that !"

    Boy, in engineering, efficiency MATTERS. Maybe not in the Crappy In-House App Of the Day, but certainly in products such as firefox, MS Office, CATIA, Photoshop, Postgresql and the like.

  106. Bad Example by Anonymous Coward · · Score: 0

    Steam valves should probably be controlled by hard-realtime capable code. That means No Heap Usage Whatsoever (except during startup of the process).

  107. +1 by Anonymous Coward · · Score: 0

    The lack of destructors in Java is indeed a massive regression. And finalize() does not cut it.

  108. Exactly by Anonymous Coward · · Score: 0

    Many programmers shouldn't be called "software engineers", as they apparently can't have a unique idea of their own. They see that there are several mainstream memory safe languages which all happen to use GCs for memory management. So they jump to the conclusion

    memory_safe -> GC

    Which is of course very wrong if you think hard about it.

    Here is my attempt to create a memory-safe language with comparable efficiency and real-time capabilities as C++:

    http://sourceforge.net/projects/sappeurcompiler/

    It basically removes all the nasty, unsafe casting of C++, uses smart pointers everywhere, does bounds checking everywhere and uses the type system to eliminate low-level race conditions. You can still allocate almost everything on the stack, have value arrays (of objects), pass references (but don't obtain pointers on them) and so on.

  109. Sappeur by Anonymous Coward · · Score: 0

    Peddling my own invention here, so take it with a grain of salt:

    http://sourceforge.net/projects/sappeurcompiler/

    Both efficient and memory safe. No GC. No memory cancer possible. Superfast startup for small programs (10ms and less).

  110. Why templates AT ALL ?? by Anonymous Coward · · Score: 0

    IMO you can use a proper macro language such as m4 instead. That will immediately eliminate all the pain of macros. The theoretical advantages of macros I don't need and I hate all the disadvantages.

    Unfortunately slashdot doesn't let me post a real example here.

    Here is some older code, which still contains a few bugs and is incomplete:
    (search for "m4")
    http://forums.theregister.co.uk/forum/2/2012/12/21/financial_software_disasters/#c_1673106

  111. ERRATA by Anonymous Coward · · Score: 0

    "That will immediately eliminate all the pain of TEMPLATES"

  112. Java was a DOWNGRADE by Anonymous Coward · · Score: 0

    No destructors, for starters.

  113. Have Seen/used It, Use C,C++, Pascal now by Anonymous Coward · · Score: 0

    My experience is that any heavy-duty, complex system which can kill people, handle massive data sets or complex UIs must be written in a rather simple, procedural/OO language. Some kind of ALGOL descendant.

    I did use Smalltalk, functional and logic languages in the past. I still use Perl and like it.

    All your funny features come at the cost of massive performance/realtime/memory consumption penalties.

  114. The GPL has not won by martinschrder · · Score: 2

    Care to show me the GPLed webserver that outshines Apache in marketshare? Or the GPLed DNS-server that outshines BIND in marketshare? Or the GPLed SSH implementation that dwarves OpenSSH's marketshare? And can you explain why Apache OpenOffice seems to win against LibreOffice? And when did Firefox switch to the GPL? And why are so many projects switching from GCC to LVM? So where in your world did the GPL win? But of course, if you think that Linux is becoming the world's most used OS...

  115. "people who have hard computational problems" by Anonymous Coward · · Score: 0

    They use FORTRAN. Hardly fitting your bill.

  116. Leading DBMS in C++ by martinschrder · · Score: 1

    All leading DBMS are much older than C++. PostGres and MySQL are written in C. I doubt hat Oracle and IBM rewrote their DBMS in C++. And of course Derby is written in Java. :-)

  117. Oh, Yosefk by Anonymous Coward · · Score: 0

    This guy is intellectually challenged to use C++ and has discovered C# is the right thing for him. He wrote done his whining and lies. That's all.

  118. What's a "Good" Language? by mike4ty4 · · Score: 1

    For all the people saying "C++ is bad", I'm curious: what would you consider a _good_ programming language?

  119. Re:An epic case of MISSING THE WHOLE FUCKING POINT by Anonymous Coward · · Score: 0

    If I was "desperate" to maximize other people's perception of my intelligence, I obviously would have done many things differently. I would have refactored all of my past ad hoc forum / comment arguments about the harms of GPL into a more refined essay on my own site. I would have suppressed my hateful emotions and presented myself more diplomatically. I would have been less innovative in my use of grammar. I would have certainly proofread my posts here an extra time, fixed the couple of typos, and perhaps reorganized them for briefness and clarity. I would have said popular things using my account to build up my karma. Etc. But that is more of my time and effort than you people deserve.

    I've added my piece to this debate, and debunked all points made against my position. I already know the infinite ways in which I can be attacked personally. What I don't know is any substantive argument against the points I've presented.

    --libman

  120. RMS and FSF Just Won't Quit by Anonymous Coward · · Score: 0

    Until they turn the Linux universe into their own little fiefdom.

  121. Re:Software liberation not necessary for open sour by unixisc · · Score: 1

    No. If there is a bug in the original software, the vendor can fix it, and release the fix to either all its customers, or those who ask, depending on the situation. If customer A wants a feature added that nobody else is interested in, A can implement it in-house and use it. If customer B needs something else, B can do the same. But let's say that the ISV finds out that a whole bunch of customers want a particular feature, they can issue that to all their customers, or put it in their next release and resell them - whichever works better. Bug fixes would be something that the ISV would have to do to keep its installed base happy, but aside from that, other changes that are wanted by only a few customers can be left to them to make. Even if they make it independently, no harm done, since that code won't be re-distributed.

  122. Stallman's Leftism by Anonymous Coward · · Score: 0

    Read Stallman.org. In particular, check out the left column there - 'Urgent Action Items': it will give you a better idea of what I mean. Here is someone who supports Fidel Castro & Hugo Chavez and every Left wing SIG in the world, buys every Leftist conspiracy theory that's out there, has been a consistent Green Party supporter, is in favor of the government nationalizing companies like Microsoft and making their software free to use.

    Of course, if Stallman is not Marxist, then no one is.

  123. Nerd Haiku by threc · · Score: 1

    FFS FSF! rm RMS!

    --
    What do you get when you cross a mountain-climber with a mosquito? Nothing! You can't cross a scaler with a vector.
  124. Re:I often disagree with RMS, but... by Anonymous Coward · · Score: 0

    C++ can be extremely powerful when used properly, but that doesn't mean it's not a horrible language.

  125. Re:I often disagree with RMS, but... by cheesybagel · · Score: 1

    GCC is in version 4.7.2. I have a set of FP heavy code which runs faster in GCC with '-Ofast -march=native' than Clang with all the optimizations turned on. This also seems to be the case for everyone else I know using X86. I have no idea how the performance in ARM is like.

  126. oh it's full-blown alright! by Anonymous Coward · · Score: 0

    "Yeah full-blown properly-used C++" is used in Microsoft Windows. Even wonder how on earth a state of the art quad core processor grinds to a halt on Windows?

  127. IMHO, You are a $hill by Anonymous Coward · · Score: 0

    Your post is full of inaccuracies and wild, unsubstantiated prophecies.

    I'll tell you something, Mr $hill; Google would not exist without Linux, MySQL, GCC, Python and a host of similar technologies. Why is it they did not select BSD for their giant server farms ? There is a lot to be said about extreme positions of RMS, but it is also true that the success of Google, Facebook and Apple is firmly based on GNU stuff such as GCC (which Apple used for a very long time).

    I think you are in the pay of M$ and you shit into your pants about the phenomenal success of GNU software and you would like everybody to adopt BSD licenses as that would allow your egotist desire to rake in $$$ to succeed in the SHORT term. On the long run, it would damage the whole IT industry, as can be seen in the success of Apple, Google and FB. The "next FB" will need free software as much as the old one needed that to grow from two guys to 20000 guys.

    1. Re:IMHO, You are a $hill by Anonymous Coward · · Score: 0

      Your post is full of inaccuracies and wild, unsubstantiated prophecies.

      Name one inaccuracy.

      As for the "prophecies" - they are merely projections of the existing trends. Do you dispute the statistics of licensing preferences in recent projects? Do you dispute that the once-unassailable GPL market share is almost entirely diminished amongst the most competitive software segments (ex. scripting languages)? Do you dispute that ye olde MySQL is losing FLOSS market share to PostgreSQL, SQLite, Redis, Memcached, etc? And do you honestly believe that Linux will be the final word in OS design for all eternity?!

      I'll tell you something, Mr $hill;

      I am the polar opposite of a "shill" - a person who quit his corporate job and chose to live in dire poverty to maintain his integrity. But that is something you probably wouldn't understand.

      Google would not exist without Linux, MySQL, GCC, Python and a host of similar technologies.

      You could get all the way to the moon with that leap of logic!

      First, a lesser point... Google was started in 1996 - a full two years after FreeBSD was free of the AT&T lawsuit FUD. PostgreSQL was available as well. If Python isn't copyFREE enough for ya, then purer alternatives like Tcl have already been available. GCC was indeed difficult to avoid (if you're fanatical about botcotting proprietary software, which Google obviously was not).

      What is far more significant is that, in absence of Stallmanesque copyLEFT fanaticism, all the energies of free software would have gone to copyFREE projects instead. There would have been a copyFREE compiler collection better than GCC a lot sooner if GCC had never existed, and the same applies to every other software package category as well.

      Why is it they did not select BSD for their giant server farms?

      As I've already explained a dozen times, it was because Linux always had advantages over FreeBSD that compensated for the disadvantage of a copyLEFT license. First it was the fact that FreeBSD was entangled in legal FUD until 1994 (and it didn't become fully copyFREE until 1999). Linux went viral in 1993, and had better developers and progressively better and better features than BSD did. Many companies had used FreeBSD on their "giant server farms" (ex. Yahoo), but it is fully understandable why Google went with Linux instead. Boosted by its popularity, Linux went further and further ahead in a positive-feedback cycle of ever-more features, ever-more contributors, and ever-more corporate support.

      There is a lot to be said about extreme positions of RMS, but it is also true that the success of Google, Facebook and Apple is firmly based on GNU stuff such as GCC (which Apple used for a very long time).

      The success of many companies is partially based on gratis software - which saved them a little bit of money. (Freedom is a crucial value, at least to me, but one that is separate from "success".) The quantity, quality, and legally-unrestricted utility of FLOSS software available to them would have been greater if copyLEFT had never existed.

      Software isn't powered by RMS's ideology, it is powered by the talents of the developers. Giving RMS credit for all GPL-licensed software is like giving Hitler credit for all rocketry!

      I think you are in the pay of M$ and you shit into your pants about the phenomenal success of GNU software and you would like everybody to adopt BSD licenses as that would allow your egotist desire to rake in $$$ to succeed in the SHORT term. On the long run, it would damage the whole IT indust

  128. Re:I often disagree with RMS, but... by statusbar · · Score: 1

    For me, with GCC 4.7.2, the -ftree-vectorize fails miserably compared to GCC 4.3 for code that is already prepared for SSE or NEON vectorization.

    --
    ipv6 is my vpn
  129. Re:RMS is holding free/open source back by rev0lt · · Score: 1

    Still, early versions of GNU libc and cc in the 80s and 90s where crucial. At the time it was not only the open source model which was doubted - it was doubted whether "bunch of unemployed hippies" can write anything as sophisticated and of production quality. FSF/GNU under RMS guidance had managed it.

    RMS was hardly an "unemployed hippie" - at least no more than the guys who wrote the BSD. The idea that GCC (as an opensource C compiler) was "novel" is also a nice fairytale - pcc exists since the seventies.

    EGCS happened much later, in the end of the 90s. As old saying goes (I have forgotten original wording), person who have contributed something major to development eventually becomes a major impediment to development himself. RMS religious zeal was important instrument to persist through the times of total commercialization of the software. Now, after he made sure that open source exists and thrives, he himself is more of an obstacle to the future of what he had created.

    That epic battle between commercial software and open-source only exists on RMS's head and on a handful of follower's heads. Fact is that OSS predates RMS, many commercial software relies on it, GPL itself is an aberration (and the internet as you know it would not exist if base libraries that implement protocols were GPL and not BSD), and most relevant OSS today isn't even GPL - the big exceptions are Linux Kernel (that actually didn't start as a GPL project), and GCC itself.

  130. Re:RMS is holding free/open source back by ThePhilips · · Score: 1

    That epic battle between commercial software and open-source only exists on RMS's head and on a handful of follower's heads. Fact is that OSS predates RMS [...]

    Predates him, indeed. But you have probably forgotten that pretty much all *NIX and *BSD clones - actively developed clones - have abandoned it. Throw in here the USL v. BSDi case, and actually there was a period of time when there was no open source - except for the FSF/GNU.

    pcc exists since the seventies.

    Riiiight. It has, as BSD, fathered piles of *commercial* forks. Yet itself AFAIK it still can not even claim full ANSI C support - least C++ support or support of any arch except x86/x64. So how that rich history "since the seventies" played out?? Stagnation and irrelevance, because every good idea got implemented - in a commercial fork.

    The point being before RMS, OSS was equivalent to BSD. What sucked for very obvious reasons. But RMS had showed that it can be improved upon with his community-centric license. And things have improved since then.

    --
    All hope abandon ye who enter here.
  131. A good argument against C++ in OS's by tjstork · · Score: 1

    Is that it simplifies language binding. If you have the core stuff written in C, its fairly easy to bind to it from any language, whereas C++ is much more difficult - if not impossible, as I don't even think there is a standard C++ ABI. Certainly not on Windows. So, if you have your core os stuff written with C bindings, then, any language maker can talk to it, so that, if users want OOP languages, they can use anyone of them, not just C++.

    --
    This is my sig.
  132. Re:RMS is holding free/open source back by rev0lt · · Score: 1

    But you have probably forgotten that pretty much all *NIX and *BSD clones - actively developed clones - have abandoned it.

    Its a mixed bag. Even the most used *NIX deskop operating system is still (mostly) opensource. On the other hand, during the 80's, very few UNIX manufacturers actually invested on x86 architecture, and traditionally microcomputer software was distributed in binary form (for several reasons, not only because of so-called "trade secrets).

    Throw in here the USL v. BSDi case, and actually there was a period of time when there was no open source - except for the FSF/GNU.

    Since - at the time - Linux was also mostly unusable as a real kernel, to compile UNIX GNU stuff you'd already need to have a workstation WITH an operating system, and a compiler (if you need to compile GCC).

    Yet itself AFAIK it still can not even claim full ANSI C support - least C++ support or support of any arch except x86/x64.

    It was "the facto" standard compiler for BSD operating systems until 1994 - and while is no match for modern GCC, probably one of the reasons it was ditched was because of proper x86 support - Keep in mind that this compiler is older than the x86 ISA. Also, only the _new_ version is x86/x64 only. You may not like it, but it exists and was a viable option - far far away from the RMS speech of "before me there were none". And if you like C++ with GCC, well - do not thank RMS for it.

    The point being before RMS, OSS was equivalent to BSD.

    And after RMS, they still aren't GPL. Other than the Linux Kernel (not at all related to RMS) and GCC, almost every other major project stays away from both the FSF and the GPL, while the business model RMS despises adapts to its limitations (eg. the Linux kernel is riddled with commercial hooks for 3rd party - closed source - modules and extensions; see eg. kernel namespaces).