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.
Re: Rust is the successor to C++. (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.
Re: (Score:1)
Self-defeating name: Rust (Score:2, Offtopic)
GIMP means "a derrogatory term for someone that is disabled or has a medicial problem that results in physical impairment".
GNU.
LaTeX is written in both English and Greek letters.
There is nothing "regular" about Regular Expressions.
NetLoony [sourceforge.net] Apache Server GUI and Tools. Looney is someone who is "Extremely foolish or silly".
pGina [pgina.org] is not VaGina.
Would your boss tak
Re: Self-defeating name: Rust (Score:3)
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.
Re: (Score:1)
Rum is like force, it fixes everything. If you've tried either and still found that it is not working then you need to apply more of it.
I kind of miss drinking. Oh well... I did have a couple for the Christmas holiday (two and only two but they were mostly rum with a splash of coke) and I'll be responsible for others and making things go as high was ~650 feet and going boom tomorrow night (which is when the NYE fest is) so it wouldn't be a good idea to drink tomorrow.
That's unfortunate because things that g
Re: (Score:2)
You forgot Lisp!
Re: (Score:3)
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 theore
Re: (Score:2)
Rust has some nice features, but somebody needs to write some decent documentation for it if it's ever going to be popular.
OTOH, considering that it's just reached 1.0 it may not be doing to badly. But *SOME* languages have decent documentation early, and others never seem to get it. Examples of good documentation are Python, D, and Ruby. Original Pascal had decent documentation, but it doesn't cover the modern dialect, which has lousy documentation. Lisp documentation is OK, but nothing great. Smallta
Thank you. (Score:4, 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.
Re:Thank you. (Score:5, Insightful)
2. Did you know C++ has moved on quite a bit in the past twenty years?
Re: (Score:2, Insightful)
A combination of Lisp and Ada, of course!
Re: (Score:3)
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++.
I would certainly hope so. That being said, I have absolutely zero interest in rekindling our relationship.
Re:Thank you. (Score:5, Informative)
Right. Like C and Perl don't have more landmines.
Re: (Score:1)
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.
Re: (Score:3)
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)
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.
Re: (Score:2)
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!
Re: (Score:2)
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++.)
Re: (Score:2)
But Perl, well, let me just leave this here,
https://www.youtube.com/watch [youtube.com]?... [youtube.com]
or Perl Jam 2, the Camel Strikes Back
You're kidding right? That presentation is based entirely on developers not sanitizing user input, from the Internet no less, which will of course lead to vulnerabilities. I don't buy that it is an inherent weakness of the language. If you blindly submit SQL queries passed around as variables, you deserve what you get. That is just really bad programming in any language. Did they do a PHP jam?
Re: (Score:2)
Maybe I like being able to overload functions and do some generic programming.
Maybe I like the features that came out with C++11.
Re: (Score:2)
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
Re: (Score:1)
Re: Thank you. (Score:1)
Re: (Score:1)
Re: (Score:1)
I agree with what you're saying, but i disagree with your ability to say it.
Re: (Score:2)
Re: (Score:2)
Re:Thank you. (Score:4, Interesting)
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.
Re: (Score:2)
I would assume the code you were trying to port had a lot of legacy things and preprocessor macros everywhere.
Re: (Score:2)
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)
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.
Re: (Score:2)
> There was guaranteed to be blood, devastation, death, war and horror in this discussion.
And gardening?
Re:Thank you. (Score:5, Interesting)
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.
Re: (Score:2)
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?
Re: (Score:2)
Re: (Score:2)
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
Re: (Score:2)
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.
Another shameless profit-monger... (Score:4, Funny)
Sarcasm mode off...
Thanks Scott! You will be missed!
Re: (Score:2)
Are there UFOs WITH aliens
If so, big whoop. If a helicopter is being flown in the U.S. by Canadians, and you can't tell what model it is, it's a "UFO with aliens".
Re: (Score:2)
Scott openly admits that he has profited from the unnecessary complexity of C++. See his D-lang conference talk.
Re: (Score:2)
Re: (Score:2)
no woosh. I know the interview is fake. But it is true that the language is a mess and that Scott profited from that.
Re: (Score:2)
He's probably bowing out at a good time. I just got his "Effective Modern C++" book and while I haven't read it yet, scanning the contents it looks to be more of an introduction to what's new rather than an analysis of a list of gotchas like his earlier C++ and STL books. C++ has made some impressive leaps forward. He may have been in danger of running out of material if he stayed in it.
Free (Score:5, Interesting)
Re: (Score:2)
Re: (Score:2)
So true. While the video by Parent is very good (I'm glad I watched it), the problem with videos is that they fail to address the differences in learning preferences. Some people learn better with videos while others prefer reading. Videos also limit everyone to the same speed and concentration thresholds. Reading allows you to concentrate and comprehend at your own level and speed.
PS: Is the D1 discussion setting broken? I had to switch to D2, reload, change my discussion settings before allowed to post wi
Re:Free (Score:5, 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 [youtube.com]
I wish you well Scott (Score:1)
I wish you well Scott. Your books made me a much better programmer than my peers.
Violins and snowflakes (Score:1)
25 years (Score:2)
Re: (Score:2)
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.
The two best books are A. (Score:2)
"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++?
Re: (Score:2)