Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
Compare cell phone plans using Wirefly's innovative plan comparison tool ×
Programming Books Education

Scott Meyers Retires From Involvement With C++ (blogspot.com) 112

An anonymous reader writes: If you've studied C++ any time in the past 25 years, you've probably read something by Scott Meyers. He wrote Effective C++, regarded by many as one of the top two books for learning to work with the language. He also wrote similar books about changes in C++11 and C++14, as well as making good use of the Standard Template Library. He's been a seemingly endless source of instructional videos, articles, and helpful answers on Usenet and StackOverflow. Unfortunately for us, Meyers has now decided to move on. "25 years after publication of my first academic papers involving C++, I'm retiring from active involvement with the language. It's a good time for it. My job is explaining C++ and how to use it, but the C++ explanation biz is bustling. ... My voice is dropping out, but a great chorus will continue." Thanks for all the help, Scott.
This discussion has been archived. No new comments can be posted.

Scott Meyers Retires From Involvement With C++

Comments Filter:
  • Thank you. (Score:4, Informative)

    by c ( 8461 ) <beauregardcp@gmail.com> on Friday January 01, 2016 @11:44AM (#51221523)

    Twenty years ago, Effective C++ was the book which convinced me that C++ was so full of land mines and other hidden traps that I needed to walk away from it and never, ever touch that pile of crap again.

    Okay, I lied. It didn't take the entire book; I got the hint after the first five chapters.

    • Re:Thank you. (Score:5, Insightful)

      by e r ( 2847683 ) on Friday January 01, 2016 @11:50AM (#51221541)
      1. So what do you use instead?
      2. Did you know C++ has moved on quite a bit in the past twenty years?
      • Re: (Score:2, Insightful)

        by Anonymous Coward

        A combination of Lisp and Ada, of course!

      • by c ( 8461 )

        1. So what do you use instead?

        Oh, I went old school. C and perl, for the most part. Nobody in their right mind would claim they're good languages, but they're frictionless in a way I never felt when I was working with C++.

        2. Did you know C++ has moved on quite a bit in the past twenty years?

        I would certainly hope so. That being said, I have absolutely zero interest in rekindling our relationship.

        • Re:Thank you. (Score:5, Informative)

          by MouseTheLuckyDog ( 2752443 ) on Friday January 01, 2016 @01:25PM (#51221865)

          Right. Like C and Perl don't have more landmines.

          • by Anonymous Coward

            A lot less of those it seems like it should be one way but C++ does it in a completely weird way. E.g. the way they finally fixed those "move" constructors... I bet 99% of C++ programmers weren't aware of the entire "copy" process that was happening when they were assigning variables.

            C and Perl seem like a pretty good combination. Do all coding in Perl, and anything that needs raw-speed do in C.

            • Only if they come from a reference semantics background. If they came from a C background, they'd be using pointers to pass by reference any way. Also a lot of C++ is copy-on-write which makes the copying cheap.

              C isn't that good for raw speed either. What you call weird about copy constructors actually makes sense if you understand value semantics rather than reference semantics. Using values can be faster than using pointers to values, and for concurrent/parallel operations it's often better to copy dat
          • Re:Thank you. (Score:5, Insightful)

            by swillden ( 191260 ) <shawn-ds@willden.org> on Friday January 01, 2016 @02:57PM (#51222445) Homepage Journal

            Right. Like C and Perl don't have more landmines.

            I like C++, and consider it my preferred language for most work, but it clearly has more landmines than any other major language. It's not hard to avoid them, but you do have to know where they are.

            • I like C++, and consider it my preferred language for most work, but it clearly has more landmines than any other major language. It's not hard to avoid them, but you do have to know where they are.

              >*CLICK*<

              There's one now!

              LOL!

          • by HiThere ( 15173 )

            Whether they have more landmines or not depends on what you're doing. For some purposes C is the optimal language. For some purposes C++ is a lot better. (In both cases I find a lot of the syntax abominable. D got that a lot better. But D came late to the table, and all the libraries are written for C or C++.)

      • by laffer1 ( 701823 )

        That's actually part of the problem. I learned C++ in 2003. At that point, it was somewhat usable but had very strange scoping rules compared to any other OO language I've seen since. Modern C++ has garbage collection, a thread abstraction and so on but at the time it had none of those things. My biggest issue with C++ is that it's so big and inconsistent. Since the STL grew up with contributions from all over the place, it's not a very consistent language. Take C# or to a lesser degree Java and look at

    • by Anonymous Coward
      Bonehead. Effective C++ is a book for experienced C++ programmers. If that was your first port of call then no wonder you were intimidated.
    • Most of those land mines and hidden traps are inconsequential any way. They either stop your program from compiling, meaning you have to dig through compiler errors rather than customer logs, or they prevent the program being better optimized. They weren't end of the world scenarios and you wouldn't even really touch them unless you were in the business of writing highly portable generic libraries. In which case it matters that you understand the differences between hardware and software platforms regardles
      • Re:Thank you. (Score:4, Interesting)

        by c ( 8461 ) <beauregardcp@gmail.com> on Friday January 01, 2016 @12:50PM (#51221727)

        They weren't end of the world scenarios and you wouldn't even really touch them unless you were in the business of writing highly portable generic libraries.

        ... which is the sort of thing I was doing at the time.

        Granted, at the time we were also using a mid-90's vintage of Visual C++ and trying to port to things like g++ on Linux, BeOS, MacOS, etc, so much of the issues we had were less due to "C++ the language" and more because of "C++ the implementation(s)", but Meyers' book was the icing on an increasingly unpalatable cake.

        • So what language did you end up using to write highly portable generic libraries? Did performance also matter, or was it just enough that it was somewhat easier to use?

          I would assume the code you were trying to port had a lot of legacy things and preprocessor macros everywhere.
          • by c ( 8461 )

            So what language did you end up using to write highly portable generic libraries?

            Oh, I used C++. That was the job. There wasn't a lot of love, but it got done and it worked well. Then I moved on.

    • Re:Thank you. (Score:5, Informative)

      by PolygamousRanchKid ( 1290638 ) on Friday January 01, 2016 @12:39PM (#51221697)

      C++ was so full of land mines and other hidden traps

      I wouldn't say that "C++ was is full of land mines and other hidden traps". However, C++ enables you to bury your own land mines, and build your own hidden traps. Effective C++ taught me what stuff I need to avoid.

      In fact, a project manager tasked me with creating some programming standards for our C++ project . . . a job that nobody wanted to do. This was because all the programmers were very good, but used to programming alone, and doing things their own way. There was guaranteed to be blood, devastation, death, war and horror in this discussion. So I created a presentation based on Effective C++. When we went through all the items, there was dissension indeed, but when I fell back, and we went through the wisdom of Meyers' text, we found grudgingly agreement.

      To summarize, C++ is a very powerful language you can unwittingly write your own H-bomb with it. So it is great to have someone like Meyers to help you from nuking yourself.

      • by imac.usr ( 58845 )

        > There was guaranteed to be blood, devastation, death, war and horror in this discussion.

        And gardening?

    • Re:Thank you. (Score:5, Interesting)

      by Greyfox ( 87712 ) on Friday January 01, 2016 @12:47PM (#51221723) Homepage Journal
      It was pretty shit the first couple of times I looked at it in the early 90's. IIRC the first time I looked at it, the language didn't even have templates yet. I also vaguely recall the discussion about templates and thinking that it was a cool idea. The early C++ libraries were basically written in C, using most pointers and with plenty of difficulty determining who owned what resources at what times. At the time no one really knew how to do object oriented design, either. The whole design patterns discussion and RAII really started cleaning things up a few years later. Boost provides pretty good coverage of the gaps in the standard language library, though the standards committee seems to have pretty much addressed that by pulling a good chunk of boost into the standard.

      I used the language for a test data generation project a couple years ago and was quite impressed with how nice it was to work with -- easily as easy as writing a java program. I needed a math library to generate the data and considered several languages. The Eigen C++ library I found looked like it had the easiest API to get into, with reasonably clear documentation and examples. I was able to organize the functionality of the program into unit-tested libraries. Between that and the strict type checking in the compile phase, I was able to deploy with very high confidence that I wouldn't be introducing any bugs into the environment.

      • by mikael ( 484 )

        I took a course on C++ back in the mid-1990's. According to the professors back then, the attitude was "Oh, don't learn STL, it's full of bugs, and they're still trying to shake them out". Guess the direction that industry went?

        • The professor for my degree's C++ unit said he wouldn't touch the STL at all. This was 2005. By then STL had already stabilized quite a bit
          • by mikael ( 484 )

            The simplest example that we were given was creating a derived class A with virtual inheritance from class B (class A : public virtual B) , then trying to create a container class C using STL vector (class C : public A), then adding and deleting items from a instance of class C. No end of chaos as the run-time environment tries to manage partially deleted objects. In the real-world, there could dozens of inherited classes between B and A. It would be more logical to use smart pointers in this case, but th

            • Bear in mind that one generally isn't supposed to publically inherit from STL classes such as vector, since they don't have virtual destructors. Generally speaking, with C++, it's better to use composition to reuse functionality (e.g. making an STL vector a data member of a class) and to use inheritance to implement run-time polymorphism.

  • by andrewa ( 18630 ) on Friday January 01, 2016 @12:08PM (#51221589)
    Scott was one of the many greedy people to profit from Stroustrup's clever industry cons! Read this revealing leaked interview (Invention of C++ [artlung.com]) from 1998 and learn the truth!

    Sarcasm mode off...
    Thanks Scott! You will be missed!
    • by Uecker ( 1842596 )

      Scott openly admits that he has profited from the unnecessary complexity of C++. See his D-lang conference talk.

  • Free (Score:5, Interesting)

    by The Evil Atheist ( 2484676 ) on Friday January 01, 2016 @12:58PM (#51221749) Homepage
    Basically there's a lot of free talks on Youtube these days that give better advice for people who actually write code. Scott Meyers is great and all, but he admits that he doesn't actually write code. These days I look to people like Alex Stepanov and Sean Parent. I think Sean Parent's talk on rotate and partition alone is a more effective way to think about C++ than that whole business about OO.
    • Re:Free (Score:5, Informative)

      by dcollins117 ( 1267462 ) on Friday January 01, 2016 @04:25PM (#51222959)

      Posting the link to Parent's talk so the truly interested don't have to search for it (like I did). Hopefully this is the one you were talking about.

      https://www.youtube.com/watch?v=qH6sSOr-yk8 [youtube.com]

  • by Anonymous Coward

    I wish you well Scott. Your books made me a much better programmer than my peers.

  • This is an endless drone. I wonder how many women out there have ever had their genitals smeared with engine grease and drill shavings - something way to many boys did in apprenticeships. They all refused to curl into foetal positions and cry for nanny to save them and generally got over it and progressed to be something in their fields. This is the bubble wrap child generation reaching their mutated version of "maturity" - and expecting the same coddling as when they were in "everyone is a winner" school.
  • The unfortunate part of all this is that C++ takes 25 years to fully explain to everybody (while it continues to evolve, slapping band aid on top of band aid).
    • by mikael ( 484 )

      I think that is happening to every language environment. Web page design started with HTML, but now there are CSS style sheets, PHP for getting server processes to run, JavaScript, AJAX, JQuery, Java, WebGL. You don't just learn C on it's own, that has to go with some hardware environment.

  • "Effective C++, regarded by many as one of the top two books"

    Ah Slashdot. How can you write THE TWO BEST THINGS ARE 'A' and not follow that up? And not one comment mentions it either.
    Is this something everybody knows? Or will this start an argument?

    What is the other top book on C++?

If computers take over (which seems to be their natural tendency), it will serve us right. -- Alistair Cooke

Working...