Slashdot Mirror


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

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.

16 of 112 comments (clear)

  1. Thank you. by c · · Score: 3, Informative

    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.

    --
    Log in or piss off.
    1. Re:Thank you. by erapert · · Score: 5, Insightful

      1. So what do you use instead?
      2. Did you know C++ has moved on quite a bit in the past twenty years?

    2. Re:Thank you. by PolygamousRanchKid+ · · Score: 4, Informative

      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.

      --
      Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    3. Re:Thank you. by Anonymous Coward · · Score: 2, Insightful

      A combination of Lisp and Ada, of course!

    4. Re:Thank you. by Greyfox · · Score: 4, Interesting
      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.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    5. Re:Thank you. by c · · Score: 3, Interesting

      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.

      --
      Log in or piss off.
    6. Re:Thank you. by c · · Score: 2

      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.

      --
      Log in or piss off.
    7. Re:Thank you. by MouseTheLuckyDog · · Score: 4, Informative

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

    8. Re:Thank you. by swillden · · Score: 4, Insightful

      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.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    9. Re:Thank you. by The+Evil+Atheist · · Score: 2

      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 data then synchronizing on shared data.

      Other than that, the default copy and move constructors are more than adequate in most cases anyway, especially if people composed their types with other types that already handle their own resource management.

      --
      Those who do not learn from commit history are doomed to regress it.
  2. Another shameless profit-monger... by andrewa · · Score: 3, Funny

    Scott was one of the many greedy people to profit from Stroustrup's clever industry cons! Read this revealing leaked interview (Invention of C++) from 1998 and learn the truth!

    Sarcasm mode off...
    Thanks Scott! You will be missed!

    --
    :(){ :|:& };:
  3. Re: Rust is the successor to C++. by Anonymous Coward · · Score: 2, Funny

    Let's cobble together a newfangled language with a hip new syntax every few years. Yeah, that'll be great for the industry.

  4. Free by The+Evil+Atheist · · Score: 4, Interesting

    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.

    --
    Those who do not learn from commit history are doomed to regress it.
    1. Re:Free by dcollins117 · · Score: 4, Informative

      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

  5. Re: Self-defeating name: Rust by bill_mcgonigle · · Score: 2

    Your boss is an idiot. Do what you please, but your talents are probably undervalued where you are.

    In fact, I propose even more infantile project names to put the morons at a further economic disadvantage.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  6. Re:Self-defeating name: Rust by david_thornley · · Score: 2

    It's a bit late to jump in, but...

    Regular Expressions are defined as part of the Chomsky hierarchy of languages and grammar: the lowest level, the ones that can be recognized by a finite state machine. This means that they recognize sequential characters, choices between characters, and indefinite repetition, with grouping allowed. In Perl, they can be represented with ordinary characters with [] for character classes, () for grouping, | for alternation, and * for indefinite repetition.

    On this theoretical basis, people started adding extras to them, making them much more powerful than regular expressions, but they still called them that.

    --
    "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes