Originally, it was going to be called Effective C++11, but then I decided to cover both C++11 and C++14. My working title is Effective C++11/14, but I'm not terribly happy with that. First, there's no such thing as C++11/14. Second, I'm concerned that by 2015, a book with C++11 in the title will look outdated. On the other hand, I worry that if I call it Effective C++14, many people will assume that it has nothing in it for them if they're "only" using C++11.
An ideal title would convey these points:
- The content is about the effective use of features new to C++11 and C++14. It doesn't rehash information about C++98, even if it continues to be valid. (For more on this, see my blog entry about the information in Effective C++, Third Edition in the post-C++98 era.)
- The C++14 material was designed in from the outset, it wasn't just stapled onto a C++11 book as an afterthought.
- The book isn't a new edition of Effective C++. It complements Effective C++, it doesn't supersede it.
My plan is to continue my tradition of using a short title that begins with "Effective", plus a longer subtitle. The title can't be "Effective C++," because that's a different book. Here are two possibilities:
- Effective C++11/14: n Specific Ways to Improve Your Use of the Newest Versions of C++
- Effective C++14: n Specific Ways to Improve Your Use of C++11 and C++14
What do you think? What should I call the book I'm supposed to be working on as I'm writing this blog entry? What title would be, you know, most effective? (It need not be one of the two I listed above.)
Thanks,
Scott
73 comments:
How about 'Effective Modern C++'?
Reflects the fact that it's about the newer versions of C++, although some confusion may arrise with the 'Modern C++' book.
How about:
Effective Modern C++:
Specific Ways to Improve Your Use of C++11/14
Calling it Effective C++14 still suggests that it updates and replaces the previous edition. How about Meyers' Modern C++ Techniques: C++11 and C++14?
I second Xeo's suggestion.
Effective Modern C++: n Specific Ways to make better code with C++11/14.
Then Effective Modern C++ 2nd Edition and so forth for later revisions of the standard / formation of new best practices.
For the subtitle, it's all about better C++ code! IMHO, this will not be ambiguous or differ from what you'll be delivering in the book.
Just for fun: C++++
Ironically, I was about to say that's the best funny title ever, pronounced what? "C Plus Plus...Plus Plus?" I would suggest "C++XY - Effective Methods To Improve C++"
Since the unofficial name for -11 is 0x and -14 being 1y, I guess.
C++11/C++14 are details relevant in subtitle. The preface can tell this book is relevant to the advances made by the standard, therefore Effective C++ book becomes book series now. This will also help C++14 be recognized as C++ and older classes C++ by full ISO name as C++98.
Effective novelties in C++
I would advise against “Effective C++11/14.”
Even without the slash, the title contains a lot of numbers and punctuation…
How bout "Super Effective C++"?
May be:
Effective C++ 2015: n Special ways to make better code with C++11/14.
So 5 years later, you can release another book:
Effective C++ 2020: n Special ways to make better code with C++17
Effective C++ 3
I would suggest
Effective C++ Volume 2: n Specific Ways to Improve Your Use of C++11 and C++14
This leaves the way open for positioning volumes against milestones in the development of the standard, and also gives you the opportunity to update items in Volume 1 (via online addenda, perhaps) if further developments change best practice for older features. Your publisher may be inclined to re-publish Effective C++ as Volume 1 for newcomers to the language.
"Effective Modern C++: n Specific Ways to Improve Your Use of C++11 and C++14"
Gets my vote
My suggestion is:
"Effective C++ 11++".
This way you could cover as many following versions as you need. And it sounds interesting.
Good luck
C++11+ seems to be called "modern". What about using that along with a sub-title about 11/14.
My vote is "Effective Modern C++"
How about "Effective C++11 and beyond"?
I also vote for "Effective Modern C++" and you can add more details in a sub-title.
I came here to make my suggestion only to discover others were already making it: Effective Modern C++.
Exceptional C++: Features of C++11 and C++14 and Techniques to Deploy Them
Dang!
I just heard of this a few minutes ago, and even before I read any of the suggestions my mind wandered to: "Effective Modern C++" or maybe "Effective use of modern C++" but Xeo(and others) beat me to it!
I would argue that today we say "C-pluspluseleven" in order to distinguish it from old guy. But in a few years "11" will be obsolete.
Adam H
I don't like the suggestions that have anything in between "Effective" and "C++"; they break away from the pattern of the previous book titles. I would not put the language version in the main title, but only in the subtitle.
For me, the ideal title would be of the form "[prefix] Effective C++: n Specific Ways to Improve Your Use of C++11 and C++14". The hard part is finding a good prefix. "Even More" doesn't sound right, "Most" closes the door for the next book on C++17. "Expanded" or "Extended" incorrectly suggest that the book contains old material too. "Novel", "Modern", "Contemporary" have a shelf life of just a few years.
I'd say: if you (or someone) comes up with the perfect prefix, use that. Otherwise, forget about the prefix, and go with your second title.
Use a regular expression:
"Effective C\+\+1[14]"
@Paul Braman: Herb Sutter already has a book called "Exceptional C++," so that title is off limits.
@Everybody: Thanks for the suggestions! Keep 'em coming!
Ok, you have heard this one for sure: Even more efective c++
Why not "Modern Effective C++"? But perhaps that sounds too much like an update of the old book.
How about "Effective C++ - The Next Generation"? :)
Or, more seriously, "Next-Generation Effective C++".
I honestly think More Effective C++ (0x/1y) might be appropriate. It clarifies that it neither supersedes Effective C++ nor More Effective C++. It also has the working draft identifiers so people know it's focus is the modern updates to the language.
A lot was added from 98 to 11/14 though, so I'm not sure how it will all be covered; or rather what's in the book. The suggestion may be off.
Effective C++1x ?
I approve of "Effective Modern C++". :D
Effectiver C++
Mathematically, 11/14 would be Effective C++ Roughly 2/3. I think it is more sensible to use the mean however: Effective C++ 12.5.
I also vote for "Effective Modern C++: n Specific Ways to Improve Your Use of C++11 and C++14". To me, that clearly communicates the specific topic while indicating that this part of your indispensable series.
I think "Effective Modern C++:..." is the best name by far.
Personally I think you're approaching it from the wrong starting point.
Start with the idea that you *will* fully update The Original Series for C++11, 14, 17 and beyond - perhaps calling that uber volume, "Modern Effective C++" (updated when adding C++17 etc).
Now you're in a position to extract the deltas - similar to what Bjarne did with "A tour of C++".
Perhaps call this book, "Modern Effective C++ Lite", and make it clear in the subtitle and associated materials that it is an abridged version of the main tome.
After all, while most of TOS stands-up, it could do with significant reviewing to account for modern idioms.
This approach does not preclude you writing and releasing the delta-only version first.
Simple, two books Effective C++11 and Effective C++14. Practically, mix them together will bring more confuse and will be less effective. There is a separate line between C++11 and C++14. If the user's compiler only supports C++11, why jump back and forth to read "this feature only in C++14". When user's the compiler supports C++14, they can buy both books. This will make life easier for many people, not just C++ developer.
Even More Effective C++
(:
Effective C++1x (Volume 1): n Specific Ways to make better code with C++11 and C++14
Most Effective C++
Can also be used for any later book about C++
I'm changing my suggestion from "Effective Modern C++" because I don't think it's a future-proof name.
Scott, assuming you stay in the C++ game beyond this new book, and I think it's safe to say that everyone hopes you do, then it seems to me that "Modern" could pose a problem for future C++17 and beyond books.
They might have to be "Effective Post-Modern C++". :)
I now prefer Leopold's suggestion of introducing a year or Guy Davidson's idea of Volumes.
This is what I got in mind.
"Effective C++1y"
"Effective C++ - 4th Edition - New items for C++11 and C++14"
Keep it simple: Effective C++11 and C++14
I really like "Effective C++ Volume 2"
It conveys that you're adding more to what's already there. "Effective Modern C++" and "Modern Effective C++" still sound like you're covering the whole modern version of the language and not just the new parts.
Effective C++ Volume 2: n specific ways to use C++11/14 to improve your programs and designs.
Even "Effective C++ Volume 3" could work if you like to think of "More Effective C++" as volume 2.
You could even call it volume 4, if you think of Effective STL as volume 3.
Effective C++ Volume 1: 55 Specific Ways to Improve Your Programs and Designs
Effective C++ Volume 2: 35 More Ways to Improve your Programs and Designs
Effective C++ Volume 3: 50 Specific Ways to Use the STL to Improve Your Programs and Designs
Effective C++ Volume 4: 50 Specific Ways to Use C++11/14 to Improve Your Programs and Designs
"Effective Modern C++", "Effective C++ Volume 4"... There are already three previous "Effective C++/STL" books, why should I buy the fourth one? Can I tell just by the title of the book that I need it because it contains important guidelines on how to use C++14 features properly? No. But if I see a book on a shelf of a book store entitled "Effective C++14", I'll get interested, even if I don't know what's inside this book of even who the author is.
I think the assumption that 'many people will assume that it has nothing in it for them if they're "only" using C++11' is not valid. What is C++14 other than just a (small) refinement of C++11? I think "Effective C++14" is a good title because firstly, it captures the essence of the book and secondly, it captures the attention of readers.
Effective C++ Now: n Specific Ways to Improve Your Use of Modern C++
Rationale:
1. Leverage your existing title recognition without confusion.
2. Gets rid of all of the reasons why someone wouldn't want to pickup the book (11 vs. 14) while driving home the core point - this is NEW.
3. Gives you license to include (or not) STL related material.
4. The use of the word Now drives home a sense of urgency - your work is immediately applicable, even if you only read a single recommendation.
That said, your existing books are still pretty damn timeless. They are truly unlike most "technical" books which age out nearly as quickly as the ink dries.
Next Effective C++ would imply continuity with Effective C++ and More Effective C++. Or would that make people think too much of Java iterators?
Effective C++ [11&14]: n Specific Ways to Improve Your Use of C++11 and C++14
I vote for Effective Modern C++.
'Effective Modern C++: ' - I think is the best title for this case. Someone here wrote that this title will be outdated after some time, but I doubt there will be changes in style and ideology as the transition from C++03 to C++11. There will be updates and improvements, but is quite unlikely that there will be even more modern C++ (related to coding style).
Just some wild thoughts that may, or may not, lead to something useful:
Effective C++: The Second Century
Effective C++: The Second Millenium
Effective C++: The New Standards
Effective C++: The New Batch
Effective C++: The Next Generation
- Effective C++ 2.0
- The all-new Effective C++ (carefull, you might be sued by HTC)
- Effective C++11 & C++14
How about keeping it simple and releasing two books instead?
- Effective C++11
- Effective C++14
There's "Effective C++", "More Effective C++", so this should be something like "Yet More Effective C++" because, obviously, C++11 and C++14 are yet more effective than C++98. A special bonus is that the unix/linux crowd will certainly appreciate the "Yet" word for its naming nostalgia qualities ;)
Am I in time? How about:
"New Effective C++: Specific Ways to Improve Your Use of C++11 and C++14".
"New Effective" relates to the previous "Effective" and "More Effective". The subtitle includes the specific versions which are targeted.
@Daniel Daranas (and everybody else): You're not too late, so keep those suggestions coming! I read them all with great interest.
I plan to post an updated status report on the book soon, and at that time, I'll include my current thinking regarding the book's title.
Effective C++11 to 14: n Specific Ways to Improve Your Use of the Newest Versions of C++
Possibly "Emergent C++"?
That way future iterations don't require a significant title change and can still be seen as part of the series.
I'll go with Effective Modern C++, as has been previously stated.
Effective C++: n Specific Ways to Improve Your Programs and Designs with C++XX [and C++YY]
or
Effective C++: n Specific Ways to Improve Your Programs and Designs
C++XX [and C++YY] Edition
Just drop the versioning from the title. The brand is: Effective C++.
C++98/11/14, should be in the subtitle.
Why didn't you name your first book: Effective C++98 , but Effective C++ ?
Effective C++14
I think best title for the new effective book will be:
"Early 21st Century Effective C++"
or
Effective C++ in Early 21st Century"
Satish Singhal
Anything with "modern" or "new" or alike wouldn't be appropriate. A future version of the book should be "new new" or "very modern" for consistency :P I would suggest:
"Effective C++11/14: n Specific Ways to Improve Your Use of C++".
Without specifying "of C++11" or "of C++14" or "Newest Versions of C++", because you already mentioned the versions before and C++ is just one language. This way you make clear that you are giving advices on how to improve our coding in C++, in general, that's what you are actually doing (and that's so much appreciated) :) the "Effective C++11/14" part doesn't suggest that you are replacing the previous version, so it's fine and makes clear that you are referring to the newest Standards.
Or:
"Effective C++11/14 Only: ..."
or,
"Effective C++11/14 Features: ..."
: )
I would suggest the title
"Effective New Generation C++".
Effective Standard C++
I'm against the grain but I disagree with the use of the word "modern" in the title. The expression "Modern C++" is not only taken by Andrei's book, it has also become associated with the generic programming techniques described in it.
I also don't think the word "techniques" is appropriate. In my opinion, I think the "Effective" series explains how to do things correctly rather than demonstrating techniques like other books do. Put another way, "Effective" contains straightforward information you apply immediately instead of patterns you adapt in your code later on.
I'm quite warm to the idea of working in the word "volume" in the title. I think it's a good way to signify continuation and expansion to the body of work that is the "Effective C++" series. Unfortunately, it does break the pattern of "effective" -> "more effective" -> "??? effective".
I'll throw in another suggestion because it can't hurt. Assuming the book comes out in 2015: "Effective C++ in 2015". The "in" is important because it's not "C++ 2015" we're talking about. It's about how to write effective C++ in the year 2015. That said, I'm not too keen on anchoring a book to a specific year...
Effective C++ in the Modern Style: n Specific Ways to Write Better Code with C++11 and C++14
My twopence:
"More Effective C++", or "Effective C++, 4th ed.".
Rick Armstrong
Portland, OR
I think "Effective C++" brand name should not be tampered with. Further the new book it should indicate C++11, C++14 names too, to make a selling proposition.
Based on what Scott thinks I propose:
"Effective C++ - C++11/C++14 - New items"
This name is future proof. For instance in 2018 you could have a book
"Effective C++ - C++18 - New items"
...
Effective C++ : Reboot
I prefer:
Effective C++14: n Specific Ways to Improve Your Use of C++11 and C++14
Beyond Effective C++: n Specific Ways to Improve Your Use of C++11 and C++14
Post a Comment