Blogs

RSS

An aggregation of our Blog Roll, made up of acmqueue authors.   more

All Postings, Herb Sutter:  (420 posts)

Source blog: Sutter's Mill

Mon, 07 Apr 2014 16:46:17 UTC

C++ and Beyond Encore in 2014: Sep 29  Oct 1, Stuttgart, Germany

Posted By Herb Sutter

A lot of you have been asking me whether there will be some sort of C++ and Beyond in 2014. Also, over the past few years many of you have also asked me if there will ever be a C&B outside North America. I’m pleased to report that we are doing a ‘European Encore’ event […]

Fri, 04 Apr 2014 16:45:22 UTC

Yesterdays Build talk is now online

Posted By Herb Sutter

That was fast! Filed under: C++, Microsoft

Thu, 03 Apr 2014 15:36:00 UTC

Reader Q&A: Generic lambdas

Posted By Herb Sutter

Tim just added this comment on the GotW #3 Solution blog post from last year: Are you sure you can use auto in lambda like this?I can not compile the code and I’m pretty sure auto does not work here. If you mean auto as a lambda parameter type, such as [](auto& s){ use(s); } […]

Wed, 02 Apr 2014 20:44:20 UTC

Build talk tomorrow: Modern C++  What you need to know

Posted By Herb Sutter

If you’re at Build in San Francisco tomorrow afternoon, I invite you to swing by and spend an hour with us in session 2-661: Modern C++: What you need to know by Herb Sutter Build 2014, Room 20052:30-3:30 pm, Thursday April 3, 2014 If you’re new to C++, this talk is aimed directly at you. […]

Tue, 25 Mar 2014 14:05:40 UTC

CppCon 2014 Call for Submissions

Posted By Herb Sutter

More news about the first annual CppCon that was announced last week: CppCon 2014 Call for Submissions CppCon is the annual, week-long face-to-face gathering for the entire C++ community. The conference is organized by the C++ community for the community and so we invite you to present. Have you learned something interesting about C++, maybe a new technique […]

Tue, 18 Mar 2014 16:21:28 UTC

We have CppCon&

Posted By Herb Sutter

I’m really excited about this event! Note that the first 100 registrations get a big discount  pasting from the “registration” page: Regular registration fee is $995 but the first 100 attendees can take advantage of Super Early Bird registration and pay only $695. After that, the Early Bird registration fee is $845 and is […]

Mon, 17 Mar 2014 16:31:18 UTC

S&S Postscript

Posted By Herb Sutter

PS on the previous post regarding Stroustrup & Sutter: I had asked the organizers whether it would be possible to get a piano in the room. I just learned a few minutes ago that they will be able to arrange a baby grand. Sweet! This is going to be fun&Filed under: C++

Mon, 17 Mar 2014 16:23:30 UTC

Stroustrup & Sutter on C++: Mar 31  Apr 1, San Jose, CA

Posted By Herb Sutter

It has occurred to me that I never announced this event here& In two weeks, Bjarne and I will be doing a two-day Stroustrup & Sutter on C++ seminar in the San Francisco Bay area. It has been several years since the last S&S event, so Bjarne and I are really looking forward to this. […]

Wed, 19 Feb 2014 18:31:51 UTC

Reader Q&A: Is std::atomic_compare_exchange_* implementable?

Posted By Herb Sutter

Quick answer: Yes. I see there was also a thread about this on StackOverflow, so I’ll echo this Q&A publicly for others’ benefit and hopefully to dispel confusion. Duncan Forster asked: I’m quite alarmed the C++ committee chose such a bad interface for std::atomic compare_exchange, i.e.:     bool compare_exchange_???(T& expected, T desired, …);I notice you […]

Tue, 18 Feb 2014 00:52:43 UTC

Trip report: Winter ISO C++ meeting

Posted By Herb Sutter

I just posted my trip report from last week’s ISO C++ meeting over on isocpp.org. The meeting just wrapped up about 48 hours ago, on Saturday afternoon. This is a real milestone for C++. Not only did we finish C++14 (we think, assuming this coming ballot comes back clean so that we can skip the […]

Tue, 14 Jan 2014 16:55:10 UTC

GotW #96: Oversharing

Posted By Herb Sutter

Following on from #95, let’s consider reasons and methods to avoid mutable sharing in the first place&   Problem Consider the following code from GotW #95′s solution, where some_obj is a shared variable visible to multiple threads which then synchronize access to it. // thread 1{ lock_guard hold(mut_some_obj); // acquire lock code_that_reads_from( some_obj ); // […]

Mon, 13 Jan 2014 19:00:16 UTC

GotW #95 Solution: Thread Safety and Synchronization

Posted By Herb Sutter

This GotW was written to answer a set of related frequently asked questions. So here’s a mini-FAQ on “thread safety and synchronization in a nutshell,” and the points we’ll cover apply to thread safety and synchronization in pretty much any mainstream language.   Problem JG Questions 1. What is a race condition, and how serious […]

Mon, 06 Jan 2014 16:00:09 UTC

GotW #95: Thread Safety and Synchronization

Posted By Herb Sutter

This GotW was written to answer a set of related frequently asked questions. So here’s a mini-FAQ on “thread safety and synchronization in a nutshell,” and the points we’ll cover apply to thread safety and synchronization in pretty much any mainstream language.   Problem JG Questions 1. What is a race condition, and how serious […]

Mon, 06 Jan 2014 15:58:39 UTC

GotW #7c Solution: Minimizing Compile-Time Dependencies, Part 3

Posted By Herb Sutter

Now the unnecessary headers have been removed, and avoidable dependencies on the internals of the class have been eliminated. Is there any further decoupling that can be done? The answer takes us back to basic principles of solid class design.   Problem JG Question 1. What is the tightest coupling you can express in C++? […]

Tue, 31 Dec 2013 20:32:15 UTC

GotW #7c: Minimizing Compile-Time Dependencies, Part 3

Posted By Herb Sutter

Now the unnecessary headers have been removed, and avoidable dependencies on the internals of the class have been eliminated. Is there any further decoupling that can be done? The answer takes us back to basic principles of solid class design.   Problem JG Question 1. What is the tightest coupling you can express in C++? … … Continue reading →

Tue, 31 Dec 2013 20:24:37 UTC

GotW #7b Solution: Minimizing Compile-Time Dependencies, Part 2

Posted By Herb Sutter

Now that the unnecessary headers have been removed, it’s time for Phase 2: How can you limit dependencies on the internals of a class?   Problem JG Questions 1. What does private mean for a class member in C++? 2. Why does changing the private members of a type cause a recompilation? Guru Question 3. … … Continue reading →

Mon, 09 Dec 2013 19:13:55 UTC

Grace Hopper on Letterman, 1986

Posted By Herb Sutter

Google’s doodle today reminded me of Grace Hopper’s amazing contributions. I enjoyed this 10-minute video, and you might as well: Grace Hopper on Letterman in 1986 on the occasion of her (final) retirement. It’s not deep, but especially in the second half Amazing Grace demonstrates how to talk to a non-specialist audience. Good reminders for all of us who […]

Thu, 05 Dec 2013 23:31:01 UTC

Reader Q&A: Book recommendations

Posted By Herb Sutter

Vigen Isayan emailed me today to ask: What book(s) you would recommend for learning 1. design patterns, and 2. concurrency programming. Off the top of my head: 1. For Design Patterns, the greatest is still the original “Gang of Four” Design Patterns book. The design patterns are mostly universal, and the implementations happen to focus on […]

Mon, 18 Nov 2013 23:25:42 UTC

Visual C++ Compiler November 2013 CTP

Posted By Herb Sutter

We just shipped Visual C++2013 last month, but I announced at GoingNative in September that there would be more soon: another CTP (compiler preview) containing another batch of C++11/14 features, sometime in the fourth quarter. I’m happy to report that today we shipped the promised CTP. Compared to the “high probability in CTP” feature set I mentioned […]

Wed, 13 Nov 2013 22:18:04 UTC

(V)C++ recorded talks at VS 2013 Launch

Posted By Herb Sutter

As part of today’s VS 2013 launch, in addition to the live talks and Q&A we also have some recently recorded talks that are now also live. My talk is a quick 20-minute tour of the new ISO C++ conformance features in VC++ 2013 — nothing I haven’t said before, so if you’ve seen my […]

Wed, 13 Nov 2013 16:37:23 UTC

Live Visual C++ Q&A today

Posted By Herb Sutter

As part of the VS 2013 launch today, in a few hours I will be joining Tarek Madkour and Ale Contenti on camera for about half an hour to answer questions about VC++2013. Tarek and Ale are two of the three-manager triad who run our VC++ team. Visual C++ in 2013 and Beyond with Charles […]

Tue, 12 Nov 2013 19:16:40 UTC

Reminder: VC++2013 upgrade SKU available until end of January

Posted By Herb Sutter

Recap: Back in June, Microsoft: announced that were were moving to a faster cadence and shipped VS 2013 one year after VS 2012; announced that new ISO C++ conformance features from the November 2012 CTP (and more) would be available in VS 2013, but not in VS 2012 Updates; and didn’t announce pricing for VS […]

Mon, 28 Oct 2013 17:03:08 UTC

Reader Q&A: Acquire/release and sequential consistency

Posted By Herb Sutter

Reader Ernie Cohen emailed me this morning to ask a question about one slide in my atomic<> Weapons talk from last year’s C++ and Beyond: In your atomic weapons talk (part 1) (updated 2/15/2013) ,page 18, titled “Sc > Acq/Rel Alone: Some examples”, the first example listed “transitivity/causality”: T0: g = 1; x = 1; […]

Thu, 03 Oct 2013 22:20:08 UTC

Trip Report: Fall ISO C++ standards meeting

Posted By Herb Sutter

I just posted my trip report on isocpp.org. Also be sure to read the Current ISO C++ status page. We accomplished a lot last week — thanks to all the volunteers for making this a very productive and successful meeting! Just to visualize everything that’s going on, here’s a copy of the current ISO C++ […]

Fri, 20 Sep 2013 15:58:59 UTC

Bjarne and I are speaking in Chicago on Tuesday night

Posted By Herb Sutter

Bjarne Stroustrup and I are giving back-to-back talks on Tuesday night in Chicago, while we’re both in town for the standards meeting next week. Admission is free. Register by email here (and ignore the “it’s full note on the page” — see below.) Note that my talk will be 80% new material followed by the last […]

Fri, 13 Sep 2013 04:20:41 UTC

Reader Q&A: Will C++ remain indispensable&?

Posted By Herb Sutter

A reader wrote me today to ask the following. Since this is a FAQ, I thought I’d post the answer here. With the advent of C++11 and upcoming C++14 and C++1y, the language has strapped much of the digital electronics industry under its belt. High performance software, Libraries, Embedded, Research, Web backends, our everyday software, […]

Mon, 09 Sep 2013 20:40:47 UTC

My One C++ talk from GoingNative is now posted

Posted By Herb Sutter

I see the recording went live this morning. Thanks again to all the speakers and in-room and worldwide attendees for coming and watching! Day 2 Keynote: One C++ Herb Sutter My favorite part was seeing the response to the challenge to write a cool graphical interactive C++ program from scratch in 24 hours using a […]

Mon, 09 Sep 2013 20:27:58 UTC

Visual Studio 2013 RC is now available

Posted By Herb Sutter

At Build in June, we announced that VC++ 2013 RTM “later this year” would include the ISO conformance features in the June preview (explicit conversion operators, raw string literals, function template default arguments, delegating constructors, uniform initialization and initializer_lists, and variadic templates) plus also several more to be added between the Preview and the RTM: […]

Wed, 04 Sep 2013 16:25:39 UTC

Tomorrow

Posted By Herb Sutter

You will want to watch Chandler Carruth’s talk tomorrow at GoingNative. It will be livestreamed here starting at 2:30pm North American Pacific time. (See timeanddate.com for other time zones.) Watch for the Ghostbusters reference. That is all. Filed under: Uncategorized

Tue, 03 Sep 2013 16:17:25 UTC

Livestreamed talk at GoingNative this week: One C++

Posted By Herb Sutter

Don’t forget that the year’s great C++-fest GoingNative 2013 starts tomorrow morning and will be livestreamed on the Channel 9 home page. Don’t miss the opening keynote by Bjarne Stroustrup at 9:00am Seattle time on Wednesday. It will be followed by many other insightful and enlightening talks, from many of the gurus of C++. The […]

Mon, 19 Aug 2013 10:33:12 UTC

GotW #7b: Minimizing Compile-Time Dependencies, Part 2

Posted By Herb Sutter

Now that the unnecessary headers have been removed, it’s time for Phase 2: How can you limit dependencies on the internals of a class? Problem JG Questions 1. What does private mean for a class member in C++? 2. Why does changing the private members of a type cause a recompilation? Guru Question 3. Below […]

Mon, 19 Aug 2013 10:31:39 UTC

GotW #7a Solution: Minimizing Compile-Time Dependencies, Part 1

Posted By Herb Sutter

Managing dependencies well is an essential part of writing solid code. C++ supports two powerful methods of abstraction: object-oriented programming and generic programming. Both of these are fundamentally tools to help manage dependencies, and therefore manage complexity. It’s telling that all of the common OO/generic buzzwordsincluding encapsulation, polymorphism, and type independencealong with most design patterns, […]

Tue, 13 Aug 2013 15:35:00 UTC

Comment delays and spam

Posted By Herb Sutter

In recent months, more comment spam has been getting through. To deal with it, I’ve had to tighten up and hold more comments for moderation, which means some comments may be delayed in appearing until I manually approve them. Also, I’ve noticed that WordPress seems to have similarly tightened their settings for auto-identifying spam that […]

Mon, 12 Aug 2013 22:53:30 UTC

GotW #7a: Minimizing Compile-Time Dependencies, Part 1

Posted By Herb Sutter

GotW #7a: Minimizing Compile-Time Dependencies, Part 1 Managing dependencies well is an essential part of writing solid code. C++ supports two powerful methods of abstraction: object-oriented programming and generic programming. Both of these are fundamentally tools to help manage dependencies, and therefore manage complexity. It’s telling that all of the common OO/generic buzzwordsincluding encapsulation, polymorphism, […]

Mon, 12 Aug 2013 19:42:37 UTC

GotW #94 Solution: AAA Style (Almost Always Auto)

Posted By Herb Sutter

Toward correct-by-default, efficient-by-default, and pitfall-free-by-default variable declarations, using “AAA style”& where “triple-A” is both a mnemonic and an evaluation of its value.   Problem JG Questions 1. What does this code do? What would be a good name for some_function? template<class Container, class Value>void some_function( Container& c, const Value& v ) { if( find(begin(c), end(c), […]

Tue, 09 Jul 2013 16:47:02 UTC

Recommended reading: Why mobile web apps are slow (Drew Crawford)

Posted By Herb Sutter

I don’t often link to other articles, but this one is worth reading. Why mobile web apps are slow by Drew Crawford & So if you are trying to figure out exactly what brand of crazy all your native developer friends are on for continuing to write the evil native applications on the cusp of […]

Wed, 26 Jun 2013 16:30:08 UTC

My //build/ talk on Friday @ noon PDT (webcast)

Posted By Herb Sutter

The session schedule for this week’s //build/ conference in San Francisco has now been posted. I have a talk on Friday at noon Pacific time, titled “The Future of C++.” Note this is a Microsoft conference, so the talk is specifically about the future of the Visual C++ product, but nevertheless it’s all about Standard […]

Fri, 14 Jun 2013 02:27:13 UTC

GotW #94 Special Edition: AAA Style (Almost Always Auto)

Posted By Herb Sutter

Toward correct-by-default, efficient-by-default, and pitfall-free-by-default variable declarations, using “AAA style”& where “triple-A” is both a mnemonic and an evaluation of its value.   Problem JG Questions 1. What does this code do? What would be a good name for some_function? template<class Container, class Value>void some_function( Container& c, const Value& v ) { if( find(begin(c), end(c), […]

Fri, 14 Jun 2013 00:10:19 UTC

GotW #93 Solution: Auto Variables, Part 2

Posted By Herb Sutter

Why prefer declaring variables using auto? Let us count some of the reasons why&   Problem JG Question 1. In the following code, what actual or potential pitfalls exist in each labeled piece of code? Which of these pitfalls would using auto variable declarations fix, and why or why not? // (a)void traverser( const vector<int>& […]

Fri, 07 Jun 2013 14:06:54 UTC

GotW #93: Auto Variables, Part 2

Posted By Herb Sutter

Why prefer declaring variables using auto? Let us count some of the reasons why&   Problem JG Question 1. In the following code, what actual or potential pitfalls exist in each labeled piece of code? Which of these pitfalls would using auto variable declarations fix, and why or why not? // (a)void traverser( const vector<int>& […]

Fri, 07 Jun 2013 13:34:05 UTC

GotW #92 Solution: Auto Variables, Part 1

Posted By Herb Sutter

What does auto do on variable declarations, exactly? And how should we think about auto? In this GotW, we’ll start taking a look at C++’s oldest new feature.   Problem JG Questions 1. What is the oldest C++11 feature? Explain. 2. What does auto mean when declaring a local variable? Guru Questions 3. In the […]

Wed, 05 Jun 2013 14:56:44 UTC

GotW #92: Auto Variables, Part 1

Posted By Herb Sutter

What does auto do on variable declarations, exactly? And how should we think about auto? In this GotW, we’ll start taking a look at C++’s oldest new feature.   Problem JG Questions 1. What is the oldest C++11 feature? Explain. 2. What does auto mean when declaring a local variable? Guru Questions 3. In the […]

Wed, 05 Jun 2013 14:42:12 UTC

GotW #91 Solution: Smart Pointer Parameters

Posted By Herb Sutter

NOTE: Last year, I posted three new GotWs numbered #103-105. I decided leaving a gap in the numbers wasn’t best after all, so I am renumbering them to #89-91 to continue the sequence. Here is the updated version of what was GotW #105.   How should you prefer to pass smart pointers, and why?   […]

Thu, 30 May 2013 23:12:42 UTC

GotW #91: Smart Pointer Parameters

Posted By Herb Sutter

NOTE: Last year, I posted three new GotWs numbered #103-105. I decided leaving a gap in the numbers wasn’t best after all, so I am renumbering them to #89-91 to continue the sequence. Here is the updated version of what was GotW #105.   How should you prefer to pass smart pointers, and why?   […]

Thu, 30 May 2013 23:04:45 UTC

GotW #90 Solution: Factories

Posted By Herb Sutter

NOTE: Last year, I posted three new GotWs numbered #103-105. I decided leaving a gap in the numbers wasn’t best after all, so I am renumbering them to #89-91 to continue the sequence. Here is the updated version of what was GotW #104.   What should factory functions return, and why?   Problem While spelunking […]

Wed, 29 May 2013 18:54:21 UTC

GotW #90: Factories

Posted By Herb Sutter

NOTE: Last year, I posted three new GotWs numbered #103-105. I decided leaving a gap in the numbers wasn’t best after all, so I am renumbering them to #89-91 to continue the sequence. Here is the updated version of what was GotW #104.   What should factory functions return, and why?   Problem While spelunking […]

Wed, 29 May 2013 18:49:21 UTC

GotW #89 Solution: Smart Pointers

Posted By Herb Sutter

NOTE: Last year, I posted three new GotWs numbered #103-105. I decided leaving a gap in the numbers wasn’t best after all, so I am renumbering them to #89-91 to continue the sequence. Here is the updated version of what was GotW #103.   There’s a lot to love about standard smart pointers in general, […]

Wed, 29 May 2013 00:08:38 UTC

GotW #89: Smart Pointers

Posted By Herb Sutter

NOTE: Last year, I posted three new GotWs numbered #103-105. I decided leaving a gap in the numbers wasn’t best after all, so I am renumbering them to #89-91 to continue the sequence. Here is the updated version of what was GotW #103.   There’s a lot to love about standard smart pointers in general, […]

Wed, 29 May 2013 00:05:43 UTC

GotW #6b Solution: Const-Correctness, Part 2

Posted By Herb Sutter

const and mutable are powerful tools for writing safer code. Use them consistently. Problem Guru Question In the following code, add or remove const (including minor variants and related keywords) wherever appropriate. Note: Don’t comment on or change the structure of this program. It’s contrived and condensed for illustration only. For bonus points: In what […]

Sun, 26 May 2013 00:20:46 UTC

C++ and Beyond: My material for December, and early-bird registration (through June 9)

Posted By Herb Sutter

If you’re thinking of coming to C++ and Beyond this December, consider registering in the next two weeks to get the $300 discount. I’ve just announced that much (and possibly all) of my material will be in heavily interactive sessions about modern C++11/C++14 style and idioms, covering the “complete C++11 package” that we’re calling C++14. […]

Fri, 24 May 2013 19:25:48 UTC

Lost two comments

Posted By Herb Sutter

As mentioned in my GotW kickoff post, I’m experimenting with software and a workflow that lets me maintain a single source document and use it to produce the work in multiple targets, in particular to post to the blog here, to produce print books, and to produce e-books. However, there have been kinks. In particular, […]

Fri, 24 May 2013 15:46:41 UTC

GotW #6a: Const-Correctness, Part 1

Posted By Herb Sutter

const and mutable have been in C++ for many years. How well do you know what they mean today?   Problem JG Question 1. What is a “shared variable”? Guru Questions 2. What do const and mutable mean on shared variables? 3. How are const and mutable different in C++98 and C++11?   Solution 1. […]

Fri, 24 May 2013 15:46:24 UTC

GotW #6a: Const-Correctness, Part 1

Posted By Herb Sutter

const and mutable have been in C++ for many years. How well do you know what they mean today?   Problem JG Question 1. What is meant by a “shared variable”? Guru Questions 2. What do const and mutable mean on shared variables? 3. How are const and mutable different in C++98 and C++11?   […]

Fri, 24 May 2013 15:43:05 UTC

GotW #6b: Const-Correctness, Part 2

Posted By Herb Sutter

const and mutable are powerful tools for writing safer code. Use them consistently. Problem Guru Question In the following code, add or remove const (including minor variants and related keywords) wherever appropriate. Note: Don’t comment on or change the structure of this program. It’s contrived and condensed for illustration only. For bonus points: In what […]

Fri, 24 May 2013 15:40:37 UTC

GotW #6a: Const-Correctness, Part 1

Posted By Herb Sutter

const and mutable have been in C++ for many years. How well do you know what they mean today?   Problem JG Question 1. What is a “shared variable”? Guru Questions 2. What do const and mutable mean on shared variables? 3. How are const and mutable different in C++98 and C++11?   Solution 1. […]

Wed, 22 May 2013 19:06:49 UTC

GotW #6a: Const-Correctness, Part 1

Posted By Herb Sutter

const and mutable have been in C++ for many years. How well do you know what they mean today?   Problem JG Question 1. What is a “shared variable”? Guru Questions 2. What do const and mutable mean on shared variables? 3. How are const and mutable different in C++98 and C++11? Filed under: GotW

Wed, 22 May 2013 19:06:19 UTC

GotW #5 Solution: Overriding Virtual Functions

Posted By Herb Sutter

Virtual functions are a pretty basic feature, but they occasionally harbor subtleties that trap the unwary. If you can answer questions like this one, then you know virtual functions cold, and you’re less likely to waste a lot of time debugging problems like the ones illustrated below.   Problem JG Question 1. What do the […]

Mon, 20 May 2013 18:27:25 UTC

GotW #5: Overriding Virtual Functions

Posted By Herb Sutter

Virtual functions are a pretty basic feature, but they occasionally harbor subtleties that trap the unwary. If you can answer questions like this one, then you know virtual functions cold, and you’re less likely to waste a lot of time debugging problems like the ones illustrated below.   Problem JG Question 1. What do the […]

Mon, 20 May 2013 18:22:22 UTC

GotW #4 Solution: Class Mechanics

Posted By Herb Sutter

How good are you at the details of writing classes? This item focuses not only on blatant errors, but even more so on professional style. Understanding these principles will help you to design classes that are easier to use and easier to maintain.   Problem JG Question 1. What makes interfaces “easy to use correctly, […]

Thu, 16 May 2013 20:09:32 UTC

GotW #4: Class Mechanics (7/10)

Posted By Herb Sutter

How good are you at the details of writing classes? This item focuses not only on blatant errors, but even more so on professional style. Understanding these principles will help you to design classes that are easier to use and easier to maintain.   Problem JG Question 1. What makes interfaces “easy to use correctly, […]

Thu, 16 May 2013 19:58:23 UTC

GotW #3 Solution: Using the Standard Library (or, Temporaries Revisited)

Posted By Herb Sutter

Effective reuse is an important part of good software engineering. To demonstrate how much better off you can be by using standard library algorithms instead of handcrafting your own, let’s reconsider the previous question to demonstrate how many of the problems could have been avoided by simply reusing what’s already available in the standard library. […]

Mon, 13 May 2013 12:31:55 UTC

GotW #3: Using the Standard Library (or, Temporaries Revisited) (3/10)

Posted By Herb Sutter

Effective reuse is an important part of good software engineering. To demonstrate how much better off you can be by using standard library algorithms instead of handcrafting your own, let’s reconsider the previous question to demonstrate how many of the problems could have been avoided by simply reusing what’s already available in the standard library. […]

Mon, 13 May 2013 12:30:54 UTC

GotW #2 Solution: Temporary Objects

Posted By Herb Sutter

Unnecessary and/or temporary objects are frequent culprits that can throw all your hard work  and your program’s performance  right out the window. How can you spot them and avoid them?   Problem JG Question 1. What is a temporary object? Guru Question 2. You are doing a code review. A programmer has written […]

Thu, 09 May 2013 16:42:09 UTC

GotW #2: Temporary Objects (5/10)

Posted By Herb Sutter

Unnecessary and/or temporary objects are frequent culprits that can throw all your hard work  and your program’s performance  right out the window. How can you spot them and avoid them?   Problem JG Question 1. What is a temporary object? Guru Question 2. You are doing a code review. A programmer has written […]

Thu, 09 May 2013 16:30:01 UTC

GotW #1 Solution: Variable Initialization  or Is It? (3/10)

Posted By Herb Sutter

This first problem highlights the importance of understanding what you write. Here we have a few simple lines of codemost of which mean something different from all the others, even though the syntax varies only slightly.   Problem JG Question 1. What is the difference, if any, among the following? widget w; // (a)widget w(); […]

Mon, 06 May 2013 08:26:40 UTC

GotW #1: Variable Initializationor Is It? (3/10)

Posted By Herb Sutter

This first problem highlights the importance of understanding what you write. Here we have a few simple lines of code  most of which mean something different from all the others, even though the syntax varies only slightly.   Problem JG Question 1. What is the difference, if any, among the following? widget w; // [...]

Sat, 04 May 2013 19:58:26 UTC

Guru of the Week and the Exceptional C++ Series

Posted By Herb Sutter

Its time for me to pick up Guru of the Week (GotW) again in earnest, as part of work on revising my three Exceptional C++ books for todays C++. Most Exceptional C++ Items are enhanced versions of GotW issues, after all, so the simplest and best place to start is with GotW. Its also much [...]

Sun, 28 Apr 2013 19:58:26 UTC

Guru of the Week and the Exceptional C++ Series

Posted By Herb Sutter

Its time for me to pick up Guru of the Week (GotW) again in earnest, as part of work on revising my three Exceptional C++ books for todays C++. Most Exceptional C++ Items are enhanced versions of GotW issues, after all, so the simplest and best place to start is with GotW. Its also much [...]

Sat, 20 Apr 2013 19:40:30 UTC

Trip Report: ISO C++ Spring 2013 Meeting

Posted By Herb Sutter

The Bristol meeting concluded a few hours ago, and I just posted my trip report on isocpp.org: This afternoon in Bristol, UK, the ISO C++ standards committee adopted generic lambdas, dynamic arrays (an improved version of C99 VLAs), variable templates, reader/writer locks, make_unique, optional<T>, standard library user-defined literals, and a number of other language and [...]

Fri, 05 Apr 2013 18:12:28 UTC

Complex initialization for a const variable

Posted By Herb Sutter

On std-discussion, Shakti Misra asked: I have seen in a lot of places code like int i; if(someConditionIstrue) { Do some operations and calculate the value of i; i = some calculated value; } use i; //Note this value is only used not changed. It should not be changed. But unfortunately in this case there [...]

Thu, 14 Mar 2013 15:50:07 UTC

Words of wisdom: Bjarne Stroustrup

Posted By Herb Sutter

Bjarne Stroustrup wrote the following a few minutes ago on the concepts mailing list: Let me take this opportunity to remind people that "being able to do something is not sufficient reason for doing it" and "being able to do every trick is not a feature but a bug" For the latter, remember Dijkstra’s famous [...]

Mon, 11 Feb 2013 18:31:42 UTC

atomic Weapons: The C++ Memory Model and Modern Hardware

Posted By Herb Sutter

Most of the talks I gave at C++ and Beyond 2012 last summer are already online at Channel 9. Here are two more. This is a two-part talk that covers the C++ memory model, how locks and atomics and fences interact and map to hardware, and more. Even though we’re talking about C++, much of [...]

Wed, 16 Jan 2013 00:20:29 UTC

Videos: Panel, and C++ Concurrency

Posted By Herb Sutter

Im about two weeks late posting this, but two more C++ and Beyond 2012 videos are now available online. The first is my 30-min concurrency talk: C++ and Beyond 2012: C++ Concurrency (Herb Sutter) Ive spoken and written on these topics before. Heres whats different about this talk: Brand new: This material goes beyond what [...]

Wed, 16 Jan 2013 00:08:30 UTC

Java vulnerabilities

Posted By Herb Sutter

With the help of friends Robert Seacord and David Svoboda of CERT in particular, I posted a note and link to their CERT post today because people have been misunderstanding the recent Java vulnerabilities, thinking theyre somehow really C or C++ vulnerabilities because Java is implemented in C and C++. From the post: Are the [...]

Tue, 01 Jan 2013 17:34:09 UTC

Video: You Dont Know const and mutable

Posted By Herb Sutter

At C++ and Beyond in August, I gave a 30 min talk on the changed meaning of const and mutable. The talk video is now online: You Dont Know [keyword] and [keyword] const means const. Bonus: mutable is useful and continues to mean already as good as const. This is another way C++ has become [...]

Fri, 21 Dec 2012 02:04:33 UTC

An implementation of generic lambdas is now available

Posted By Herb Sutter

For those interested in C++ standardization and not already following along at isocpp.org, here’s an item of likely interest: An implementation of generic lambdas (request for feedback)Faisal Vali This week, Faisal Vali shared an initial “alpha” implementation of generic lambdas in Clang. Faisal is the lead author of the proposal (N3418), with Herb Sutter and [...]

Tue, 04 Dec 2012 18:06:54 UTC

Compatibility

Posted By Herb Sutter

On yesterdays thread, I just wrote in a comment: @Jon: Yes, C++ is complex and the complexity is largely because of C compatibility. I agree with Bjarne that theres a small language struggling to get out  Ive participated in private experiments to specify such a language, and you can do it in well under [...]

Mon, 03 Dec 2012 21:34:30 UTC

Perspective: Why C++ Is Not Back

Posted By Herb Sutter

John Sonmez wrote a nice article on the weekend  both the article and the comments are worth reading. Why C++ Is Not Back by John Sonmez I love C++. [&] There are plenty of excellent developers I know today that still use C++ and teach others how to use it and there is nothing [...]

Sat, 01 Dec 2012 02:12:29 UTC

256 cores by 2013?

Posted By Herb Sutter

I just saw a tweet thats worth commenting on: Almost right, and we have already reached that. I said something similar to the above, but with two important differences: I said hardware threads, not only hardware cores  it was about the amount of hardware parallelism available on a mainstream system. What I gave was [...]

Sun, 25 Nov 2012 00:20:02 UTC

Podcast: Interview on Hanselminutes

Posted By Herb Sutter

A few weeks ago at the Build conference, Scott Hanselman and I sat down to talk about C++ and modern UI/UX. The podcast is now live here: The Hanselminutes Podcast, Show #346 Why C++ with Herb Sutter Topics Scott raises include: 2:00 Scott mentions he has used C++ in the past. C++ has changed. We [...]

Tue, 20 Nov 2012 17:26:22 UTC

Reader Q&A: A good book to learn C++11?

Posted By Herb Sutter

Last night a reader asked one of the questions that helped motivate the creation of isocpp.org: I am trying to learn the new C++. I am wondering if you are aware of resources or courses that can help me learn a little. I was not able to find any books for C++11. Any help would [...]

Tue, 06 Nov 2012 21:11:12 UTC

Fridays Q&A session now online

Posted By Herb Sutter

My live Q&A after Fridays The Future of C++ talk is now online on Channel 9. The topics revolved around& & recent progress and near-future directions for C++, both at Microsoft and across the industry, and talks about some announcements related to C++11 support in VC++ 2012 and the formation of the Standard C++ Foundation. [...]

Sat, 03 Nov 2012 23:12:50 UTC

Our industry is young again, and its all about UI

Posted By Herb Sutter

Jeff Atwoods post two days ago inspired me to write this down. Thanks, Jeff. I can’t even remember the last time I was this excited about a computer.  Jeff Atwood, November 1, 2012 Our industry is young again, full of the bliss and sense of wonder and promise of adventure that comes with youth. [...]

Sat, 03 Nov 2012 22:06:31 UTC

Talk now online: The Future of C++ (VC++, ISO C++)

Posted By Herb Sutter

Yesterday, many thousands of you were in the room or live online for my talk on The Future of C++. The talk is now available online. This has been a phenomenal year for C++, since C++11s publication just 12 months ago. And yesterday was a great day for C++. Yesterday I had the privilege of [...]

Wed, 31 Oct 2012 21:56:58 UTC

90 seconds @Build: Its a great week for C++

Posted By Herb Sutter

A few hours ago I sat down to give a short teaser for my webcast talk this Friday. Here it is. Feel free to forward. (I dont think they believed me when I said I could keep it to under two minutes.) Filed under: C++, Microsoft, Software Development, Talks & Events

Mon, 29 Oct 2012 16:35:29 UTC

The Future of C++: Live broadcast this Friday

Posted By Herb Sutter

In my talk on Friday, there will be announcements of broad interest to C++ developers on all compilers and platforms. Please help spread the word. The Future of C++ Friday, November 2, 2012 12:45pm (U.S. Pacific Time) This talk will give an update on recent progress and near-future directions for C++, both at Microsoft and [...]

Tue, 16 Oct 2012 15:53:44 UTC

Reader Q&A: volatile (again)

Posted By Herb Sutter

Sarmad Asgher asked a variant of a perennial question: I am implementing multi producer single consumer problem. I have shared variables like m_currentRecordsetSize which tells the current size of the buffer. I am using m_currentRecordsetSize in a critical section do i need to declare it as volatile. If youre in C or C++, and the [...]

Tue, 09 Oct 2012 16:59:14 UTC

CTP of Windows XP Targeting with C++ in Visual Studio 2012

Posted By Herb Sutter

The three by-far-most-requested missing features from Visual C++ 2012 were: Conformance: Keep adding more C++11 language conformance features. XP Targeting: Deliver the ability to build applications that could run on Windows XP, as well as Windows Vista, 7, and 8. Desktop Express: Deliver a free VC++ Express compiler that can be used to create traditional [...]

Wed, 03 Oct 2012 16:01:58 UTC

Poll: What features would you like to see added soonest in your favorite C++ compiler?

Posted By Herb Sutter

I just got back from teaching a class, and I’m always amazed at the breadth and diversity of C++ developers. As Bjarne Stroustrup famously says: “No one knows ‘what most C++ developers do.’” In particular, I’m surprised at how strongly some people feel about certain features, such as refactoring or safety or raw performance or [...]

Wed, 19 Sep 2012 22:05:06 UTC

Casablanca: C++ on Azure

Posted By Herb Sutter

Ive blogged about Casablanca before. Heres a related talk from TechEd Australia: Casablanca is a Microsoft incubation effort to support cloud-based client-server communication in native code using a modern asynchronous C++ API design. Think of it as Node.js, but using C++  from simple services, to JSON and REST, to Azure storage and deployment, and [...]

Tue, 18 Sep 2012 20:53:01 UTC

C&B 2012 panel posted: Ask Us Anything!

Posted By Herb Sutter

The second panel from C++ and Beyond 2012 is now available on Channel 9: Alexandrescu, Meyers and Sutter – Ask Us Anything Here is the Ask Us Anything panel from C++ and Beyond 2012. Andrei Alexandrescu, Scott Meyers and Herb Sutter take questions from attendees. As expected, great questions and answers& Table of contents (click [...]

Wed, 12 Sep 2012 19:00:39 UTC

VC++ 2012 Desktop Expres (Free)

Posted By Herb Sutter

  Today Microsoft released another free Express version of Visual C++ 2012. In addition to the free Express Visual C++ compiler for building tablet applications, Visual Studio Express 2012 for Windows Desktop directly supports traditional Windows and command-line applications in C++. This a great free C++ compiler on Windows for everything from hobby development to [...]

Sat, 01 Sep 2012 00:43:58 UTC

Reader Q&A: How to write a CAS loop using std::atomics

Posted By Herb Sutter

The following is not intended to be a complete treatise on atomics, but just an answer to a specific question. A colleague asked: How should one write the following conditional interlocked function in the new C++ atomic<> style? // if (*plValue >= 0) *plValue += lAdd  ; return the original value LONG MpInterlockedAddNonNegative(__inout LONG volatile* [...]

Tue, 21 Aug 2012 15:10:26 UTC

C&B Panel: Alexandrescu, Meyers, Sutter on Static If, C++11, and Metaprogramming

Posted By Herb Sutter

The first panel from C++ and Beyond 2012 is now available on Channel 9: On Static If, C++11 in 2012, Modern Libraries, and Metaprogramming Andrei Alexandrescu, Scott Meyers, Herb Sutter Channel 9 was invited to this year’s C++ and Beyond to film some sessions (that will appear on C9 over the coming months!)… At the [...]

Thu, 02 Aug 2012 11:26:37 UTC

Strong and weak hardware memory models

Posted By Herb Sutter

In Welcome to the Jungle, I predicted that weak hardware memory models will disappear. This is true, and its happening before our eyes: x86 has always been considered a strong hardware memory model that supports sequentially consistent atomics efficiently. The other major architecture, ARM, recently announced that they are now adding strong memory ordering in [...]

Mon, 30 Jul 2012 15:11:46 UTC

Late-Breaking C&B Session: A Special Announcement

Posted By Herb Sutter

At the end of the Monday afternoon session, I will be making a special announcement related to Standard C++ on all platforms. Be there to hear the details, and to receive an extra perk thats being reserved for C&B 2012 attendees only. Note: We sometimes record sessions and make them freely available online via Channel [...]

Fri, 29 Jun 2012 19:41:39 UTC

C&B Session: atomic<> Weapons  The C++11 Memory Model and Modern Hardware

Posted By Herb Sutter

Heres another deep session for C&B 2012 on August 5-8  if you havent registered yet, register soon. We got a bigger venue this time, but as I write this the event is currently almost 75% full with five weeks to go. I know, Ive already posted three sessions and a panel. But theres just [...]

Thu, 21 Jun 2012 20:58:35 UTC

Reader Q&A: Why dont modern smart pointers implicitly convert to *?

Posted By Herb Sutter

Today a reader asked a common question: Why doesn’t unique_ptr (and the ilk) appear to have an operator overload somewhat as follows: operator T*() { return get(); }; The reason I ask is because we have reams of old code wanting raw pointers (as function parms), and I would like to replace the outer layers [...]

Thu, 21 Jun 2012 20:40:10 UTC

Talk Video: Welcome to the Jungle (60 min version + Q&A)

Posted By Herb Sutter

While visiting Facebook earlier this month, I gave a shorter version of my Welcome to the Jungle talk, based on the eponymous WttJ article. They made a nice recording and its now available online here: Facebook Engineering Title: Herb Sutter: Welcome to the Jungle In the twilight of Moore’s Law, the transitions to multicore processors, [...]

Tue, 05 Jun 2012 19:10:01 UTC

GotW #105: Smart Pointers, Part 3 (Difficulty: 7/10)

Posted By Herb Sutter

JG Question 1. What are the performance and correctness implications of the following function declaration? Explain.   Guru Question 2. A colleague is writing a function f that takes an existing object of type widget as a required input-only parameter, and trying to decide among the following basic ways to take the parameter (omitting const): [...]

Tue, 05 Jun 2012 19:03:20 UTC

GotW #104: Solution

Posted By Herb Sutter

The solution to GotW #104 is now live. Filed under: C++, GotW

Sun, 03 Jun 2012 04:57:24 UTC

Facebook Folly  OSS C++ Libraries

Posted By Herb Sutter

Ive been beating the drum this year that the biggest problem facing C++ today is the lack of a large set of de jure and de facto standard libraries. My team at Microsoft just recently announced Casablanca, a cloud-oriented C++ library and that we intend to open source, and were making other even bigger efforts [...]

Fri, 01 Jun 2012 23:04:27 UTC

Were hiring (again & more)

Posted By Herb Sutter

The Visual C++ team is looking for a number of people to do work on C++11, parallelizing/vectorizing, cloud, libraries, and more. All I can say is that theres a lot of cool stuff in the pipeline that directly addresses real needs, including things people regularly comment on this blog about that I cant answer specifically [...]

Tue, 29 May 2012 00:09:27 UTC

Two Sessions: C++ Concurrency and Parallelism  2012 State of the Art (and Standard)

Posted By Herb Sutter

Its time for, not one, but two brand-new, up-to-date talks on the state of the art of concurrency and parallelism in C++. Im going to put them together especially and only for C++ and Beyond 2012, and Ill be giving them nowhere else this year: C++ Concurrency  2012 State of the Art (and Standard) [...]

Thu, 17 May 2012 17:06:03 UTC

VC++ and Win8 Metro apps: May 18, livestream and on-demand

Posted By Herb Sutter

Reblogged from Sutters Mill: Want to know how to write cool tablet apps using Visual C++? On May 18, Microsoft is hosting a one-day free technical event for developers who want to write Metro apps for Windows 8 using Visual C++. Im giving the opening talk, and the rest of the day is full of [...]

Mon, 07 May 2012 14:42:14 UTC

VC++ and Win8 Metro apps: May 18, livestream and on-demand

Posted By Herb Sutter

Want to know how to write cool tablet apps using Visual C++? On May 18, Microsoft is hosting a one-day free technical event for developers who want to write Metro apps for Windows 8 using Visual C++. Im giving the opening talk, and the rest of the day is full of useful technical information on [...]

Fri, 04 May 2012 23:16:20 UTC

Looking for compiler engineers

Posted By Herb Sutter

Are you a compiler engineer or know one, and looking for interesting work on a top-notch team? Were hiring. (That particular link says two openings, but there are more.) Filed under: C++, Microsoft

Thu, 03 May 2012 17:53:28 UTC

Reader Q&A: What about VC++ and C99?

Posted By Herb Sutter

I occasionally get asked about whether, or how well, Visual C++ supports C99. This week, I just posted two replies to this questions on UserVoice (merged below). Last fall, I also answered it in an interview with Dr. Dobbs (recommended for some rationale discussion). The short answer is that Visual C++s focus is to support [...]

Mon, 30 Apr 2012 23:19:59 UTC

C++ Libraries: Casablanca

Posted By Herb Sutter

At GoingNative in February, I emphasized the need for more modern and portable C++ libraries, including for things like RESTful web/cloud services, HTTP, JSON, and more. The goal is to find or develop modern C++ libraries that leverage C++11 features, and then submit the best for standardization. Microsoft wants to do its part, and heres [...]

Mon, 30 Apr 2012 21:59:18 UTC

Worlds youngest C++ programmer?

Posted By Herb Sutter

Im seeing many younger programmers picking up C++. The average age at C++ events over the past year has been declining rapidly as the audience sizes grow with more and younger people in addition to the C++ veterans. But this one just beats all [Facebook link added]: A six-year-old child from Bangladesh is hoping to [...]

Mon, 30 Apr 2012 21:36:26 UTC

C++ and Beyond Panel: Modern C++ = Clean, Safe, and Faster Than Ever

Posted By Herb Sutter

I just posted the following panel announcement to the C++ and Beyond site. The three-day event (plus evening-before reception) with me, Scott Meyers, and Andrei Alexandrescu will be held on August 5-8, and early-bird registration is open until May 31.   C++11 is kind of like C++ Dreamliner. Its built with world-class modern materials. It [...]

Tue, 24 Apr 2012 22:13:37 UTC

Mobile vs. PC?

Posted By Herb Sutter

In answering a reader question about Flash today, I linked to Adobes November press release and I commented: Granted, Adobe says its abandoning Flash only for new mobile device browsers while still supporting it for PC browsers. This is still a painful statement because [in part] & the distinction between mobile devices and PCs is [...]

Tue, 24 Apr 2012 21:30:01 UTC

Reader Q&A: Flash Redux

Posted By Herb Sutter

David Braun asked: @Tom @Herb: Whats so wrong with flash that it should be boycotted? Have I been being abused by it in some way Im not aware of? Also,does HTML5 have any bearing on the subject? Im not saying it should be boycotted, only that I avoid it. Here’s what I wrote two years [...]

Mon, 23 Apr 2012 15:31:58 UTC

Talk Video: Welcome to the Jungle

Posted By Herb Sutter

Last month in Kansas City I gave a talk on “Welcome to the Jungle,” based on my recent essay of the same name (sequel to “The Free Lunch Is Over”) concerning the turn to mainstream heterogeneous distributed computing and the end of Moores Law. Perceptive Software has now made the talk available online: Welcome to the Jungle In the [...]

Sun, 22 Apr 2012 01:17:32 UTC

GotW #104: Smart Pointers, Part 2 (Difficulty: 5/10)

Posted By Herb Sutter

While spelunking through the code of a new project you recently joined, you find the following factory function declaration:   JG Question 1. Whats wrong with this return type?   Guru Questions 2. What is the recommended return type? Explain your answer, including any tradeoffs. 3. Youd like to actually change the return type to [...]

Sun, 22 Apr 2012 01:05:35 UTC

GotW #103: Solution

Posted By Herb Sutter

The solution to GotW #103 is now live. Filed under: C++, GotW

Fri, 20 Apr 2012 06:26:00 UTC

Steve Jobs on Programmers (via Brent Schlender)

Posted By Herb Sutter

Earlier this week, Brent Schlender published selected Steve Jobs quote highlights from his interview tape archives. Heres one about us: The difference between the best worker on computer hardware and the average may be 2 to 1, if you’re lucky. With automobiles, maybe 2 to 1. But in software, it’s at least 25 to 1. [...]

Fri, 13 Apr 2012 01:23:12 UTC

Talk + panel online: (Not Your Fathers) C++ + Native Languages Panel

Posted By Herb Sutter

Last week at the Lang.NEXT 2012 conference in Redmond, I gave a 40-minute C++ talk and participated on a native languages panel. Both are now online at Channel 9. Heres the 40-min C++ talk, taken from the C9 site: (Not Your Fathers) C++ Herb Sutter  What makes ISO C++11 "feel like a new language"? What [...]

Thu, 12 Apr 2012 12:43:29 UTC

What languages are used to build what software?

Posted By Herb Sutter

I’ve been meaning to post a link to Vincent Lextrait’s nice (and actively maintained) catalog of what languages are used to build what modern and major mainstream software: The Programming Languages Beacon This table contains a list of major software products or utilities, with details about the programming languages used to implement them. Information on [...]

Sat, 07 Apr 2012 06:13:01 UTC

We want await! A C# talk thats applicable to C++

Posted By Herb Sutter

A nice talk by Mads Torgersen just went live on Channel 9 about C#s non-blocking Task<T>.ContinueWith() library feature and await language feature, which are a big hit in C# (and Visual Basic) for writing highly concurrent code that looks pretty much just like sequential code. Mads is one of the designers of await. If youre [...]

Fri, 06 Apr 2012 23:07:00 UTC

The Of Course Principle of Design

Posted By Herb Sutter

Nicely put: Most companies (including web startups), he said, are looking to wow with their products, when in reality what they should be looking for is an of course reaction from their users. Simple and obvious beats flashy. So many great designs are obvious in retrospect. Hat tip to John Gruber. Filed under: Friday Thoughts

Thu, 05 Apr 2012 20:45:59 UTC

Reader Q&A: What does it mean for [[attributes]] to affect language semantics?

Posted By Herb Sutter

Followup on this earlier question, @bilbothegravatar asked: @Alf, @Herb  I dont quite get the [[noreturn]] example. While it may (not) compile on VC++, (as far as I understand) it does not carry any semantic meaning, and, whats more, it is *perfectly* safe for any compiler that sees [[noreturn]] to just ignore it  the [...]

Tue, 03 Apr 2012 23:53:03 UTC

Reader Q&A:

Posted By Herb Sutter

Motti asked: While youre dealing with readers Qs&. In your keynote in Going Native you mentioned that type inference should almost always be used, except for some obscure cases with expression templates. Yes. To give people context, the idea is when declaring local variables, prefer to use auto to deduce the type. For example: This [...]

Tue, 03 Apr 2012 01:15:27 UTC

Reader Q&A: When will better JITs save managed code?

Posted By Herb Sutter

In the comments on last weeks interview, MichaelTK asked: @Herb: You mentioned two things I dont fully understand in your talk. 1) Why would C++ be a better choice for very large scale applications than NET/Java? I mean the zero abstraction penalty (which is more a JIT compiler issue and not intrinsically hardwired into C#) [...]

Tue, 03 Apr 2012 00:45:14 UTC

Reader Q&A: Keywords and Attributes

Posted By Herb Sutter

Referring to C++ AMP, a reader emailed me to ask: Are you going to replace restrict keyword with new C++11 attribute feature [[]] ? No, because restrict is a language feature and [[attributes]] are specifically designed to be ignorable and shouldnt be used for things having language semantic meaning. During the ISO C++11 process, I [...]

Fri, 30 Mar 2012 00:38:15 UTC

Interview: C++A Language for Modern Times

Posted By Herb Sutter

Last week I spent 30 minutes with interviewer Robert Hess to talk about the differences between managed and native languages, and why modern C++ is clean, safe, and fast  as clean and safe as any other modern language, and still the king of fast. The interview just went live today on Channel 9. Heres [...]

Mon, 26 Mar 2012 11:36:52 UTC

C++ and Beyond 2012: Aug 5-8, Asheville, NC, USA

Posted By Herb Sutter

February and March have been killer busy, so that I forgot to repeat an important announcement here: registration is open for C++ and Beyond 2012! Im looking forward to teaching for three days again with Scott Meyers and Andrei Alexandrescu as one of the top C++ conference highlights of the year. This year, C&B will [...]

Thu, 08 Mar 2012 23:04:48 UTC

Trip Report: February 2012 C++ Standards Meeting

Posted By Herb Sutter

The spring 2012 meeting of ISO/IEC JTC1/SC22/WG21 (C++) was held on February 6-10 in Kona, Hawaii, USA. Heres the major takeaway: This is going to be a busy year as investment in C++ across the industry continues to increase, and thats good news for C++. Here are some highlights from the meeting. Attendance This was [...]

Tue, 06 Mar 2012 23:24:34 UTC

Welcome to the Jungle in Kansas City  March 20, 2012

Posted By Herb Sutter

Thanks to Perceptive Software who are bringing me to Kansas City in two weeks to give a free talk on Welcome to the Jungle. The talk will be based on my recent essay of the same name (sequel to The Free Lunch Is Over) concerning the turn to mainstream heterogeneous distributed computing and the end [...]

Wed, 29 Feb 2012 17:21:00 UTC

VC++11 Beta Available, Supported For Production Code

Posted By Herb Sutter

Earlier this month, I announced in my GoingNative talk C++11, VC++11 and Beyond that Visual C++ 11 Beta would be available in February. Todays the day: You can download Visual Studio 11 Beta here. Interestingly, VC++11 is being distributed under a go-live license, which means that Microsoft supports using this compiler to write production code. [...]

Wed, 29 Feb 2012 14:41:45 UTC

PR Night with the HEAT! Sunday, April 22.

Posted By Herb Sutter

PR Night with the HEAT! Sunday, April 22. Buy tickets early. Posted by oncallpr Back by Popular Demand&. Public Relations Night With the MIAMI HEAT  Houston Rockets vs HEAT Sunday, April 22 Buy Your Tickets Early so You Dont Get Shut Out (last year we closed out): 6 p.m. @ American Airlines Arena $55 [...]

Wed, 29 Feb 2012 14:39:12 UTC

ANNOUNCEMENT: PR News Welcomed as Newest SFPRN Sponsor

Posted By Herb Sutter

PR News, an excellent resource for our industry professionals, is the newest sponsor to help support the South Florida Public Relations Network. Our sponsors make it possible to continue to provide this free member service and our low cost events and networking activities, along with student study recognitions. Please visit our SPONSOR page and take [...]

Sun, 26 Feb 2012 21:59:16 UTC

James Hamilton on reliability

Posted By Herb Sutter

Dont trust hardware or software; then you can build trustworthy hardware and software. James Hamilton on how to write reliable software in a world where anything that can fail, will fail. Filed under: Hardware, Software Development

Thu, 23 Feb 2012 20:09:11 UTC

VC++11 Beta on Feb 29

Posted By Herb Sutter

Three weeks ago, I announced in my GoingNative talk C++11, VC++11 and Beyond that Visual C++ 11 Beta would be available this month. With Somas announcement this morning, Im now happy to add a few more details: VC++11 Beta will be available on Feb 29. It will be under a go-live license, which means that [...]

Thu, 09 Feb 2012 00:54:31 UTC

Going Native Sessions Online

Posted By Herb Sutter

Thanks to everyone who came to Redmond and/or watched online to participate in Going Native 2012, last weeks global C++-fest. It was a lot of fun, and generated a lot of useful and important talks that we hope will help continue disseminate understanding of C++11 throughout the global C++ community. All the videos are now [...]

Fri, 03 Feb 2012 01:15:00 UTC

GoingNative 2012: Day 2 Tomorrow (Friday)

Posted By Herb Sutter

GoingNative 2012 Day 1 is just concluding, and were getting ready for Day 2 tomorrow with more C++11 information and panels. Day 2 kicks off tomorrow at 9:30am U.S. Pacific time, with the theme C++11 Today and Tomorrow. Day 1s focus was entirely about C++11 as it exists today; Day 2 is partly about C++11 [...]

Wed, 01 Feb 2012 18:47:34 UTC

GoingNative 2012: Minus 1 Day

Posted By Herb Sutter

GoingNative 2012 is a global live C++11-fest with unlimited free worldwide attendance  both live and on demand. The goal is to make it interactive, and weve asked the speakers to reserve time at the ends of their talks for questions. Tweet questions to #ch9live or #GoingNative and we’ll try and get them asked. To [...]

Mon, 30 Jan 2012 19:14:00 UTC

GoingNative 2012: Minus 3 Days

Posted By Herb Sutter

Recap: GoingNative 2012 is a global live C++11-fest that kicks off this Thursday at 9:30am U.S. Pacific time. 350 live in the room. Unlimited free worldwide attendance  both live and on demand. Note that because of technical limitations, watching the livestream requires Silverlight (watching the stored videos later on demand will not). Silverlight is [...]

Sat, 28 Jan 2012 21:55:29 UTC

GoingNative 2012: Minus 5 Days

Posted By Herb Sutter

Recap: GoingNative 2012, the worlds first globally simulcast C++ convention, starts with Bjarne Stroustrups opening keynote C++ Style this Thursday at 9:30am U.S. Pacific time (time zone converter). In-room attendance is sold out, but worldwide attendance is unlimited and free  all sessions will be livestreamed, and later after a short processing delay will also [...]

Thu, 26 Jan 2012 21:16:00 UTC

GoingNative 2012: Minus One Week

Posted By Herb Sutter

GoingNative 2012 is sold out for in-person attendees, but online attendance is free and unlimited  live-stream and on-demand. Watch the main page for links. GoingNative 2012 is a 48 hour technical event for those who push the boundaries of general purpose computing by exploiting the true capabilities of the underlying machine: C++ developers. Distinguished [...]

Fri, 20 Jan 2012 20:46:53 UTC

GotW #103: Smart Pointers, Part 1 (Difficulty: 3/10)

Posted By Herb Sutter

JG Question 1. When should you use shared_ptr vs. unique_ptr? List as many considerations as you can.   Guru Questions 2. Why should you always use make_shared to allocate objects whose lifetimes will be managed by shared_ptr? Explain. 3. Whats the deal with auto_ptr? Filed under: C++

Fri, 20 Jan 2012 20:42:33 UTC

GotW #102: Solution

Posted By Herb Sutter

The solution to GotW #102 is now live. Filed under: C++

Mon, 16 Jan 2012 18:54:22 UTC

C++11 GoingNative 2012: Speakers and Sessions

Posted By Herb Sutter

The speakers and sessions for GoingNative 2012 (Feb 2-3, Redmond WA USA) have now been posted. With the focus squarely on C++11 on all compilers and platforms, I think this is going to be the C++ event of the first half of 2012, and Im very pleased with the caliber of our speakers and their [...]

Tue, 10 Jan 2012 17:01:07 UTC

Map of C++

Posted By Herb Sutter

Hilarious and apt. Nice work, Alena and Jim. Filed under: C++

Fri, 30 Dec 2011 01:53:11 UTC

Welcome to the Jungle

Posted By Herb Sutter

With so much happening in the computing world, now seemed like the right time to write Welcome to the Jungle  a sequel to my earlier The Free Lunch Is Over essay. Heres the introduction:   Welcome to the Jungle In the twilight of Moores Law, the transitions to multicore processors, GPU computing, and HaaS [...]

Sat, 03 Dec 2011 01:17:53 UTC

GotW #102: Exception-Safe Function Calls (Difficulty: 7/10)

Posted By Herb Sutter

JG Question 1. In each of the following statements, what can you say about the order of evaluation of the functions f, g, and h and the expressions expr1 and expr2? Assume that expr1 and expr2 do not contain more function calls.   Guru Questions 2. In your travels through the dusty corners of your [...]

Sat, 03 Dec 2011 01:06:11 UTC

GotW #101: Solution

Posted By Herb Sutter

The solution to GotW #101 is now live. Filed under: C++

Thu, 24 Nov 2011 02:05:09 UTC

C++ Spring: GoingNative, Feb 2-3, 2012

Posted By Herb Sutter

Im very pleased to announce the C++ event of the first half of 2012: GoingNative 2012, to be held on February 2-3 in Redmond, WA, USA. (C++ and Beyond will also be great, but wont be till the second half of the year  and there are other C++ conferences/events coming too. I cant remember [...]

Thu, 24 Nov 2011 02:05:09 UTC

C++ Spring: GoingNative, Feb 2-3, 2012

Posted By Herb Sutter

Im very pleased to announce the C++ event of the first half of 2012: GoingNative 2012, to be held on February 2-3 in Redmond, WA, USA. (C++ and Beyond will also be great, but wont be till the second half of the year  and there are other C++ conferences/events coming too. I cant remember [...]

Wed, 16 Nov 2011 19:03:10 UTC

GotW 101: Compilation Firewalls, Part 2 (Difficulty: 8/10)

Posted By Herb Sutter

GotW #100 demonstrated the best way to express the Pimpl idiom using only standard C++11 features: Guru Question Is it possible to make the widget code easier to write by wrapping the Pimpl pattern in some sort of library helper? If so, how? Try to make the widget code as convenient and concise as possible [...]

Wed, 16 Nov 2011 19:03:10 UTC

GotW #101: Compilation Firewalls, Part 2 (Difficulty: 8/10)

Posted By Herb Sutter

GotW #100 demonstrated the best way to express the Pimpl idiom using only standard C++11 features: Guru Question Is it possible to make the widget code easier to write by wrapping the Pimpl pattern in some sort of library helper? If so, how? Try to make the widget code as convenient and concise as possible [...]

Wed, 16 Nov 2011 18:55:23 UTC

GotW #100: Solution

Posted By Herb Sutter

The solution to GotW #100 is now live. Filed under: C++, GotW

Wed, 16 Nov 2011 18:55:23 UTC

GotW #100: Solution

Posted By Herb Sutter

The solution to GotW #100 is now live. Filed under: C++, GotW

Fri, 04 Nov 2011 22:52:20 UTC

GotW #100: Compilation Firewalls

Posted By Herb Sutter

JG Questions 1. What is the Pimpl Idiom, and why is it useful? Guru Questions 2. What is the best way to express the basic Pimpl Idiom in C++11? 3. What parts of the class should go into the impl object? Some potential options include: put all private data (but not functions) into impl; put [...]

Fri, 04 Nov 2011 22:52:20 UTC

GotW #100: Compilation Firewalls

Posted By Herb Sutter

JG Questions 1. What is the Pimpl Idiom, and why is it useful? Guru Questions 2. What is the best way to express the basic Pimpl Idiom in C++11? 3. What parts of the class should go into the impl object? Some potential options include: put all private data (but not functions) into impl; put [...]

Thu, 03 Nov 2011 06:14:16 UTC

A Passing of Giants

Posted By Herb Sutter

I don’t normally blog poetry, but the passing of our giants this past month has put me in such a mood.   What is built becomes our future Hand-constructed, stone by stone Quarried by our elders’ labors Fashioned with their strength and bone Dare to dream, and dare to conquer Fears by building castles grand [...]

Thu, 03 Nov 2011 06:14:16 UTC

A Passing of Giants

Posted By Herb Sutter

I don’t normally blog poetry, but the passing of our giants this past month has put me in such a mood. . What is built becomes our future Hand-constructed, stone by stone Quarried by our elders’ labors Fashioned with their strength and bone Dare to dream, and dare to conquer Fears by building castles grand [...]

Wed, 02 Nov 2011 00:14:44 UTC

Scott Meyers C++11 Materials: The Best Available Overview of C++11

Posted By Herb Sutter

  People keep asking me where to find good information on C++11. Until now Ive had to point them to blogs, and say that were all working on revising our books but itll take a while. Its been an unsatisfying answer. Finally I have a C++11 book I can direct people to: Today Scott Meyers [...]

Wed, 02 Nov 2011 00:14:44 UTC

Scott Meyers C++11 Materials: The Best Available Overview of C++11

Posted By Herb Sutter

  People keep asking me where to find good information on C++11. Until now Ive had to point them to blogs, and say that were all working on revising our books but itll take a while. Its been an unsatisfying answer. Finally I have a C++11 book I can direct people to: Today Scott Meyers [...]

Sat, 29 Oct 2011 01:13:40 UTC

Elements of Modern C++ Style

Posted By Herb Sutter

As Im getting ready to resume writing a few new (or updated) Guru of the Week Items for the C++11 era, Ive been looking through the wonderful features of C++11 and analyzing just which ones will affect the baseline style of how I write modern C++ code, both for myself and for publication. Ive gathered [...]

Sat, 29 Oct 2011 01:13:40 UTC

Elements of Modern C++ Style

Posted By Herb Sutter

As Im getting ready to resume writing a few new (or updated) Guru of the Week Items for the C++11 era, Ive been looking through the wonderful features of C++11 and analyzing just which ones will affect the baseline style of how I write modern C++ code, both for myself and for publication. Ive gathered [...]

Tue, 25 Oct 2011 23:44:51 UTC

Garbage Collection Synopsis, and C++

Posted By Herb Sutter

In response to my note about John McCarthys inventing automatic (non ref-counted) garbage collection, rosen4obg asked: OK, GC was invented half a century ago. When it is going to land in the C++ world? Heres a short but detailed answer, which links to illuminating reading and videos. The Three Kinds of GC The three major [...]

Tue, 25 Oct 2011 23:44:51 UTC

Garbage Collection Synopsis, and C++

Posted By Herb Sutter

In response to my note about John McCarthys inventing automatic (non ref-counted) garbage collection, rosen4obg asked: OK, GC was invented half a century ago. When it is going to land in the C++ world? Heres a short but detailed answer, which links to illuminating reading and videos. The Three Kinds of GC The three major [...]

Tue, 25 Oct 2011 08:15:08 UTC

John McCarthy

Posted By Herb Sutter

What a sad, horrible month. First Steve Jobs, then Dennis Ritchie, and now John McCarthy. We are losing many of the greats all at once. If you havent heard of John McCarthy, youre probably learning about his many important contributions now. Some examples: Hes the inventor of Lisp, the second-oldest high-level programming language, younger than [...]

Tue, 25 Oct 2011 08:15:08 UTC

John McCarthy

Posted By Herb Sutter

What a sad, horrible month. First Steve Jobs, then Dennis Ritchie, and now John McCarthy. We are losing many of the greats all at once. If you havent heard of John McCarthy, youre probably learning about his many important contributions now. Some examples: Hes the inventor of Lisp, the second-oldest high-level programming language, younger than [...]

Mon, 17 Oct 2011 01:12:19 UTC

Your First C Program

Posted By Herb Sutter

As a tribute in honor of Dennis Ritchies passing, Id like to invite you to share your thoughts in this posts comments about your first C program  either the code if you remember it approximately, or a story about when you wrote it. Heres mine. I wrote my first C program in 1988 as [...]

Mon, 17 Oct 2011 01:12:19 UTC

Your First C Program

Posted By Herb Sutter

As a tribute in honor of Dennis Ritchies passing, Id like to invite you to share your thoughts in this posts comments about your first C program  either the code if you remember it approximately, or a story about when you wrote it. Heres mine. I wrote my first C program in 1988 as [...]

Sat, 15 Oct 2011 01:54:03 UTC

Temporary Post Used For Theme Detection (a49628b6-b764-40c5-b98c-98945ca89832  3bfe001a-32de-4114-a6b4-4005b770f6d7)

Posted By Herb Sutter

This is a temporary post that was not deleted. Please delete this manually. (dc9f99c7-a6c2-4390-9891-b4562fbfb071 – 3bfe001a-32de-4114-a6b4-4005b770f6d7) Filed under: Uncategorized

Thu, 13 Oct 2011 23:37:04 UTC

2000 Interview: Dennis Ritchie, Bjarne Stroustrup, and James Gosling

Posted By Herb Sutter

  Dennis Ritchie gave very few interviews, but I was lucky enough to be able to get one of them. Back in 2000, when I was editor of C++ Report, I interviewed the creators of C, C++, and Java all together: The C Family of Languages: Interview with Dennis Ritchie, Bjarne Stroustrup, and James Gosling [...]

Thu, 13 Oct 2011 23:37:04 UTC

2000 Interview: Dennis Ritchie, Bjarne Stroustrup, and James Gosling

Posted By Herb Sutter

Dennis Ritchie gave very few interviews, but I was lucky enough to be able to get one of them. Back in 2000, when I was editor of C++ Report, I interviewed the creators of C, C++, and Java all together: The C Family of Languages: Interview with Dennis Ritchie, Bjarne Stroustrup, and James Gosling This [...]

Thu, 13 Oct 2011 05:24:49 UTC

Dennis Ritchie

Posted By Herb Sutter

What a sad week. Rob Pike reports that Dennis Ritchie also has passed away. Ritchie was one of the pioneers of computer science, and a well-deserved Turing winner for his many contributions, notably the creation of C — by far the most influential programming language in history, and still going strong today. Aside: Speaking of [...]

Thu, 13 Oct 2011 05:24:49 UTC

Dennis Ritchie

Posted By Herb Sutter

What a sad week. Rob Pike reports that Dennis Ritchie also has passed away. Ritchie was one of the pioneers of computer science, and a well-deserved Turing winner for his many contributions, notably the creation of C — by far the most influential programming language in history, and still going strong today. Aside: Speaking of [...]

Mon, 10 Oct 2011 19:48:27 UTC

ISO C++11 Published

Posted By Herb Sutter

ISO has now published the new C++11 standard and issued a press release: English here, French here. Thanks again to everyone who made this happen, most especially Bjarne Stroustrup, who not only invented the language three decades ago, but as Evolution Working Group subgroup chair continues to be an active guiding force in its continued evolution. [...]

Mon, 10 Oct 2011 19:48:27 UTC

ISO C++11 Published

Posted By Herb Sutter

ISO has now published the new C++11 standard and issued a press release: English here, French here. Thanks again to everyone who made this happen, most especially Bjarne Stroustrup, who not only invented the language three decades ago, but as Evolution Working Group subgroup chair continues to be an active guiding force in its continued evolution. [...]

Sat, 08 Oct 2011 00:45:45 UTC

Why no container-based algorithms?

Posted By Herb Sutter

A few minutes ago, a colleague on another team asked: I really enjoyed your talk on Modern C++ from the Build conference, and have a quick question: Could there be a simpler syntax  something like: foreach(collection, lambda_function) // or some other syntactic name for foreach which would expand to for_each(begin(collection), end(collection), lambda_function) Same for find_if, [...]

Sat, 08 Oct 2011 00:45:45 UTC

Why no container-based algorithms?

Posted By Herb Sutter

A few minutes ago, a colleague on another team asked: I really enjoyed your talk on Modern C++ from the Build conference, and have a quick question: Could there be a simpler syntax  something like: foreach(collection, lambda_function) // or some other syntactic name for foreach which would expand to for_each(begin(collection), end(collection), lambda_function) Same for [...]

Fri, 07 Oct 2011 19:24:13 UTC

WordPress.com expertise

Posted By Herb Sutter

I’m generally satisfied with the look and feel of this blog, but would like to tweak it in a few small ways to get a cleaner look, nicer formatting for code examples, and such. If you or someone you know is familiar with WordPress.com blog customization, and is interested in a small project along these [...]

Fri, 07 Oct 2011 19:24:13 UTC

WordPress.com expertise

Posted By Herb Sutter

I’m generally satisfied with the look and feel of this blog, but would like to tweak it in a few small ways to get a cleaner look, nicer formatting for code examples, and such. If you or someone you know is familiar with WordPress.com blog customization, and is interested in a small project along these [...]

Thu, 06 Oct 2011 17:16:31 UTC

Steve Jobs

Posted By Herb Sutter

Today our industry is much less than it was yesterday. We have lost one of the great inventors. Even more importantly, Steve Jobs’ family has lost a husband and brother and father, and our thoughts are with them. What can be said that hasn’t been said? Steve has been arguably the single most influential driver [...]

Thu, 06 Oct 2011 17:16:31 UTC

Steve Jobs

Posted By Herb Sutter

Today our industry is much less than it was yesterday. We have lost one of the great innovators. Even more importantly, Steve Jobs’ family has lost a husband and brother and father, and our thoughts are with them. What can be said that hasn’t been said? Steve has been arguably the single most influential driver [...]

Mon, 19 Sep 2011 23:37:11 UTC

My two //build/ talks online

Posted By Herb Sutter

My two talks from last week’s //build/ conference are online. My personal favorite is Writing Modern C++ Code: How C++ Has Evolved Over the Years. The thesis is simple: Modern ISO Standard C++ code is clean, safe, and fast. C++ has got a bad rap over the years, partly earned, but that’s history. This talk [...]

Mon, 19 Sep 2011 23:37:11 UTC

My two //build/ talks online

Posted By Herb Sutter

My two talks from last week’s //build/ conference are online. My personal favorite is Writing Modern C++ Code: How C++ Has Evolved Over the Years. The thesis is simple: Modern ISO Standard C++ code is clean, safe, and fast. C++ has got a bad rap over the years, partly earned, but that’s history. This talk [...]

Tue, 13 Sep 2011 19:00:32 UTC

Ars: Searching Win8

Posted By Herb Sutter

Check out Ars’ choice of search term about 2/3 of the way down the page. Hi-res here. Filed under: C++, Microsoft, Software Development

Tue, 13 Sep 2011 19:00:32 UTC

Ars: Searching Win8

Posted By Herb Sutter

Check out Ars’ choice of search term about 2/3 of the way down the page. Hi-res here. Filed under: C++, Microsoft, Software Development

Wed, 07 Sep 2011 22:00:01 UTC

My C++ and Beyond Intro: C++ Renaissance

Posted By Herb Sutter

Channel 9 has just posted a recording of my intro talk at C++ and Beyond 2011 last month in Banff. Here’s the link: C++ and Beyond 2011: Why C++. It’s a keynote-y talk, not a technical talk, but we felt it was important to address an important trend involving the language. The goal is to share a [...]

Wed, 07 Sep 2011 22:00:01 UTC

My C++ and Beyond Intro: C++ Renaissance

Posted By Herb Sutter

Channel 9 has just posted a recording of my intro talk at C++ and Beyond 2011 last month in Banff. Here’s the link: C++ and Beyond 2011: Why C++. It’s a keynote-y talk, not a technical talk, but we felt it was important to address an important trend involving the language. The goal is to share a [...]

Thu, 25 Aug 2011 01:55:29 UTC

C9 interview with Scott Meyers, Andrei Alexandrescu, and me

Posted By Herb Sutter

After the end of the C++ and Beyond event earlier this month, Charles Torre interviewed all three of us for Channel 9. I thought it came out really well, and stayed firmly focused on C++ — including even during the parts we talked about D and other languages, where the focus was on how their best parts could be applied to [...]

Thu, 25 Aug 2011 01:55:29 UTC

C9 interview with Scott Meyers, Andrei Alexandrescu, and me

Posted By Herb Sutter

After the end of the C++ and Beyond event earlier this month, Charles Torre interviewed all three of us for Channel 9. I thought it came out really well, and stayed firmly focused on C++ — including even during the parts we talked about D and other languages, where the focus was on how their best parts could be applied to [...]

Thu, 25 Aug 2011 01:42:11 UTC

Trip Report: August 2011 C++ Standards Meeting

Posted By Herb Sutter

The spring 2011 ISO C++ meeting was held on August 15-19 in Bloomington, Indiana, USA on the wonderful Indiana University campus. The minutes will be available at the 2011 papers page in a couple of weeks. As previously announced, C++11 was unanimously approved just days before the standards meeting, so this was the first post-C++11 meeting. As [...]

Thu, 25 Aug 2011 01:42:11 UTC

Trip Report: August 2011 C++ Standards Meeting

Posted By Herb Sutter

The summer 2011 ISO C++ meeting was held on August 15-19 in Bloomington, Indiana, USA on the wonderful Indiana University campus. The minutes will be available at the 2011 papers page in a couple of weeks. As previously announced, C++11 was unanimously approved just days before the standards meeting, so this was the first post-C++11 meeting. As [...]

Fri, 12 Aug 2011 21:24:16 UTC

We have an international standard: C++0x is unanimously approved

Posted By Herb Sutter

The final ISO ballot on C++0x closed on Wednesday, and we just received the results: Unanimous approval. The next revision of C++ that we’ve been calling “C++0x” is now an International Standard! Geneva will take several months to publish it, but we hope it will be published well within the year, and then we’ll be [...]

Fri, 12 Aug 2011 21:24:16 UTC

We have an international standard: C++0x is unanimously approved

Posted By Herb Sutter

[Update: "C++11" is now the confirmed name -- Geneva informs me that they plan to have it published in a matter of weeks, and then we'll have ISO/IEC 14882:2011(E) Programming Languages -- C++, Third Edition. The second edition was C++03, a Technical Corrigendum, or bug patch, that contained no new features. This is the first [...]

Thu, 28 Jul 2011 21:22:29 UTC

C++ Renaissance: The Going Native Channel

Posted By Herb Sutter

I’m happy to report there’s a new show on Channel 9 that focuses on native code development in C++. It’s called “Going Native”… iTunes podcast here, Twitter @C9GoingNative. From the description: C9::GoingNative is a show dedicated to native development with an emphasis on C++ and C++ developers. Each episode will have a segment including an interview with a native [...]

Thu, 28 Jul 2011 21:22:29 UTC

C++ Renaissance: The Going Native Channel

Posted By Herb Sutter

I’m happy to report there’s a new show on Channel 9 that focuses on native code development in C++. It’s called “Going Native”… iTunes podcast here, Twitter @C9GoingNative. From the description: C9::GoingNative is a show dedicated to native development with an emphasis on C++ and C++ developers. Each episode will have a segment including an interview with a native [...]

Sat, 09 Jul 2011 03:52:39 UTC

My Final C++ and Beyond 2011 Sessions

Posted By Herb Sutter

I just posted two more sessions I’ll be giving next month at C++ and Beyond. (Aside: If you’re interested in coming, register soon; there are now only 11 seats left.) “C++ Renaissance.” I've been asked to give the opening “Welcome, Everyone!” keynote talk at C&B 2011, and it's time to cover an increasingly open secret: After [...]

Sat, 09 Jul 2011 03:52:39 UTC

My Final C++ and Beyond 2011 Sessions

Posted By Herb Sutter

I just posted two more sessions I’ll be giving next month at C++ and Beyond. (Aside: If you’re interested in coming, register soon; there are now only 11 seats left.) “C++ Renaissance.” Ive been asked to give the opening Welcome, Everyone! keynote talk at C&B 2011, and its time to cover an increasingly open secret: After [...]

Mon, 20 Jun 2011 00:58:18 UTC

Daniel Moth's C++ AMP session is now online

Posted By Herb Sutter

In my keynote on Wednesday, I highlighted just the top two important features in the C++ AMP programming model. That afternoon, my coding colleague and demo demigod Daniel Moth gave a 45-minute session covering the entire C++ AMP programming model that walked through all the features with more examples. Daniel’s talk is now also online [...]

Mon, 20 Jun 2011 00:58:18 UTC

Daniel Moths C++ AMP session is now online

Posted By Herb Sutter

In my keynote on Wednesday, I highlighted just the top two important features in the C++ AMP programming model. That afternoon, my coding colleague and demo demigod Daniel Moth gave a 45-minute session covering the entire C++ AMP programming model that walked through all the features with more examples. Daniel’s talk is now also online [...]

Fri, 17 Jun 2011 00:21:25 UTC

C++ AMP keynote is online

Posted By Herb Sutter

Yesterday I had the privilege of talking about some of the work we’ve been doing to support massive parallelism on GPUs in the next version of Visual C++. The video of my talk announcing C++ AMP is now available on Channel 9. The first 20 minutes has nothing to do with C++ in particular or [...]

Fri, 17 Jun 2011 00:21:25 UTC

C++ AMP keynote is online

Posted By Herb Sutter

Yesterday I had the privilege of talking about some of the work we’ve been doing to support massive parallelism on GPUs in the next version of Visual C++. The video of my talk announcing C++ AMP is now available on Channel 9. (Update: Here’s an alternate link; it seems to be posted twice.) The first 20 [...]

Wed, 15 Jun 2011 00:10:31 UTC

AFDS Keynote Live Stream

Posted By Herb Sutter

Just a reminder for those interested in using C++ to harness GPUs for fast code: My keynote at AMD Fusion Developer’s Conference will be webcast live. I’ll post another link when the recorded talk is available for on-demand viewing. The talk starts at 8:30am U.S. Pacific time tomorrow (Wed June 15). Today Jem Davies of ARM [...]

Wed, 15 Jun 2011 00:10:31 UTC

AFDS Keynote Live Stream

Posted By Herb Sutter

Just a reminder for those interested in using C++ to harness GPUs for fast code: My keynote at AMD Fusion Developer’s Conference will be webcast live. I’ll post another link when the recorded talk is available for on-demand viewing. The talk starts at 8:30am U.S. Pacific time tomorrow (Wed June 15). Today Jem Davies of ARM [...]

Tue, 07 Jun 2011 16:00:26 UTC

“Ask Me Anything” interview is now live on Channel 9

Posted By Herb Sutter

The “Ask Me Anything” interview is now live. Thanks again for all your questions; we took as many of the most popular ones as we could. I hope you enjoy it. Filed under: C++, Software Development, Talks & Events

Tue, 07 Jun 2011 16:00:26 UTC

Ask Me Anything interview is now live on Channel 9

Posted By Herb Sutter

The “Ask Me Anything” interview is now live. Thanks again for all your questions; we took as many of the most popular ones as we could. I hope you enjoy it. Filed under: C++, Software Development, Talks & Events

Tue, 31 May 2011 16:00:00 UTC

Reminder: Vote on AMA questions by tomorrow night

Posted By Herb Sutter

As promised, reminder: The followup interview on Channel 9 has been scheduled, and will be shot on Thursday, June 2. You have until midnight June 1 (North American Pacific time) to post new questions, and to vote others’ questions up/down. If you haven’t been back to the call for questions page for a few days, [...]

Tue, 31 May 2011 16:00:00 UTC

Reminder: Vote on AMA questions by tomorrow night

Posted By Herb Sutter

As promised, reminder: The followup interview on Channel 9 has been scheduled, and will be shot on Thursday, June 2. You have until midnight June 1 (North American Pacific time) to post new questions, and to vote others’ questions up/down. If you haven’t been back to the call for questions page for a few days, [...]

Fri, 20 May 2011 16:59:03 UTC

My lambdas talk @NWCPP is now online

Posted By Herb Sutter

Lloyd Moore of NWCPP did record some video and post slides of my C++ lambdas talk two days ago. The video and slides (PDF) are now online.You can see Lloyd’s friendly smile in the foreground of the final frame. The room lighting and layout weren’t great for video recording, but the audio is quite clear and you can refer [...]

Fri, 20 May 2011 16:59:03 UTC

My lambdas talk @NWCPP is now online

Posted By Herb Sutter

Lloyd Moore of NWCPP did record some video and post slides of my C++ lambdas talk two days ago. The video and slides (PDF) are now online. You can see Lloyd’s friendly smile in the foreground of the final frame. The room lighting and layout weren’t great for video recording, but the audio is quite clear and you can [...]

Tue, 17 May 2011 22:03:49 UTC

Post your questions for a followup C9 interview

Posted By Herb Sutter

The last Channel 9 video interview seems to have been well-received, and some people suggested Charles should have asked about additional topics. So here’s my idea: Let’s do another C9 interview, this time with your questions — hard or soft, big or small, just not too bizarre or personal please. :) Here’s how I’ll try [...]

Tue, 17 May 2011 22:03:49 UTC

Post your questions for a followup C9 interview

Posted By Herb Sutter

The last Channel 9 video interview seems to have been well-received, and some people suggested Charles should have asked about additional topics. So here’s my idea: Let’s do another C9 interview, this time with your questions — hard or soft, big or small, just not too bizarre or personal please. :) Here’s how I’ll try [...]

Tue, 17 May 2011 17:06:29 UTC

Lambdas Talk: Tomorrow night @ NWCPP, Redmond WA USA

Posted By Herb Sutter

For those of you who are local to the greater Seattle area, tomorrow night at 6:30pm in Redmond I’ll be giving a reprise of one my talks that premiered last fall at C++ and Beyond 2010. The talk I’ll be giving is Lambdas, Lambdas Everywhere about all the wild and wonderful uses of C++0x lambda functions. It’s [...]

Tue, 17 May 2011 17:06:29 UTC

Lambdas Talk: Tomorrow night @ NWCPP, Redmond WA USA

Posted By Herb Sutter

For those of you who are local to the greater Seattle area, tomorrow night at 6:30pm in Redmond I’ll be giving a reprise of one my talks that premiered last fall at C++ and Beyond 2010. The talk I’ll be giving is Lambdas, Lambdas Everywhere about all the wild and wonderful uses of C++0x lambda functions. It’s [...]

Wed, 04 May 2011 23:33:09 UTC

Interview on Channel 9

Posted By Herb Sutter

Channel 9 just posted a new interview with me about ISO C++0x, C++’s place in the modern world, and all things C++. The topics we talked about ranged pretty widely, as you can see from the questions below. Here’s the blurb as posted on Channel 9 with links to specific questions in the interview. Enjoy. Herb [...]

Wed, 04 May 2011 23:33:09 UTC

Interview on Channel 9

Posted By Herb Sutter

Channel 9 just posted a new interview with me about ISO C++0x, C++’s place in the modern world, and all things C++. The topics we talked about ranged pretty widely, as you can see from the questions below. Here’s the blurb as posted on Channel 9 with links to specific questions in the interview. Enjoy. Herb [...]

Thu, 14 Apr 2011 18:35:00 UTC

Two More C&B Sessions: C++0x Memory Model (Scott) and Exceptional C++0x (me)

Posted By Herb Sutter

Scott Meyers, Andrei Alexandrescu and I are continuing to craft and announce the technical program for C++ and Beyond (C&B) 2011, and two more sessions are now posted. All talks are brand-new material created specifically for C&B 2011. Here are short blurbs; follow the links for longer descriptions. Scott will give a great new talk [...]

Thu, 14 Apr 2011 18:35:00 UTC

Two More C&B Sessions: C++0x Memory Model (Scott) and Exceptional C++0x (me)

Posted By Herb Sutter

Scott Meyers, Andrei Alexandrescu and I are continuing to craft and announce the technical program for C++ and Beyond (C&B) 2011, and two more sessions are now posted. All talks are brand-new material created specifically for C&B 2011. Here are short blurbs; follow the links for longer descriptions. Scott will give a great new talk [...]

Wed, 06 Apr 2011 19:52:35 UTC

Keynote at the AMD Fusion Developer Summit

Posted By Herb Sutter

In a couple of months, I’ll be giving a keynote at the AMD Fusion Developer’s Summit, which will be held on June 13-16, 2011, in Bellevue, WA, USA. Here’s my talk’s description as it appears on the conference website: AFDS Keynote: “Heterogeneous Parallelism at Microsoft” Herb Sutter, Microsoft Principal Architect, Native Languages Parallelism is not [...]

Wed, 06 Apr 2011 19:52:35 UTC

Keynote at the AMD Fusion Developer Summit

Posted By Herb Sutter

In a couple of months, I’ll be giving a keynote at the AMD Fusion Developer’s Summit, which will be held on June 13-16, 2011, in Bellevue, WA, USA. Here’s my talk’s description as it appears on the conference website: AFDS Keynote: Heterogeneous Parallelism at Microsoft Herb Sutter, Microsoft Principal Architect, Native Languages Parallelism is not [...]

Wed, 06 Apr 2011 00:32:22 UTC

C++ and Beyond 2011

Posted By Herb Sutter

I’m very much looking forward to C++ and Beyond 2011 this August, again with Scott Meyers and Andrei Alexandrescu. All of my own talks will be brand-new material never given publicly before. This year’s program will be heavily oriented toward performance (first) and C++0x (second). There are two talks announced so far: Andrei will be giving [...]

Wed, 06 Apr 2011 00:32:22 UTC

C++ and Beyond 2011

Posted By Herb Sutter

I’m very much looking forward to C++ and Beyond 2011 this August, again with Scott Meyers and Andrei Alexandrescu. All of my own talks will be brand-new material never given publicly before. This year’s program will be heavily oriented toward performance (first) and C++0x (second). There are two talks announced so far: Andrei will be giving [...]

Sat, 26 Mar 2011 03:22:41 UTC

We Have FDIS! (Trip Report: March 2011 C++ Standards Meeting)

Posted By Herb Sutter

News flash: This afternoon, the ISO C++ committee approved the final technical changes to the C++0x standard. The new International Standard for Programming Language C++ is expected to be published in summer 2011. The spring 2011 ISO C++ meeting was held on March 21-25 in Madrid, Spain. As previously reported, the goal of this meeting was [...]

Sat, 26 Mar 2011 03:22:41 UTC

We Have FDIS! (Trip Report: March 2011 C++ Standards Meeting)

Posted By Herb Sutter

News flash: This afternoon, the ISO C++ committee approved the final technical changes to the C++0x standard. The new International Standard for Programming Language C++ is expected to be published in summer 2011. The spring 2011 ISO C++ meeting was held on March 21-25 in Madrid, Spain. As previously reported, the goal of this meeting was [...]

Thu, 24 Mar 2011 22:12:53 UTC

Book on PPL is now available

Posted By Herb Sutter

For those of you who may be interested in concurrency and parallelism using Microsoft tools, there’s a new book now available on the Visual C++ 2010 Parallel Patterns Library (PPL). I hope you enjoy it. Normally I don’t write about other people’s platform-specific books, but I happened to be involved in the design of PPL, [...]

Thu, 24 Mar 2011 22:12:53 UTC

Book on PPL is now available

Posted By Herb Sutter

For those of you who may be interested in concurrency and parallelism using Microsoft tools, there’s a new book now available on the Visual C++ 2010 Parallel Patterns Library (PPL). I hope you enjoy it. Normally I don’t write about other people’s platform-specific books, but I happened to be involved in the design of PPL, [...]

Sat, 15 Jan 2011 04:08:24 UTC

Interview on Channel 9

Posted By Herb Sutter

Over the holidays, Erik Meijer interviewed me on Channel 9. We covered a wide variety of topics, mostly centered on C++ with some straying into C#/Java/Haskell/Clojure/Erlang, but ranging from auto and closures to why (not?) derive future<T> from T, and from what the two most important problems in parallelism are in 2011 to why and how [...]

Sat, 15 Jan 2011 04:08:24 UTC

Interview on Channel 9

Posted By Herb Sutter

Over the holidays, Erik Meijer interviewed me on Channel 9. We covered a wide variety of topics, mostly centered on C++ with some straying into C#/Java/Haskell/Clojure/Erlang, but ranging from auto and closures to why (not?) derive future<T> from T, and from what the two most important problems in parallelism are in 2011 to why and how [...]

Fri, 31 Dec 2010 22:35:36 UTC

2010: Cyberpunk World

Posted By Herb Sutter

Speaking as a neutral observer with exactly zero opinion on any political question, and not even a cyberpunk reader given that I’ve read about two such novels in my life: Is it just me, or do the last few months’ global news headlines read like they were ghostwritten by Neal Stephenson? I wonder if we [...]

Fri, 31 Dec 2010 22:35:36 UTC

2010: Cyberpunk World

Posted By Herb Sutter

Speaking as a neutral observer with exactly zero opinion on any political question, and not even a cyberpunk reader given that I’ve read about two such novels in my life: Is it just me, or do the last few months’ global news headlines read like they were ghostwritten by Neal Stephenson? I wonder if we [...]

Thu, 09 Dec 2010 01:54:51 UTC

Trip Report: November 2010 C++ Standards Meeting

Posted By Herb Sutter

The fall 2010 ISO C++ meeting was held on November 8-13 in Batavia, IL, USA. The post-meeting mailing is now live, including meeting minutes and other information. I attended this meeting virtually, as I was still recovering from some shoulder surgery. Fermilab’s teleconference facilities are excellent — I think it’s safe to say they’re the best [...]

Thu, 09 Dec 2010 01:54:51 UTC

Trip Report: November 2010 C++ Standards Meeting

Posted By Herb Sutter

The fall 2010 ISO C++ meeting was held on November 8-13 in Batavia, IL, USA. The post-meeting mailing is now live, including meeting minutes and other information. I attended this meeting virtually, as I was still recovering from some shoulder surgery. Fermilab’s teleconference facilities are excellent — I think it’s safe to say they’re the best [...]

Sun, 31 Oct 2010 00:03:43 UTC

PDC Languages Panel and (Shortened) Lambdas Talk

Posted By Herb Sutter

At PDC 2010 this week, I participated in a panel and gave one talk. Both are now online for live on-demand viewing. Warning: The talks currently require Silverlight, though I’m told that non-Silverlight versions may be posted later on. Here they are: 1. Languages Panel I got to participate again this year on a fun [...]

Sun, 31 Oct 2010 00:03:43 UTC

PDC Languages Panel and (Shortened) Lambdas Talk

Posted By Herb Sutter

At PDC 2010 this week, I participated in a panel and gave one talk. Both are now online for live on-demand viewing. Note: The talks should work on any browser. They do not require Silverlight. If you get a message that Silverlight is needed, it just made a mistake in auto-detecting your browser (I’m told this happens [...]

Fri, 22 Oct 2010 18:21:45 UTC

C++0x Current Hot Issues

Posted By Herb Sutter

Anthony Williams has posted an excellent summary of the two major language design questions going into next month’s ISO C++ meeting in Batavia, IL, USA. As we wind down C++0x, we are still working on an ever-decreasing set of open issues. Unsurprisingly, they’re in the newest features, as we bake them and see how they [...]

Fri, 22 Oct 2010 18:21:45 UTC

C++0x Current Hot Issues

Posted By Herb Sutter

Anthony Williams has posted an excellent summary of the two major language design questions going into next month’s ISO C++ meeting in Batavia, IL, USA. As we wind down C++0x, we are still working on an ever-decreasing set of open issues. Unsurprisingly, they’re in the newest features, as we bake them and see how they [...]

Fri, 22 Oct 2010 18:12:06 UTC

Another New Talk: Elements of Design

Posted By Herb Sutter

At C++ and Beyond next week (and in December) I’ll also be giving a brand-new half-day talk on Elements of Design. I'm passionate about design, in part because it requires specific skills and taste, but most off all because it's so important for every programmer – whether building a new library or extending one, building [...]

Fri, 22 Oct 2010 18:12:06 UTC

Another New Talk: Elements of Design

Posted By Herb Sutter

At C++ and Beyond next week (and in December) I’ll also be giving a brand-new half-day talk on Elements of Design. Im passionate about design, in part because it requires specific skills and taste, but most off all because its so important for every programmer  whether building a new library or extending one, building [...]

Fri, 08 Oct 2010 05:30:37 UTC

C++ and Beyond Session: Lambdas, Lambdas Everywhere

Posted By Herb Sutter

We’ll be posting abstracts (summaries) of the C++ and Beyond 2010 sessions over the coming days over at the C&B site. Below is the first, for my talk on “Lambdas, Lambdas Everywhere.” This is a brand new talk. I delivered a ‘sneak peek’ preview of a subset of this material in conjunction with the ISO [...]

Fri, 08 Oct 2010 05:30:37 UTC

C++ and Beyond Session: Lambdas, Lambdas Everywhere

Posted By Herb Sutter

We’ll be posting abstracts (summaries) of the C++ and Beyond 2010 sessions over the coming days over at the C&B site. Below is the first, for my talk on “Lambdas, Lambdas Everywhere.” This is a brand new talk. I delivered a ‘sneak peek’ preview of a subset of this material in conjunction with the ISO [...]

Thu, 07 Oct 2010 08:53:15 UTC

C++ and Beyond Encore: Public Registration Now Open

Posted By Herb Sutter

Public registration is now open for the overflow “Encore” showing of C++ and Beyond. The deadline for early-bird discount registration is November 14, but if you want to make sure you get a place it would probably be good to register sooner (the first showing sold out during the early-bird period). If you weren't able to [...]

Thu, 07 Oct 2010 08:53:15 UTC

C++ and Beyond Encore: Public Registration Now Open

Posted By Herb Sutter

Public registration is now open for the overflow Encore showing of C++ and Beyond. The deadline for early-bird discount registration is November 14, but if you want to make sure you get a place it would probably be good to register sooner (the first showing sold out during the early-bird period). If you werent able to [...]

Fri, 24 Sep 2010 18:50:39 UTC

Effective Concurrency: Know When to Use an Active Object Instead of a Mutex

Posted By Herb Sutter

This month’s Effective Concurrency column, “Know When to Use an Active Object Instead of a Mutex,” is now live on DDJ’s website. From the article: Let’s say that your program has a shared log file object. The log file is likely to be a popular object; lots of different threads must be able to write [...]

Fri, 24 Sep 2010 18:50:39 UTC

Effective Concurrency: Know When to Use an Active Object Instead of a Mutex

Posted By Herb Sutter

This month’s Effective Concurrency column, “Know When to Use an Active Object Instead of a Mutex,” is now live on DDJ’s website. From the article: Let’s say that your program has a shared log file object. The log file is likely to be a popular object; lots of different threads must be able to write [...]

Fri, 24 Sep 2010 16:59:54 UTC

C++ and Beyond Encore: December 13-16, 2010

Posted By Herb Sutter

If you couldn't get into October's C&B before it sold out, this is a second chance to participate.

Fri, 24 Sep 2010 16:59:54 UTC

C++ and Beyond Encore: December 13-16, 2010

Posted By Herb Sutter

If you couldn't get into October's C&B before it sold out, this is a second chance to participate.

Wed, 15 Sep 2010 17:59:44 UTC

John Gruber on IE9

Posted By Herb Sutter

Today, John Gruber wrote about Internet Explorer 9: The new UI removes most of the junk from the UI. Kind of interesting how web browsers have evolved to expose fewer UI elements. Most apps go the other way over time. Of course, that's because the page/site is the real app. And like most apps they [...]

Wed, 15 Sep 2010 17:59:44 UTC

John Gruber on IE9

Posted By Herb Sutter

Today, John Gruber wrote about Internet Explorer 9: The new UI removes most of the junk from the UI. Kind of interesting how web browsers have evolved to expose fewer UI elements. Most apps go the other way over time. Of course, thats because the page/site is the real app. And like most apps they [...]

Sat, 28 Aug 2010 15:57:46 UTC

Trip Report: August 2010 ISO C++ Standards Meeting

Posted By Herb Sutter

The summer 2010 ISO C++ meeting was held on August 2-7 in Rapperswil, Switzerland. The post-meeting mailing is now live, including meeting minutes and other information. In March (trip report), we voted the last set of feature changes into a Final Committee Draft (FCD) and, after two weeks of scurrying to apply the changes, the [...]

Sat, 28 Aug 2010 15:57:46 UTC

Trip Report: August 2010 ISO C++ Standards Meeting

Posted By Herb Sutter

The summer 2010 ISO C++ meeting was held on August 2-7 in Rapperswil, Switzerland. The post-meeting mailing is now live, including meeting minutes and other information. In March (trip report), we voted the last set of feature changes into a Final Committee Draft (FCD) and, after two weeks of scurrying to apply the changes, the [...]

Fri, 27 Aug 2010 16:47:10 UTC

Effective Concurrency: Prefer Using Futures or Callbacks to Communicate Asynchronous Results

Posted By Herb Sutter

This month’s Effective Concurrency column, “Prefer Using Futures or Callbacks to Communicate Asynchronous Results,” is now live on DDJ’s website. From the article: This time, we’ll answer the following questions: How should we express return values and out parameters from an asynchronous function, including an active object method? How should we give back multiple partial [...]

Mon, 12 Jul 2010 20:22:50 UTC

Effective Concurrency: Prefer Using Active Objects Instead of Naked Threads

Posted By Herb Sutter

This month's Effective Concurrency column, “Prefer Using Active Objects Instead of Naked Threads,” is now live on DDJ's website. From the article: ¿ Active objects dramatically improve our ability to reason about our thread’s code and operation by giving us higher-level abstractions and idioms that raise the semantic level of our program and let us [...]

Thu, 10 Jun 2010 12:48:53 UTC

Effective Concurrency Course: June and October

Posted By Herb Sutter

I forgot to blog about this until now because of focusing on the Effective Concurrency course in Stockholm a few weeks ago, but to answer those who wonder if I'll be giving it again in North America too: Yes, I'm also giving the public Effective Concurrency course again at the end of this month at [...]

Thu, 03 Jun 2010 20:56:16 UTC

Webinar Now Available On Demand

Posted By Herb Sutter

The webinar I did with James Reinders three weeks ago is now online for on-demand viewing. The link is the same as before: Five Years Since Free Lunches: Making Use of Multicore Parallelism Reflecting on the five years since "The Free Lunch is Over" article and the arrival of multicore processors, Sutter and Reinders will [...]

Fri, 28 May 2010 22:18:50 UTC

C++ and Beyond: About 2/3 Full

Posted By Herb Sutter

C++ and Beyond 2010 (October 24-27) is filling up quickly. As of this writing, nearly 40 of the 60 places have been taken since registration opened last month. If you're thinking of registering, it would probably be good to do it soon. 60 attendees is a hard limit; as I've written before, we want to [...]

Mon, 24 May 2010 20:36:57 UTC

Effective Concurrency: Associate Mutexes with Data to Prevent Races

Posted By Herb Sutter

This month's Effective Concurrency column, Associate Mutexes with Data to Prevent Races”, is now live on DDJ's website. From the article: Come together: Associate mutexes with the data they protect, and you can make your code race-free by construction Race conditions are one of the worst plagues of concurrent code: They can cause disastrous effects [...]

Sat, 08 May 2010 04:39:37 UTC

The “You Call This Journalism?” Department

Posted By Herb Sutter

The Inquirer isn't normally this silly, and it isn't even April 1. Nick Farrell writes: Why Apple might regret the Ipad [sic] THE IPAD HAS DOOMED Apple, according to market anlaysts [sic] that are expecting the tablet to spell trouble for its maker. ¿ Rather than killing off the netbook, the Ipad [sic] is harming [...]

Fri, 07 May 2010 06:32:37 UTC

May 12 Webinar on Multicore Parallelism

Posted By Herb Sutter

Next week, I'm giving a webinar with Intel's James Reinders, and we'll be available for a live Q&A session with you at the end: Five Years Since Free Lunches: Making Use of Multicore Parallelism May 12, 2010 at 8 a.m. PT/11 a.m. ET. Reflecting on the five years since "The Free Lunch is Over" article [...]

Fri, 07 May 2010 06:16:56 UTC

Links I enjoyed this week: Flash and HTML5

Posted By Herb Sutter

These are the two best links I've read in the wake of the Flash and HTML5 brouhaha(s). They discuss other informative points too, but their biggest value lies in discussing three things, to which I'll offer the answers that make the most sense to me: What is the web, really? “The web” is the cross-linked [...]

Sat, 17 Apr 2010 17:54:41 UTC

C++ and Beyond 2010: Registration Now Open

Posted By Herb Sutter

I'm happy to report that registration is now open for C++ and Beyond 2010 with me, Scott Meyers, and Andrei Alexandrescu. The event will start on the evening of Sunday October 24 with a reception, to be followed by three solid breakfast-to-bedtime days full of structured and unstructured technical content and learning opportunities in what [...]

Sat, 10 Apr 2010 23:20:32 UTC

“Readability”

Posted By Herb Sutter

If you like reading just about anything on the web, including my articles, in a pretty nicely rendered plain format with no ads or other distractions, you might want to try out arc90's Readability. All you do is drag a bookmarklet to your bookmark bar, and then on any article-like web page you can click on [...]

Wed, 07 Apr 2010 17:35:00 UTC

Links I enjoyed this week

Posted By Herb Sutter

C++ and C++0x C++0x Core Language Features in VC10 [Visual C++ 2010] (MSDN) This is the VC++ team's overview, side by side with the previous release. Includes handy links to the C++ committee paper numbers. See also Scott Meyers' C++0x feature availability tracker for gcc and VC++, which is fairly up to [...]

Fri, 02 Apr 2010 21:36:44 UTC

How anyone can comment on the FCD

Posted By Herb Sutter

Do you want to comment on the C++0x Final Committee Draft (that's the link where it just went live online and is freely publicly available), but you aren’t an official member of some ISO national body? Well, you can: UK is volunteering to channel your comment. Thanks, Anthony and the rest of the BSI panel! (Open process: [...]

Thu, 01 Apr 2010 23:00:00 UTC

Links I enjoyed, and iPad musings

Posted By Herb Sutter

Appetizers: Three cool links The Design of Design by Fred Brooks (Amazon) Yes, a new book by the Fred Brooks. Started reading it in Stanza on my iPhone today¿ A Turing Machine (aturingmachine.com) I'm in love. This is my favorite computer ever. I so want one. The [...]

Tue, 30 Mar 2010 15:23:33 UTC

Flash In the Pan

Posted By Herb Sutter

You’ve no doubt noticed the recent acceleration of the transition from Flash in favor of HTML5, thanks in large part to Apple’s refusal to support Flash on iPhone and iPad. First YouTube, and now TED, Vimeo, CBS, and Time and The New York Times are adding support for HTML5 in addition to, or instead [...]

Fri, 26 Mar 2010 18:56:44 UTC

C++0x FCD launches, will be freely available online in about a week

Posted By Herb Sutter

This morning, the C++0x FCD text was completed by our tireless project editor Pete Becker, approved by the review committee of Steve Adamczyk and Howard Hinnant, and sent to SC22 for FCD ballot. The SC22 secretariat has informed us that the FCD ballot will begin today and close on July 26. Thank you to everyone involved [...]

Tue, 23 Mar 2010 03:01:17 UTC

Links I enjoyed reading this week

Posted By Herb Sutter

Software-related PDF the Most Common Malware Vector (Schneier) It's almost non-news, because it's been obvious for years that this was coming. Malware writers target the common programs and formats. Several years ago, I talked to senior developers from a major software company on multiple occasions about memory safety and secure coding, [...]

Fri, 19 Mar 2010 10:00:00 UTC

Warren Buffet Rocks

Posted By Herb Sutter

Really. Direct link. Filed under: Friday Thoughts

Fri, 19 Mar 2010 10:00:00 UTC

Warren Buffet Rocks

Posted By Herb Sutter

Really. Direct link. Filed under: Friday Thoughts

Fri, 19 Mar 2010 10:00:00 UTC

Warren Buffett Rocks

Posted By Herb Sutter

Really. Direct link. Filed under: Friday Thoughts

Wed, 17 Mar 2010 00:52:15 UTC

Comment policy

Posted By Herb Sutter

On this blog, I've always been happy to follow a policy of not editor or censoring comments, and let comments stand whether the commenter agrees with me or not. However, recently a few comments have strayed into name-calling (e.g., I'd never heard the term “freetard” until last week), and I've decided to remove comments that [...]

Wed, 17 Mar 2010 00:52:15 UTC

Comment policy

Posted By Herb Sutter

[Updated 3/17 for clarity.] On this blog, I've always been happy to follow a policy of not editing or filtering comments, and to let comments stand whether the commenter agrees with me or not. However, recently a few comments have strayed into name-calling (e.g., I'd never heard the term “freetard” until last week), and I've decided [...]

Sat, 13 Mar 2010 19:40:25 UTC

Trip Report: March 2010 ISO C++ Standards Meeting

Posted By Herb Sutter

[Note: I usually post trip reports after the public post-meeting mailing goes live a few weeks after the meeting, so that I can provide links to minutes and papers. This time, I wanted to post the report right away to share the news. If you're interested in the post-meeting papers, including the official minutes, watch [...]

Sat, 13 Mar 2010 19:40:25 UTC

Trip Report: March 2010 ISO C++ Standards Meeting

Posted By Herb Sutter

[Note: I usually post trip reports after the public post-meeting mailing goes live a few weeks after the meeting, so that I can provide links to minutes and papers. This time, I wanted to post the report right away to share the news. If you're interested in the post-meeting papers, including the official minutes, watch [...]

Sat, 13 Mar 2010 15:50:34 UTC

Links I enjoyed reading this week

Posted By Herb Sutter

Concurrency-related (more or less directly) Samples updated for ConcRT, PPL and Agents (Microsoft Parallel Programming blog) Update to the samples for the Visual Studio 2010 Release Candidate. Hmm, I suppose I should include a link to that too: Visual Studio 2010 and .NET Framework 4 Release Candidate (Microsoft) [...]

Sat, 13 Mar 2010 15:50:34 UTC

Links I enjoyed reading this week

Posted By Herb Sutter

Concurrency-related (more or less directly) Samples updated for ConcRT, PPL and Agents (Microsoft Parallel Programming blog) Update to the samples for the Visual Studio 2010 Release Candidate. Hmm, I suppose I should include a link to that too: Visual Studio 2010 and .NET Framework 4 Release Candidate (Microsoft) [...]

Wed, 03 Mar 2010 09:22:00 UTC

Where can you get the ISO C++ standard, and what does “open standard” mean?

Posted By Herb Sutter

In my role as convener of the ISO C++ committee, I get to field a number of questions about the committee and its process. It occurred to me that some of them might be of more general interest, so I'll occasionally publish an edited version of my reply here in case other people have similar [...]

Wed, 03 Mar 2010 09:22:00 UTC

Where can you get the ISO C++ standard, and what does “open standard” mean?

Posted By Herb Sutter

In my role as convener of the ISO C++ committee, I get to field a number of questions about the committee and its process. It occurred to me that some of them might be of more general interest, so I'll occasionally publish an edited version of my reply here in case other people have similar [...]

Tue, 02 Mar 2010 03:04:35 UTC

Effective Concurrency Europe 2010

Posted By Herb Sutter

Last May, I gave a public Effective Concurrency course in Stockholm. It was well-attended, and a number of people have asked if it will be offered again. The answer is yes. I'm happy to report that Effective Concurrency Europe 2010 will be held on May 5-7, 2010, in Stockholm, Sweden. There's an early-bird rate available for [...]

Tue, 02 Mar 2010 03:04:35 UTC

Effective Concurrency Europe 2010

Posted By Herb Sutter

Last May, I gave a public Effective Concurrency course in Stockholm. It was well-attended, and a number of people have asked if it will be offered again. The answer is yes. I'm happy to report that Effective Concurrency Europe 2010 will be held on May 5-7, 2010, in Stockholm, Sweden. There's an early-bird rate available for [...]

Mon, 22 Feb 2010 21:47:01 UTC

Machine Architecture slides back online

Posted By Herb Sutter

A number of people reported that the PDF slides for my Machine Architecture talk were offline. It turns out that the NWCPP servers were recently moved and the link temporarily broken, but it's now been restored. Links: Google video PDF slides (back again) Filed under: Concurrency, Hardware, Software Development

Mon, 22 Feb 2010 21:47:01 UTC

Machine Architecture slides back online

Posted By Herb Sutter

A number of people reported that the PDF slides for my Machine Architecture talk were offline. It turns out that the NWCPP servers were recently moved and the link temporarily broken, but it's now been restored. Links: Google video PDF slides (back again) Filed under: Concurrency, Hardware, Software Development

Mon, 15 Feb 2010 15:44:26 UTC

Igor Ostrovsky and the Seven Cache Effects

Posted By Herb Sutter

My colleague Igor Ostrovsky has written a useful summary of seven cache memory effects that every advanced developer should know about because of their performance impact, particularly as we strive to keep invisible bottlenecks out of parallel code. I've covered variations of Igor's examples #1, #2, #3, and #6 in my Machine Architecture talk and several [...]

Mon, 15 Feb 2010 15:44:26 UTC

Igor Ostrovsky and the Seven Cache Effects

Posted By Herb Sutter

My colleague Igor Ostrovsky has written a useful summary of seven cache memory effects that every advanced developer should know about because of their performance impact, particularly as we strive to keep invisible bottlenecks out of parallel code. I've covered variations of Igor's examples #1, #2, #3, and #6 in my Machine Architecture talk and several [...]

Mon, 18 Jan 2010 02:25:00 UTC

Effective Concurrency: Prefer Futures to Baked-In “Async APIs”

Posted By Herb Sutter

This month's Effective Concurrency column, Prefer Futures to Baked-In “Async APIs”, is now live on DDJ's website. From the article: When designing concurrent APIs, separate "what" from "how" Let’s say you have an existing synchronous API function [called DoSomething]¿ Because DoSomething could take a long time to execute (whether it keeps a CPU core busy or not), and [...]

Mon, 18 Jan 2010 02:25:00 UTC

Effective Concurrency: Prefer Futures to Baked-In “Async APIs”

Posted By Herb Sutter

This month's Effective Concurrency column, Prefer Futures to Baked-In “Async APIs”, is now live on DDJ's website. From the article: When designing concurrent APIs, separate "what" from "how" Let’s say you have an existing synchronous API function [called DoSomething]¿ Because DoSomething could take a long time to execute (whether it keeps a CPU core busy or not), and [...]

Mon, 11 Jan 2010 11:14:00 UTC

C++ and Beyond: Summer 2010, Vote the Date

Posted By Herb Sutter

I always enjoy teaching together with Scott Meyers and Andrei Alexandrescu, not only because it means I get to work with good friends, but also because I get to listen to them speak. Scott and Andrei always have interesting and useful things to say and say them well. We occasionally speak at the same big [...]

Mon, 11 Jan 2010 11:14:00 UTC

C++ and Beyond: Summer 2010, Vote the Date

Posted By Herb Sutter

I always enjoy teaching together with Scott Meyers and Andrei Alexandrescu, not only because it means I get to work with good friends, but also because I get to listen to them speak. Scott and Andrei always have interesting and useful things to say and say them well. We occasionally speak at the same big [...]

Mon, 04 Jan 2010 14:14:30 UTC

Stroustrup on Teaching Software Developers

Posted By Herb Sutter

Recommended reading (it's short), from the January 2010 issue of CACM: What Should We Teach New Software Developers? Why? by Bjarne Stroustrup It's a wonderfully accurate and concise summary of the disconnect between the ivory tower and the trenches ¿ i.e., (some) computer science academics and (some) software development industry managers, with commentary on [...]

Mon, 04 Jan 2010 14:14:30 UTC

Stroustrup on Teaching Software Developers

Posted By Herb Sutter

Recommended reading (it's short), from the January 2010 issue of CACM: What Should We Teach New Software Developers? Why? by Bjarne Stroustrup It's a wonderfully accurate and concise summary of the disconnect between the ivory tower and the trenches ¿ i.e., (some) computer science academics and (some) software development industry managers, with commentary on [...]

Fri, 11 Dec 2009 21:55:37 UTC

Guest Blog: Words Matter

Posted By Herb Sutter

This morning my colleague Rob Hanz wrote an interesting email that went viral in my corner of Microsoft. He graciously allowed me to share it with you here. I hope you enjoy it too. Blink and subconscious messaging Robert Hanz I was reading Blink last night, and one of the things [...]

Fri, 11 Dec 2009 21:55:37 UTC

Guest Blog: Words Matter

Posted By Herb Sutter

This morning my colleague Rob Hanz wrote an interesting email that went viral in my corner of Microsoft. He graciously allowed me to share it with you here. I hope you enjoy it too. Blink and subconscious messaging Robert Hanz I was reading Blink last night, and one of the things [...]

Thu, 12 Nov 2009 03:45:11 UTC

Trip Report: October 2008 ISO C++ Standards Meeting

Posted By Herb Sutter

The ISO C++ committee met in Santa Cruz, CA, USA on October 19-24. You can find the minutes here, which include the votes at the whole-group sessions but not the details of the breakout technical sessions where we spend most of the week. The good news is that there's little new technical news. We did a [...]

Thu, 12 Nov 2009 03:45:11 UTC

Trip Report: October 2009 ISO C++ Standards Meeting

Posted By Herb Sutter

The ISO C++ committee met in Santa Cruz, CA, USA on October 19-24. You can find the minutes here, which include the votes at the whole-group sessions but not the details of the breakout technical sessions where we spend most of the week. The good news is that there's little new technical news. We did a [...]

Thu, 12 Nov 2009 03:45:11 UTC

Trip Report: October 2009 ISO C++ Standards Meeting

Posted By Herb Sutter

The ISO C++ committee met in Santa Cruz, CA, USA on October 19-24. You can find the minutes here, which include the votes at the whole-group sessions but not the details of the breakout technical sessions where we spend most of the week. The good news is that there's little new technical news. We did a [...]

Wed, 11 Nov 2009 18:33:15 UTC

Effective Concurrency: Prefer structured lifetimes ¿ local, nested, bounded, deterministic.

Posted By Herb Sutter

This month's Effective Concurrency column, Prefer structured lifetimes ¿ local, nested, bounded, deterministic, is now live on DDJ's website. From the article: Where possible, prefer structured lifetimes: ones that are local, nested, bounded, and deterministic. This is true no matter what kind of lifetime we're considering, including object lifetimes, thread or task lifetimes, [...]

Wed, 11 Nov 2009 18:33:15 UTC

Effective Concurrency: Prefer structured lifetimes ¿ local, nested, bounded, deterministic.

Posted By Herb Sutter

This month's Effective Concurrency column, Prefer structured lifetimes ¿ local, nested, bounded, deterministic, is now live on DDJ's website. From the article: Where possible, prefer structured lifetimes: ones that are local, nested, bounded, and deterministic. This is true no matter what kind of lifetime we're considering, including object lifetimes, thread or task lifetimes, [...]

Wed, 04 Nov 2009 15:08:07 UTC

Other Concurrency Sessions at PDC09

Posted By Herb Sutter

I mentioned yesterday that I'll be involved in two sessions at PDC09, including a parallel patterns tutorial. I know many of you are interested in concurrency in general and on Microsoft platforms in particular, so I thought I'd share this more complete list of concurrency-related sessions at PDC, put together by my colleague Stephen Toub. Overview: The [...]

Wed, 04 Nov 2009 15:08:07 UTC

Other Concurrency Sessions at PDC'09

Posted By Herb Sutter

  I mentioned yesterday that I'll be involved in two sessions at PDC09, including a parallel patterns tutorial. I know many of you are interested in concurrency in general and on Microsoft platforms in particular, so I thought I'd share this more complete list of concurrency-related sessions at PDC, put together by my colleague Stephen Toub. Overview: The [...]

Wed, 04 Nov 2009 01:13:21 UTC

PDC'09: Tutorial & Panel

Posted By Herb Sutter

For those of you coming to PDC'09 in Los Angeles a couple of weeks from now, I'll be there for a few hours on Monday and Wednesday participating in two events: Patterns of Parallel Programming: A Tutorial on Fundamental Patterns and Practices for Parallelism. The full-day tutorial is full of useful information. I'll be giving the [...]

Wed, 04 Nov 2009 01:13:21 UTC

PDC'09: Tutorial & Panel

Posted By Herb Sutter

For those of you coming to PDC'09 in Los Angeles a couple of weeks from now, I'll be there for a few hours on Monday and Wednesday participating in two events: Patterns of Parallel Programming: A Tutorial on Fundamental Patterns and Practices for Parallelism. The full-day tutorial is full of useful information. I'll be giving the [...]

Mon, 26 Oct 2009 20:42:13 UTC

Hoare on Testing

Posted By Herb Sutter

On the flight to the ISO C standards meeting this morning, I was reading this month's issue of CACM, and found that Sir C.A.R. (Tony) Hoare wrote a nice piece called Retrospective: An Axiomatic Basis for Computer Programming. Hoare has long been a noted proponent of axioms and formal proofs of program correctness. In that light, [...]

Mon, 26 Oct 2009 20:42:13 UTC

Hoare on Testing

Posted By Herb Sutter

On the flight to the ISO C standards meeting this morning, I was reading this month's issue of CACM, and found that Sir C.A.R. (Tony) Hoare wrote a nice piece called Retrospective: An Axiomatic Basis for Computer Programming. Hoare has long been a noted proponent of axioms and formal proofs of program correctness. In that light, [...]

Fri, 23 Oct 2009 21:32:09 UTC

Deprecating export considered for ISO C++0x

Posted By Herb Sutter

How interesting. I'm at the ISO C++ meeting in Santa Cruz, CA, USA this week. Ten minutes ago we had a committee straw poll about whether we should remove, deprecate, or leave as-is the export template feature for C++0x. The general sentiment was to remove or deprecate it, with deprecation getting the strongest support because it's [...]

Fri, 23 Oct 2009 21:32:09 UTC

Deprecating export considered for ISO C++0x

Posted By Herb Sutter

How interesting. I'm at the ISO C++ meeting in Santa Cruz, CA, USA this week. Ten minutes ago we had a committee straw poll about whether we should remove, deprecate, or leave as-is the export template feature for C++0x. The general sentiment was to remove or deprecate it, with deprecation getting the strongest support because it's [...]

Wed, 21 Oct 2009 12:33:00 UTC

A Concurrency Poll

Posted By Herb Sutter

I've opened up a short concurrency poll to get a sense of what concurrency issues are top-of-mind for programmers, and I'd appreciate it if you could take a few minutes to participate. Some questions are about what you want to learn more about, others about your tools of choice in specific areas, and a few [...]

Wed, 21 Oct 2009 12:33:00 UTC

A Concurrency Poll

Posted By Herb Sutter

I've opened up a short concurrency poll to get a sense of what concurrency issues are top-of-mind for programmers, and I'd appreciate it if you could take a few minutes to participate. Some questions are about what you want to learn more about, others about your tools of choice in specific areas, and a few [...]

Mon, 19 Oct 2009 00:37:10 UTC

Mailbag: Shutting up compiler warnings

Posted By Herb Sutter

I recently received the following reader question (slightly edited): About the (Stroustrup) approach of implementing IsDerivedFrom at page 27 in your book More Exceptional C++: [¿] why the second pointer assignment in: static void Constraints(D* p) {    B* pb=p; // okay, D better inherit from [...]

Mon, 19 Oct 2009 00:37:10 UTC

Mailbag: Shutting up compiler warnings

Posted By Herb Sutter

I recently received the following reader question (slightly edited): About the (Stroustrup) approach of implementing IsDerivedFrom at page 27 in your book More Exceptional C++: [¿] why the second pointer assignment in: static void Constraints(D* p) { B* pb=p; // okay, D better inherit from B… pb=p; // huh? why this again? } Isn’t the initialization ” B* pb=p ” enough? [...]

Wed, 14 Oct 2009 20:25:33 UTC

whois terry.crowley

Posted By Herb Sutter

Astute readers may have noticed that Terry Crowley's name frequently crops up in the Acknowledgments section of my Effective Concurrency columns. Who is Terry? To answer, Mary-Jo Foley profiles him this week. Posted in Concurrency, Opinion & Editorial

Wed, 14 Oct 2009 20:25:33 UTC

whois terry.crowley

Posted By Herb Sutter

Astute readers may have noticed that Terry Crowley's name frequently crops up in the Acknowledgments section of my Effective Concurrency columns. Who is Terry? To answer, Mary-Jo Foley profiles him this week. Posted in Concurrency, Opinion & Editorial

Mon, 12 Oct 2009 23:59:53 UTC

Effective Concurrency: Avoid Exposing Concurrency ¿ Hide It Inside Synchronous Methods

Posted By Herb Sutter

This month's Effective Concurrency column, Avoid Exposing Concurrency ¿ Hide It Inside Synchronous Methods, is now live on DDJ's website. From the article: You have a mass of existing code and want to add concurrency. Where do you start? Let’s say you need to migrate existing code to take advantage of concurrent execution or scale on parallel hardware. [...]

Mon, 12 Oct 2009 23:59:53 UTC

Effective Concurrency: Avoid Exposing Concurrency ¿ Hide It Inside Synchronous Methods

Posted By Herb Sutter

This month's Effective Concurrency column, Avoid Exposing Concurrency ¿ Hide It Inside Synchronous Methods, is now live on DDJ's website. From the article: You have a mass of existing code and want to add concurrency. Where do you start? Let's say you need to migrate existing code to take advantage of concurrent execution or scale on parallel hardware. [...]

Mon, 28 Sep 2009 22:34:16 UTC

“What's the Best Way To Process a Pool of Work?”

Posted By Herb Sutter

“What's the best way to process a pool of work?” is a recurring question. As usual, the answer is “it depends” because the optimal answer often depends on both the characteristics of the work itself and the constraints imposed by run-time system resources. For example, I recently received the following email from reader Sören Meyer-Eppler, where [...]

Mon, 28 Sep 2009 22:34:16 UTC

“What's the Best Way To Process a Pool of Work?”

Posted By Herb Sutter

“What's the best way to process a pool of work?” is a recurring question. As usual, the answer is “it depends” because the optimal answer often depends on both the characteristics of the work itself and the constraints imposed by run-time system resources. For example, I recently received the following email from reader Sören Meyer-Eppler, where [...]

Wed, 02 Sep 2009 12:41:25 UTC

When is a zero-length array okay?

Posted By Herb Sutter

I just received a reader email that asked about GotW #42: You write "Non-Problem: Zero-Length Arrays Are Okay", but both 14882:2003 and N2914 "[dcl.array]" say "If the constant-expression (5.19) is present, it shall be an integral constant expression and its value shall be greater than zero.". Shall we assume that you overrule the standard? :-) Or [...]

Wed, 02 Sep 2009 12:41:25 UTC

When is a zero-length array okay?

Posted By Herb Sutter

I just received a reader email that asked about GotW #42: You write "Non-Problem: Zero-Length Arrays Are Okay", but both 14882:2003 and N2914 "[dcl.array]" say "If the constant-expression (5.19) is present, it shall be an integral constant expression and its value shall be greater than zero.". Shall we assume that you overrule the standard? :-) Or [...]

Tue, 11 Aug 2009 17:50:19 UTC

Effective Concurrency: Design for Manycore Systems

Posted By Herb Sutter

This month's Effective Concurrency column, Design for Manycore Systems, is now live on DDJ's website. From the article: Why worry about “manycore” today? Dual- and quad-core computers are obviously here to stay for mainstream desktops and notebooks. But do we really need to think about "many-core" systems if we’re building a typical mainstream application right now? I find [...]

Tue, 11 Aug 2009 17:50:19 UTC

Effective Concurrency: Design for Manycore Systems

Posted By Herb Sutter

This month's Effective Concurrency column, Design for Manycore Systems, is now live on DDJ's website. From the article: Why worry about “manycore” today? Dual- and quad-core computers are obviously here to stay for mainstream desktops and notebooks. But do we really need to think about "many-core" systems if we’re building a typical mainstream application right now? I find [...]

Mon, 10 Aug 2009 20:30:18 UTC

Suggestions on improving C++ skills

Posted By Herb Sutter

Someone just asked me about getting more proficient in C++, and with their permission I thought I'd share the question and my answer in case it's of broader interest to folks wanting to improve their C++ skills. Here's the question: I need to take my C++ knowledge up a notch – or two. On a scale of [...]

Mon, 10 Aug 2009 20:30:18 UTC

Suggestions on improving C++ skills

Posted By Herb Sutter

Someone just asked me about getting more proficient in C++, and with their permission I thought I'd share the question and my answer in case it's of broader interest to folks wanting to improve their C++ skills. Here's the question: I need to take my C++ knowledge up a notch – or two. On a scale of [...]

Tue, 21 Jul 2009 21:43:49 UTC

Trip Report: Exit Concepts, Final ISO C++ Draft in ~18 Months

Posted By Herb Sutter

A week ago, I attended the summer ISO C++ meeting in Frankfurt, Germany. The C++ committee made a lot of progress on addressing national body comments on the full committee draft published last year, and is well on the way to publishing a second and final CD this winter with a final draft international standard [...]

Tue, 21 Jul 2009 21:43:49 UTC

Trip Report: Exit Concepts, Final ISO C++ Draft in ~18 Months

Posted By Herb Sutter

A week ago, I attended the summer ISO C++ meeting in Frankfurt, Germany. The C++ committee made a lot of progress on addressing national body comments on the full committee draft published last year, and is well on the way to publishing a second and final CD this winter with a final draft international standard [...]

Wed, 15 Jul 2009 23:08:59 UTC

Effective Concurrency: The Power of “In Progress”

Posted By Herb Sutter

This month's Effective Concurrency column, The Power of “In Progress”, is now live on DDJ's website. From the article: Don’t let a long-running operation take hostages. When some work that takes a long time to complete holds exclusive access to one or more popular shared resources, such as a thread or a mutex that controls access to [...]

Wed, 15 Jul 2009 23:08:59 UTC

Effective Concurrency: The Power of “In Progress”

Posted By Herb Sutter

This month's Effective Concurrency column, The Power of “In Progress”, is now live on DDJ's website. From the article: Don’t let a long-running operation take hostages. When some work that takes a long time to complete holds exclusive access to one or more popular shared resources, such as a thread or a mutex that controls access to [...]

Wed, 24 Jun 2009 00:27:47 UTC

Answering email about error handling in concurrent code

Posted By Herb Sutter

Someone emailed me today asking: I’m writing because I’m somewhat conscious of what I would consider a rather large hole in the parallel programming literature. ¿ What if one or more of your tasks throws an exception? Should the thread that runs the task swallow it? Should the caught exceptions get stashed somewhere so that the "parent" [...]

Wed, 24 Jun 2009 00:27:47 UTC

Answering email about error handling in concurrent code

Posted By Herb Sutter

Someone emailed me today asking: I’m writing because I’m somewhat conscious of what I would consider a rather large hole in the parallel programming literature. ¿ What if one or more of your tasks throws an exception? Should the thread that runs the task swallow it? Should the caught exceptions get stashed somewhere so that the "parent" [...]

Tue, 16 Jun 2009 18:09:16 UTC

Effective Concurrency: Break Up and Interleave Work to Keep Threads Responsive

Posted By Herb Sutter

This month's Effective Concurrency column, “Break Up and Interleave Work to Keep Threads Responsive”, is now live on DDJ's website. Sorry for the long title; suggestions welcome. I always try to word the title to make it (a) short, (b) active, and (c) advice, but sometimes I'll settle for two of those, or just one, until [...]

Tue, 16 Jun 2009 18:09:16 UTC

Effective Concurrency: Break Up and Interleave Work to Keep Threads Responsive

Posted By Herb Sutter

This month's Effective Concurrency column, “Break Up and Interleave Work to Keep Threads Responsive”, is now live on DDJ's website. Sorry for the long title; suggestions welcome. I always try to word the title to make it (a) short, (b) active, and (c) advice, but sometimes I'll settle for two of those, or just one, until [...]

Fri, 12 Jun 2009 23:59:48 UTC

Truth In Spam

Posted By Herb Sutter

This afternoon I was just finishing up my next Effective Concurrency article (it'll be up in a few days), when some spam email arrived. Just as my fingers' auto-delete macro was about to fire, I noticed something odd about the name of the attachment and did a double-take: Cool! There must be some kind of [...]

Fri, 12 Jun 2009 23:59:48 UTC

Truth In Spam

Posted By Herb Sutter

This afternoon I was just finishing up my next Effective Concurrency article (it'll be up in a few days), when some spam email arrived. Just as my fingers' auto-delete macro was about to fire, I noticed something odd about the name of the attachment and did a double-take: Cool! There must be some kind of [...]

Fri, 22 May 2009 08:53:00 UTC

Dress Re-Hearsal?

Posted By Herb Sutter

An amusing hearse, seen on a neighborhood street: Here's a close-up of the license plate:     Made my morning. Posted in Friday Thoughts

Fri, 22 May 2009 08:53:00 UTC

Dress Re-Hearsal?

Posted By Herb Sutter

An amusing hearse, seen on a neighborhood street: Here's a close-up of the license plate:     Made my morning. Posted in Friday Thoughts

Thu, 21 May 2009 00:43:20 UTC

VS2010 Beta 1 Now Available

Posted By Herb Sutter

For those of you who are interested in using or trying Microsoft development tools, I'm happy to report that Visual Studio 2010 Beta 1 is now available. If you're interested in: concurrency and parallel computing, check out the new concurrency runtime (ConcRT) that implements efficient work stealing for scalable code, the Asynchronous Agents Library and the Parallel [...]

Thu, 21 May 2009 00:43:20 UTC

VS2010 Beta 1 Now Available

Posted By Herb Sutter

For those of you who are interested in using or trying Microsoft development tools, I'm happy to report that Visual Studio 2010 Beta 1 is now available. If you're interested in: concurrency and parallel computing, check out the new concurrency runtime (ConcRT) that implements efficient work stealing for scalable code, the Asynchronous Agents Library and the Parallel [...]

Fri, 15 May 2009 18:51:38 UTC

Effective Concurrency: Eliminate False Sharing

Posted By Herb Sutter

This month's Effective Concurrency column, “Eliminate False Sharing”, is now live on DDJ's website. People keep writing asking me about my previous mentions of false sharing, even debating whether it's really a problem. So this month I decided to treat it in depth, including: A compelling and realistic example where just changing a couple of lines to [...]

Fri, 15 May 2009 18:51:38 UTC

Effective Concurrency: Eliminate False Sharing

Posted By Herb Sutter

This month's Effective Concurrency column, “Eliminate False Sharing”, is now live on DDJ's website. People keep writing asking me about my previous mentions of false sharing, even debating whether it's really a problem. So this month I decided to treat it in depth, including: A compelling and realistic example where just changing a couple of lines to [...]

Fri, 01 May 2009 08:39:00 UTC

You Know When Your UI Needs Help When¿

Posted By Herb Sutter

Seen at a gas station: You know your UI has usability issues when people tape multiple signs on your gas pump to help people get through the intricate and error-prone process of purchasing fuel. Why does the upper note exist? The trouble is that there's a Debit button but not a Credit button, and so since [...]

Fri, 01 May 2009 08:39:00 UTC

You Know When Your UI Needs Help When¿

Posted By Herb Sutter

Seen at a gas station: You know your UI has usability issues when people tape multiple signs on your gas pump to help people get through the intricate and error-prone process of purchasing fuel. Why does the upper note exist? The trouble is that there's a Debit button but not a Credit button, and so since [...]

Tue, 21 Apr 2009 00:39:00 UTC

Effective Concurrency: Use Thread Pools Correctly ¿ Keep Tasks Short and Nonblocking

Posted By Herb Sutter

This month's Effective Concurrency column, “Use Thread Pools Correctly: Keep Tasks Short and Nonblocking”, is now live on DDJ's website. From the article: ¿ But the thread pool is a leaky abstraction. That is, the pool hides a lot of details from us, but to use it effectively we do need to be aware of some things [...]

Tue, 21 Apr 2009 00:39:00 UTC

Effective Concurrency: Use Thread Pools Correctly ¿ Keep Tasks Short and Nonblocking

Posted By Herb Sutter

This month's Effective Concurrency column, “Use Thread Pools Correctly: Keep Tasks Short and Nonblocking”, is now live on DDJ's website. From the article: ¿ But the thread pool is a leaky abstraction. That is, the pool hides a lot of details from us, but to use it effectively we do need to be aware of some things [...]

Fri, 17 Apr 2009 16:31:26 UTC

A Wryly Repurposed Quotation

Posted By Herb Sutter

In my travels, I recently came across this empty store with an almost-empty box beside the front door. As seen in Monterey, CA: Evidently some character had also noticed the empty store with its empty box, and decided to do a little walk-by wry economic commentary via repurposed quotation. Zooming on the once-empty box:   Posted in Friday [...]

Fri, 17 Apr 2009 16:31:26 UTC

A Wryly Repurposed Quotation

Posted By Herb Sutter

In my travels, I recently came across this empty store with an almost-empty box beside the front door. As seen in Monterey, CA: Evidently some character had also noticed the empty store with its empty box, and decided to do a little walk-by wry economic commentary via repurposed quotation. Zooming on the once-empty box:   Posted in Friday [...]

Mon, 30 Mar 2009 20:34:36 UTC

New Dates for Effective Concurrency Seminar in Europe: May 27-29, Stockholm, Sweden

Posted By Herb Sutter

Now that I'm over the icky flu that forced me to postpone the seminar two weeks ago, I'm happy to say that we have new dates: Effective Concurrency (Europe) will be held on May 27-29, 2009, in Stockholm, Sweden. I’ll cover the following topics: Fundamentals: Define basic concurrency goals and requirements ¿ Understand applications' scalability needs [...]

Mon, 30 Mar 2009 20:34:36 UTC

New Dates for Effective Concurrency Seminar in Europe: May 27-29, Stockholm, Sweden

Posted By Herb Sutter

Now that I'm over the icky flu that forced me to postpone the seminar two weeks ago, I'm happy to say that we have new dates: Effective Concurrency (Europe) will be held on May 27-29, 2009, in Stockholm, Sweden. I’ll cover the following topics: Fundamentals: Define basic concurrency goals and requirements ¿ Understand applications' scalability needs [...]

Tue, 24 Mar 2009 21:55:29 UTC

RIP: SD Conferences

Posted By Herb Sutter

The latest casualties in the technical education world are the Software Development conferences ¿ SD West, SD Best Practices, and Architecture & Design World ¿ which are being discontinued effective immediately, making the SD West that was just held earlier this month was the last of its kind. The conferences were run by the same [...]

Tue, 24 Mar 2009 21:55:29 UTC

RIP: SD Conferences

Posted By Herb Sutter

The latest casualties in the technical education world are the Software Development conferences ¿ SD West, SD Best Practices, and Architecture & Design World ¿ which are being discontinued effective immediately, making the SD West that was just held earlier this month the last of its kind. The conferences were run by the same company [...]

Tue, 17 Mar 2009 03:06:46 UTC

Effective Concurrency: Use Threads Correctly = Isolation + Asynchronous Messages

Posted By Herb Sutter

This month's Effective Concurrency column, “Use Threads Correctly = Isolation + Asynchronous Messages”, is now live on DDJ's website. From the article: Explicit threads are undisciplined. They need some structure to keep them in line. In this column, we’re going to see what that structure is, as we motivate and illustrate best practices for using threads — [...]

Tue, 17 Mar 2009 03:06:46 UTC

Effective Concurrency: Use Threads Correctly = Isolation + Asynchronous Messages

Posted By Herb Sutter

This month's Effective Concurrency column, “Use Threads Correctly = Isolation + Asynchronous Messages”, is now live on DDJ's website. From the article: Explicit threads are undisciplined. They need some structure to keep them in line. In this column, we’re going to see what that structure is, as we motivate and illustrate best practices for using threads — [...]

Sun, 15 Mar 2009 02:20:30 UTC

Postponed: Effective Concurrency Europe

Posted By Herb Sutter

Right now I should be at 40,000 feet somewhere over Baffin Island on my way to Stockholm for Effective Concurrency Europe, but instead I'm in bed with a fever that I've had since Wednesday night and still unable to talk. The organizer and I have been staying in touch with flu updates every few hours [...]

Sun, 15 Mar 2009 02:20:30 UTC

Postponed: Effective Concurrency Europe

Posted By Herb Sutter

Right now I should be at 40,000 feet somewhere over Baffin Island on my way to Stockholm for Effective Concurrency Europe, but instead I'm in bed with a fever that I've had since Wednesday night and still unable to talk. The organizer and I have been staying in touch with flu updates every few hours [...]

Thu, 26 Feb 2009 21:37:59 UTC

Free Training For Laid-Off Developers

Posted By Herb Sutter

Like many areas in the United States, Seattle has recently been hit with layoffs and downsizing in our industry. So it's quite timely that Steve McConnell's company Construx, in the Seattle area, is offering free training for laid-off software workers: After listening to doom and gloom economic reports for the past few months, we decided we [...]

Thu, 26 Feb 2009 21:37:59 UTC

Free Training For Laid-Off Developers

Posted By Herb Sutter

Like many areas in the United States, Seattle has recently been hit with layoffs and downsizing in our industry. So it's quite timely that Steve McConnell's company Construx, in the Seattle area, is offering free training for laid-off software workers: After listening to doom and gloom economic reports for the past few months, we decided we [...]

Fri, 13 Feb 2009 16:46:00 UTC

Effective Concurrency: Sharing Is the Root of All Contention

Posted By Herb Sutter

This month's Effective Concurrency column, “Sharing Is the Root of All Contention”, is now live on DDJ's website. This article aims to address the root cause behind some frequently made assertions: Statements like “locks kill scalability” and “CAS kills scalability” are mostly true but focus on symptoms rather than causes; and others such as “reader/writer mutexes [...]

Fri, 13 Feb 2009 16:46:00 UTC

Effective Concurrency: Sharing Is the Root of All Contention

Posted By Herb Sutter

This month's Effective Concurrency column, “Sharing Is the Root of All Contention”, is now live on DDJ's website. This article aims to address the root cause behind some frequently made assertions: Statements like “locks kill scalability” and “CAS kills scalability” are mostly true but focus on symptoms rather than causes; and others such as “reader/writer mutexes [...]

Fri, 06 Feb 2009 09:17:00 UTC

Income in Perspective: 2 Bppl @ $3/day

Posted By Herb Sutter

I just saw a CNN headline that read: “Young workers scrimp to live on $15/wk.” Before reading further, what do you think: Is that stunning and shocking? Or shockingly typical? The story turned out to be a piece about white-collar workers in China trying to live frugally, spending only 100 Yuan on travel and food during [...]

Fri, 06 Feb 2009 09:17:00 UTC

Income in Perspective: 2 Bppl @ $3/day

Posted By Herb Sutter

I just saw a CNN headline that read: “Young workers scrimp to live on $15/wk.” Before reading further, what do you think: Is that stunning and shocking? Or shockingly typical? The story turned out to be a piece about white-collar workers in China trying to live frugally, spending only 100 Yuan on travel and food during [...]

Thu, 29 Jan 2009 20:13:00 UTC

Effective Concurrency Seminar in Europe: March 16-18, Stockholm, Sweden

Posted By Herb Sutter

A number of people have asked whether I will be teaching my Effective Concurrency seminar in Europe. The answer is yes: Effective Concurrency (Europe) will be held on March 16-18, 2009, in Stockholm, Sweden. This is my only public European seminar in 2009. I’ll cover the following topics: Fundamentals: Define basic concurrency goals and requirements ¿ Understand [...]

Thu, 29 Jan 2009 20:13:00 UTC

Effective Concurrency Seminar in Europe: March 16-18, Stockholm, Sweden

Posted By Herb Sutter

A number of people have asked whether I will be teaching my Effective Concurrency seminar in Europe. The answer is yes: Effective Concurrency (Europe) will be held on March 16-18, 2009, in Stockholm, Sweden. This is my only public European seminar in 2009. I’ll cover the following topics: Fundamentals: Define basic concurrency goals and requirements ¿ Understand [...]

Fri, 16 Jan 2009 18:57:06 UTC

From the "we know what they meant, but it's not what they said" department

Posted By Herb Sutter

While walking our dogs recently, we came across several of these signs — ironically, in front of our neighborhood school. Posted in Friday Thoughts

Fri, 16 Jan 2009 18:57:06 UTC

From the "we know what they meant, but it's not what they said" department

Posted By Herb Sutter

While walking our dogs recently, we came across several of these signs — ironically, in front of our neighborhood school. Posted in Friday Thoughts      

Mon, 12 Jan 2009 09:12:15 UTC

Effective Concurrency: volatile vs. volatile

Posted By Herb Sutter

This month’s Effective Concurrency column, “volatile vs. volatile”, is now live on DDJ’s website and also appears in the print magazine. (As a historical note, it’s DDJ’s final print issue, as I mentioned previously.) This article aims to answer the frequently asked question: “What does volatile mean?” The short answer: “It depends, do you mean Java/.NET [...]

Mon, 12 Jan 2009 09:12:15 UTC

Effective Concurrency: volatile vs. volatile

Posted By Herb Sutter

This month’s Effective Concurrency column, “volatile vs. volatile”, is now live on DDJ’s website and also appears in the print magazine. (As a historical note, it’s DDJ’s final print issue, as I mentioned previously.) This article aims to answer the frequently asked question: “What does volatile mean?” The short answer: “It depends, do you mean Java/.NET [...]

Thu, 08 Jan 2009 09:59:59 UTC

Answer to "16 Technologies": Engelbart and the Mother of All Demos

Posted By Herb Sutter

A few days ago I posted a challenge to name the researcher/team and approximate year each of the following 16 important technologies was first demonstrated. In brief, they were: The personal computer for dedicated individual use all day long. The mouse. Internetworks. Network service discovery. Live collaboration and desktop/app sharing. Hierarchical structure within a file system and within a document. Cut/copy/paste, with [...]

Thu, 08 Jan 2009 09:59:59 UTC

Answer to "16 Technologies": Engelbart and the Mother of All Demos

Posted By Herb Sutter

A few days ago I posted a challenge to name the researcher/team and approximate year each of the following 16 important technologies was first demonstrated. In brief, they were: The personal computer for dedicated individual use all day long. The mouse. Internetworks. Network service discovery. Live collaboration and desktop/app sharing. Hierarchical structure within a file system and within a document. Cut/copy/paste, with [...]

Mon, 05 Jan 2009 09:48:15 UTC

16 Important Technologies: Who demonstrated each one first?

Posted By Herb Sutter

We enjoy such an abundance of computing riches that it’s easy to take wonderful technological ideas for granted. Yet so many of the pieces of our modern computing experience that we consider routine today were at one time unimaginable. After all, back in the early days of computing, we were still discovering what these newfangled [...]

Mon, 05 Jan 2009 09:48:15 UTC

16 Important Technologies: Who demonstrated each one first?

Posted By Herb Sutter

We enjoy such an abundance of computing riches that it’s easy to take wonderful technological ideas for granted. Yet so many of the pieces of our modern computing experience that we consider routine today were at one time unimaginable. After all, back in the early days of computing, we were still discovering what these newfangled [...]

Thu, 01 Jan 2009 00:42:51 UTC

The 2008 Media Inflection: Meet Dr. Web, the New Gorilla

Posted By Herb Sutter

[edited 2009.01.15 to add link to DDJ's announcement] 2008 was quite a year, full of landmark events that were certainly historic, if not always welcome. If I had to pick one technology-related highlight from the past year, it would be this: A notable inflection point in the ongoing shift from traditional media to the web. Given that [...]

Thu, 01 Jan 2009 00:42:51 UTC

The 2008 Media Inflection: Meet Dr. Web, the New Gorilla

Posted By Herb Sutter

(NOTE: This article mentions significant news about Dr. Dobb’s Journal that actually is not quite officially announced yet. When it is, I’ll update this with a link to the announcement, which will include details of what it means for subscribers. In the meantime, DDJ editor Jon Erickson kindly agreed to let me blog about it [...]

Fri, 19 Dec 2008 22:49:47 UTC

TRS-80 vs. Alpha, and Parallel Optimization

Posted By Herb Sutter

Lest people get the wrong idea, I enjoy reading Jeff Atwood’s blog and agree with much of what he writes so entertainingly and provocatively. So far I’ve only responded when I strongly felt differently about something, which has been a grand total of twice now. So let me also offer an example of something I wholeheartedly [...]

Thu, 18 Dec 2008 01:23:32 UTC

Rich-GUI SaaS/Web 2.0 Apps Should Not Be Considered Harmful

Posted By Herb Sutter

Yesterday, the ever-popular Jeff Atwood (of Coding Horror fame) wrote a nice piece on how not to write Web 2.0 UIs. Unfortunately, it’s exactly backwards: What he identifies as problem is in fact not only desirable, but necessary. [Aside: Jeff, I know you love pictures, but is that particular one really necessary? Yes, I know it's [...]

Wed, 03 Dec 2008 00:00:13 UTC

Effective Concurrency: Measuring Parallel Performance – Optimizing a Concurrent Queue

Posted By Herb Sutter

This month’s Effective Concurrency column is special — it turned into a feature article. “Measuring Parallel Performance: Optimizing a Concurrent Queue” just went live on DDJ’s site, and will also appear in the print magazine. From the article: How would you write a fast, internally synchronized queue, one that callers can use without any explicit external locking [...]

Sun, 02 Nov 2008 18:25:16 UTC

(out of order) Effective Concurrency: Writing Lock-Free Code – A Corrected Queue

Posted By Herb Sutter

Oops, I just noticed that I forgot to blog about one recent Effective Concurrency column: “Writing Lock-Free Code: A Corrected Queue” which also appeared in the October 2008 print issue of Dr. Dobb’s Journal. From the article: As we saw last month [1], lock-free coding is hard even for experts. There, I dissected a published lock-free queue [...]

Sun, 02 Nov 2008 18:15:29 UTC

Effective Concurrency: Understanding Parallel Performance

Posted By Herb Sutter

Wow, DDJ just posted the previous one a few days ago, and already the next Effective Concurrency column is available: “Understanding Parallel Performance” just went live, and will also appear in the print magazine. From the article: Let’s say that we’ve slickly written our code to apply divide-and-conquer algorithms and concurrent data structures and parallel traversals and [...]

Thu, 30 Oct 2008 14:18:03 UTC

Effective Concurrency: Writing a Generalized Concurrent Queue

Posted By Herb Sutter

The next Effective Concurrency column, “Writing a Generalized Concurrent Queue”, just went live on DDJ's site, and also appears in the print magazine. From the article: Last month [1], I showed code for a lock-free queue that supported the limited case of exactly two threads–one producer, and one consumer. That’s useful, but maybe not as exciting now [...]

Wed, 29 Oct 2008 01:21:37 UTC

September 2008 ISO C++ Standards Meeting: The Draft Has Landed, and a New Convener

Posted By Herb Sutter

The ISO C++ committee met in San Francisco, CA, on September 15-20. You can find the minutes here, including the votes to approve papers. The most important thing the committee accomplished was this: Complete C++0x draft published for international ballot The biggest goal entering this meeting was to make C++0x feature-complete and stay on track to publish a [...]

Thu, 02 Oct 2008 03:44:10 UTC

Stroustrup & Sutter on C++ 2008, Second Showing: October 30-31, 2008, in Boston, MA, USA

Posted By Herb Sutter

This spring at SD West in Santa Clara, Bjarne and I did a fresh-and-updated S&S event with lots of new material. We don’t usually repeat the same material, but this time there’s been such demand that we agreed to do a repeat… four weeks from today, in Boston. More information and talk descriptions follow. CONTENT ADVISORY Again, [...]

Tue, 30 Sep 2008 18:25:34 UTC

Data and Perspective

Posted By Herb Sutter

Even genuinely newsworthy topics can get distorted when commentators exaggerate or use data selectively. Here are two recent examples I noticed. “This is the worst financial crisis since the Great Depression.” It’s true that it’s bad and even historic, and this sound bite correctly doesn’t actually claim it’s as bad as the Depression. I hope it [...]

Fri, 26 Sep 2008 02:49:06 UTC

Ralph Johnson on Parallel Programming Patterns

Posted By Herb Sutter

A few days ago at UIUC, Ralph Johnson gave a very nice talk on “Parallel Programming Patterns.” It’s now online, and here’s the abstract: Parallel programming is hard. One proposed solution is to provide a standard set of patterns. Learning the patterns would help people to become expert parallel programmers. The patterns would provide a vocabulary [...]

Tue, 02 Sep 2008 04:34:42 UTC

Effective Concurrency Course: Sep 22-24, 2008

Posted By Herb Sutter

The first offering of the three-day Effective Concurrency course in May went very well. We’re doing it again later this month — this will be the last offering this year. Here’s the brief information (more details below): 3-Day Seminar: Effective Concurrency September 22-4, 2008Bellevue, WA, USADeveloped and taught by Herb Sutter This course covers the fundamental tools that software [...]

Fri, 08 Aug 2008 14:03:01 UTC

Anon on Data

Posted By Herb Sutter

The adage, quoted again this week by Bruce Schneier: The plural of “anecdote” is not “data.” But lest we enshrine raw data as holy in itself, another perspective: And the plural of “datum” is not “proof.”

Wed, 06 Aug 2008 19:05:47 UTC

Embedded Multicore Development Webinar with Lee, Reinders, and Truchard

Posted By Herb Sutter

Last month, I was privileged to be part of a panel in a webinar on Embedded Multicore Development moderated by Richard Nass, Editor-in-Chief of Embedded Systems Design, Embedded.com, and the Embedded Systems Conferences. It’s online and available on demand. I say “privileged” especially because of the stature of the other panelists. These distinguished gentlemen were: Edward A. [...]

Wed, 06 Aug 2008 00:31:41 UTC

Effective Concurrency: Lock-Free Code – A False Sense of Security

Posted By Herb Sutter

DDJ posted the next Effective Concurrency column a couple of weeks earlier than usual. You can find it here: “Lock-Free Code: A False Sense of Security”, just went live on DDJ’s site, and also appears in the print magazine.   This is a special column in a way, because I rarely critique someone else’s published code. However, [...]

Fri, 01 Aug 2008 21:59:16 UTC

Server Concurrency != Client Concurrency

Posted By Herb Sutter

Today I received an email that asked: I have recently come across your excellent articles on concurrency and the changes in software writing paradigm. They make a lot of sense, but I am having trouble translating them to my world of Telecom oriented web services, where practically everything is run through a DBMS. It seems to [...]

Thu, 31 Jul 2008 16:37:51 UTC

Effective Concurrency: The Many Faces of Deadlock

Posted By Herb Sutter

The latest Effective Concurrency column, “The Many Faces of Deadlock”, just went live on DDJ’s site, and also appears in the print magazine. From the article: … That’s the classic deadlock example from college. Of course, two isn’t a magic number. An improved definition of deadlock is: “When N threads enter a locking cycle where each [...]

Fri, 25 Jul 2008 19:43:04 UTC

Constructor Exceptions in C++, C#, and Java

Posted By Herb Sutter

I just received the following question, whose answer is the same in C++, C#, and Java. Question: In the following code, why isn’t the destructor/disposer ever called to clean up the Widget when the constructor emits an exception? You can entertain this question in your mainstream language of choice: // C++ (an edited version of the original [...]

Mon, 21 Jul 2008 15:25:43 UTC

Research Firms Are Good At Research, Not Technology Predictions

Posted By Herb Sutter

This story has been picked up semi-widely since last night. I’m sure this Steven Prentice they quote is a fine (Gartner) Fellow, but really: The computer mouse is set to die out in the next five years and will be usurped by touch screens and facial recognition, analysts believe. Seriously, does anyone who uses computers daily really [...]

Thu, 17 Jul 2008 01:16:45 UTC

Kindling

Posted By Herb Sutter

Two weeks ago, I broke down and bought a Kindle. I like it: It’s a good and well-designed reader, and the experience is much better than the other e-book reading I’ve done before on phones and PDAs. I like how you when you bookmark a page, you can see it… the corner of the page gets [...]

Tue, 15 Jul 2008 19:50:26 UTC

Hungarian Notation Is Clearly (Good|Bad)

Posted By Herb Sutter

A commenter asked: thread_local X tlsX; ?? Herb, I hope you aren't backtracking on Hungarian Notation now that you work for Microsoft. Say it aint so¿ It ain’t so. Besides, Microsoft’s Framework Developer’s Guide prominently intones: “Do not use Hungarian notation.” Warts like “tls” and “i” are about lifetime and usage, not type. Here “tls” denotes that each thread [...]

Fri, 04 Jul 2008 16:28:18 UTC

Trip Report: June 2008 ISO C++ Standards Meeting

Posted By Herb Sutter

The ISO C++ committee met in Sophia Antipolis, France on June 6-14. You can find the minutes here (note that these cover only the whole-group sessions, not the breakout technical sessions where we spend most of the week). Here's a summary of what we did, with links to the relevant papers to read for more details, [...]

Sat, 28 Jun 2008 03:02:14 UTC

Effective Concurrency: Choose Concurrency-Friendly Data Structures

Posted By Herb Sutter

The latest Effective Concurrency column, “Choose Concurrency-Friendly Data Structures”, just went live on DDJ’s site, and also appears in the print magazine. From the article: What is a high-performance data structure? To answer that question, we’re used to applying normal considerations like Big-Oh complexity, and memory overhead, locality, and traversal order. All of those apply to [...]

Fri, 27 Jun 2008 10:54:47 UTC

Seneca and Shakespeare on Goals and Opportunities

Posted By Herb Sutter

From the ancient dramatist Seneca the Younger: “Our plans miscarry because they have no aim. When a man does not know what harbor he is making for, no wind is the right wind.” And from the Bard, not to be outdone in metaphors of ships and seas: “There is a tide in the affairs of men,Which, taken at [...]

Fri, 20 Jun 2008 23:37:46 UTC

Talking Lambdas with Bill Gates on BBC

Posted By Herb Sutter

[6/25: Added YouTube availability and notes.] A few weeks ago, the BBC was in town to tape a special interview/documentary on Bill Gates. As part of the footage they got, there’s a Bill-in-a-technical-review-meeting shot that includes yours truly at a whiteboard presenting an overview-plus-drilldown on C++0x lambda functions. It was a good review; Bill’s a sharp [...]

Fri, 20 Jun 2008 20:02:53 UTC

Type Inference vs. Static/Dynamic Typing

Posted By Herb Sutter

Jeff Atwood just wrote a nice piece on why type inference is convenient, using a C# sample: I was absolutely thrilled to be able to refactor this code: StringBuilder sb = new StringBuilder(256); UTF8Encoding e = new UTF8Encoding(); MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); Into this: var sb = new StringBuilder(256); var e = new UTF8Encoding(); var md5 = new MD5CryptoServiceProvider(); It’s not dynamic typing, [...]

Wed, 11 Jun 2008 06:56:17 UTC

Stroustrup & Sutter on C++: The Interviews

Posted By Herb Sutter

While Bjarne and I were at SD for S&S, we took time out to do an interview together with Ted Neward for InformIT. I just got word that it went live… here are the links. On the OnSoftware ¿ Video (RSS): OnSoftware - Bjarne Stroustrup & Herb Sutter on the Future of C++ - Part 1 OnSoftware - [...]

Wed, 11 Jun 2008 06:27:16 UTC

Memory Model talk at Gamefest 2008

Posted By Herb Sutter

I’ll be giving a memory model talk at Gamefest in Seattle next month. Here’s a quick summary: Memory Models: Foundational Knowledge for Concurrent CodeJuly 22-23, 2008Gamefest 2008Seattle, WA, USA A memory model defines a contract between the programmer and the execution environment, that trades off: programmability via stronger guarantees for programmers, vs. performance via greater flexibility for reordering program [...]

Fri, 23 May 2008 21:53:54 UTC

Effective Concurrency: Maximize Locality, Minimize Contention

Posted By Herb Sutter

The latest Effective Concurrency column, “Maximize Locality, Minimize Contention”, just went live on DDJ’s site, and also appears in the print magazine. From the article: Want to kill your parallel application’s scalability? Easy: Just add a dash of contention. Locality is no longer just about fitting well into cache and RAM, but also about avoiding scalability busters [...]

Fri, 09 May 2008 02:43:21 UTC

Part 2 of concurrency interview with DevX

Posted By Herb Sutter

Part 2 of DevX’s interview with me about concurrency just went live on the web. From the article’s blurb: What does the future hold for concurrency? What will happen to the tools and techniques around concurrent programming? In part two of our series, concurrency guru Herb Sutter talks about these issues and what developers need to [...]

Wed, 23 Apr 2008 17:09:00 UTC

Where to find the state of ISO C++ evolution

Posted By Herb Sutter

After each ISO C++ meeting, I post a trip report update to my blog summarizing what’s new as of that meeting with a drill-down into some highlights. But wouldn’t it be handy to have an up-to-date summary scorecard with a snapshot of all proposals’ status to date? Indeed it would, and so today someone asked [...]

Fri, 18 Apr 2008 18:10:52 UTC

Quad-core a "waste of electricity"?

Posted By Herb Sutter

Jeff Atwood wrote: In my opinion, quad-core CPUs are still a waste of electricity unless you're putting them in a server. Four cores on the desktop is great for bragging rights and mathematical superiority (yep, 4 > 2), but those four cores provide almost no benchmarkable improvement in the type of applications most people use. Including [...]

Fri, 11 Apr 2008 15:15:26 UTC

Usability: Watch out for those non-errors that start with “ER”

Posted By Herb Sutter

Today I had a nice lesson in transaction codes. I did a happy little online transaction, and then the confirmation screen came up with what at first glance looked like an error. It startled me, until I read more closely: Thank you. Your transaction has been placed and received by SuperMondoCorp. Transaction Confirmation Number: ER6661234567 “Yikes!” thought I to myself, [...]

Thu, 10 Apr 2008 11:53:38 UTC

Effective Concurrency: Interrupt Politely

Posted By Herb Sutter

The latest Effective Concurrency column, “Interrupt Politely”, just went live on DDJ’s site, and will also appear in the print magazine. From the article: Violence isn’t the answer. We want to be able to stop a running thread or task when we discover that we no longer need or want to finish it. As we saw [...]

Tue, 08 Apr 2008 00:29:50 UTC

Cringe not: Vectors are guaranteed to be contiguous

Posted By Herb Sutter

Andy Koenig is the expert’s expert, and I rarely disagree with him. And, well, when I do disagree I’m invariably wrong… but there’s a first time for everything, so I’ll take my chances one more time. I completely agree with the overall sentiment of Andy’s blog entry today: I spend a fair amount of time reading (and [...]

Mon, 07 Apr 2008 23:58:49 UTC

Visual C++ 2008 Feature Pack now available

Posted By Herb Sutter

Back in November, I reported that we’d be shipping Visual C++ 2008 that month (we did!) and that we’d soon thereafter be doing the “agile thing” and shipping a major update mere months later, instead of waiting two years between releases per our prior tradition. I wrote: The update is expected to be available in beta [...]

Thu, 01 Jan 1970 00:00:00 UTC

Trip Report: February/March 2008 ISO C++ Standards Meeting

Posted By Herb Sutter

[Updated Apr 3 to note automatic deduction of return type.] The ISO C++ committee met in Bellevue, WA, USA on February 24 to March 1, 2008. Here's a quick summary of what we did (with links to the relevant papers to read for more details), and information about upcoming meetings. Lambda functions and closures (N2550) For me, easily [...]

Thu, 01 Jan 1970 00:00:00 UTC

Concurrency Interview with DevX

Posted By Herb Sutter

I recently spent an hour on the phone to talk concurrency with DevX’s Alexa Weber Morales. Part 1 of that interview just went live on the web, and focuses mostly on what concurrency and parallelism are, how to take advantage of multicore chips, and whether concurrency will ever be really accessible to mainstream developers. The [...]

Thu, 01 Jan 1970 00:00:00 UTC

New Course Available: Effective Concurrency

Posted By Herb Sutter

Many of you have kindly sent mail about my Effective Concurrency columns and asking when there’ll be a course. Well, I’m happy to announce that the answer is: May 19-21, 2008. Here’s the brief information (more details below): 3-Day Seminar: Effective Concurrency May 19-21, 2008 Bellevue, WA, USA Developed and taught by Herb Sutter This course covers the fundamental tools that [...]

Thu, 01 Jan 1970 00:00:00 UTC

Effective Concurrency: Super Linearity and the Bigger Machine

Posted By Herb Sutter

The latest Effective Concurrency column, "Super Linearity and the Bigger Machine", just went live on DDJ’s site, and will also appear in the print magazine. From the article: There are two main ways to achieve superlinear scalability, or to use P processors to compute an answer more than P times faster…: Do disproportionately less work. [...]

Thu, 01 Jan 1970 00:00:00 UTC

Stroustrup & Sutter: The Lyrics

Posted By Herb Sutter

Last week’s Stroustrup & Sutter on C++ was a huge amount of fun, and Bjarne and I want to thank everyone who came. It was a record-shattering year, and it’s great to see C++ clearly thriving and growing. A lot of people requested the (modified) lyrics to the songs we performed (yes, if you missed the [...]

Thu, 01 Jan 1970 00:00:00 UTC

How parallelism demos are useful

Posted By Herb Sutter

In "Break Amdahl’s Law!", I described ways to enable scalable applications, and wrote in part: But don’t show me ray-traced bouncing balls or Mandelbrot graphics or the other usual embarrassingly parallel but niche (or downright useless) clichés–what we’re looking for are real ideas of real software we could imagine real kids and grandmothers using that could [...]

Thu, 01 Jan 1970 00:00:00 UTC

Effective Concurrency: Going Superlinear

Posted By Herb Sutter

The latest Effective Concurrency column, "Going Superlinear", just went live on DDJ’s site, and will also appear in the print magazine. From the article: We spend most of our scalability lives inside a triangular box, shown in Figure 1. It reminds me of the early days of flight: We try to lift ourselves away from the [...]

Thu, 01 Jan 1970 00:00:00 UTC

What Not To Code

Posted By Herb Sutter

At Stroustrup & Sutter on C++ this March, one of my sessions will be on "What Not To Code" (submission link). The premise is to try something new I haven’t done before: A session dedicated to making over code nominated by you, the public, in the few weeks before the talk. In return for your [...]

Thu, 01 Jan 1970 00:00:00 UTC

Many Books

Posted By Herb Sutter

When I walk into a Chapters or a Borders, seeing the many shelves of books often recalls the ancient writer’s words about quality vs. quantity, circa 1000 BC: "To the making of many books there is no end." So true. Yet that observation predates the printing press… and netnews… and now RSS. (Yes, I’ve been thinking of [...]

Thu, 01 Jan 1970 00:00:00 UTC

Stroustrup & Sutter on C++: March 3-4, 2008, in Santa Clara, CA, USA

Posted By Herb Sutter

I’m pleased to announce that Bjarne and I are going to have another two-day event co-located with SD West in San Jose, California, this March. Most of the talks are new ones we’ve never given publicly before, along with updated classics that people liked the best in the past. This year, three of my [...]

Thu, 01 Jan 1970 00:00:00 UTC

Newton on Tact

Posted By Herb Sutter

"Tact is the knack of making a point without making an enemy."

Thu, 01 Jan 1970 00:00:00 UTC

Effective Concurrency: Break Amdahl's Law!

Posted By Herb Sutter

The latest Effective Concurrency column, "Break Amdahl’s Law!", just went live on DDJ’s site, and will also appear in the print magazine. From the article: Back in 1967, Gene Amdahl famously pointed out what seemed like a fundamental limit to how fast you can make your concurrent code: Some amount of a program’s processing is fully [...]

Thu, 01 Jan 1970 00:00:00 UTC

GotW #88: A Candidate For the “Most Important const”

Posted By Herb Sutter

A friend recently asked me whether Example 1 below is legal, and if so what it means. It led to a nice discussion I thought I’d post here. Since it was in close to GotW style already, I thought I’d do another honorary one after all these years… no, I have not made a New [...]

Thu, 01 Jan 1970 00:00:00 UTC

Effective Concurrency: Use Lock Hierarchies to Avoid Deadlock

Posted By Herb Sutter

The latest Effective Concurrency column, "Use Lock Hierarchies to Avoid Deadlock", just went live on DDJ’s site, and will also appear in the print magazine. From the article: … The only way to eliminate such a potential deadlock is to make sure that all mutexes ever held at the same time are acquired in a consistent order. [...]

Thu, 01 Jan 1970 00:00:00 UTC

Let's Be Thoughtful Out There

Posted By Herb Sutter

I knew Hanlon’s Razor: "Never attribute to malice that which can be adequately explained by stupidity." And the variants attributed to Heinlein, described on the same page as adding "… but don’t rule out malice." or "… but keep your eyes open." But I only just now came across Grey’s Law, which follows the flavor of Clarke’s [...]

Thu, 01 Jan 1970 00:00:00 UTC

TR1 in (Free) VC++ Express

Posted By Herb Sutter

A few weeks ago I blogged about the VC++ update we plan to ship in the first half of next year, which includes extensive additions to MFC as well as TR1. TR1 is the first set of library extensions published by the C++ committee, nearly all of which have also been adopted into the next [...]

Thu, 01 Jan 1970 00:00:00 UTC

Parallel Computing Releases at Microsoft

Posted By Herb Sutter

For those of you who may be interested in concurrency for Microsoft platforms, and .NET in particular, I’m happy to report some fresh announcements: MSDN has launched a Parallel Computing developer center. This is a section of the MSDN site focused on "providing information, ideas, community, and technology to developers to make it easier to write programs that perform and [...]

Thu, 01 Jan 1970 00:00:00 UTC

The Concurrency Land Rush: 2007-20??

Posted By Herb Sutter

Every time that we experience a "wave" in which the industry takes a programming paradigm that’s been growing in a niche, and brings it to the mainstream, we go through similar phases: A land rush phase during which vendors try to stake out their turf. The market sees an explosive proliferation of products trying to enable [...]