 |

Blog Stats
Posts - 50
Stories - 0
Comments - 146
Trackbacks - 40
|
.NET Bloggers
Chris Brumme(rss)
Don Box(rss)
Joel Pobar(rss)
VC++ Bloggers
Andy Rich(rss)
Brandon Bray(rss)
Stan Lippman(rss)
Archives
Dec, 2006 (1)
Aug, 2006 (2)
Jul, 2006 (1)
Jun, 2006 (1)
May, 2006 (1)
Mar, 2006 (2)
Feb, 2006 (2)
Jan, 2006 (1)
Dec, 2005 (1)
Oct, 2005 (2)
Sep, 2005 (2)
Aug, 2005 (1)
Jul, 2005 (1)
Jun, 2005 (2)
Apr, 2005 (2)
Mar, 2005 (2)
Feb, 2005 (3)
Jan, 2005 (3)
Dec, 2004 (2)
Nov, 2004 (4)
Oct, 2004 (14)
|
|

Friday, December 29, 2006
It's time for me to take the plunge: Microsoft seems to have a reasonable blog hosting facility now at Live Spaces, so I'm going to take the plunge and move over to my new Live Spaces blog (http://herbsutter.spaces.live.com). You'll find two posts there already, one an Op/Ed piece about the free laptop controversy, and another announcing Stroustrup & Sutter #3 this March.
Moving is always a tough decision. I've really enjoyed being hosted here at Pluralsight, and I want to thank the Pluralsight folks very much for providing a space for my blog over the past few years. It's been a blast, and they're a great bunch!
See you at Spaces, and best wishes to you and yours.
Herb
Wednesday, August 30, 2006
Two quick updates today: The talk I'm giving in the Seattle area has been moved by one week to September 13 (not 20 as previously posted).
- The Concur Project: Some Experimental Concurrency Abstractions for Imperative Languages
September 13, 2006 Northwest C++ Users Group, Redmond, Washington, USA
Intel has graciously invited me to speak on concurrency amid a gaggle of luminaries in their fall seminar series. The talk coordinates are:
I look forward to seeing some of you at these events. If you're in town, feel free to drop by!
Best wishes,
Herb
Monday, August 07, 2006
I see DDJ has now posted my guest editorial "It's (Not) All Been Done" that I blogged about last month.
Because they have hard one-page limits on the length of the editorial in the print mag, about 25% got omitted to make it fit. So I've posted the complete unabridged text on my site as well. Some of you might find it interesting to see how versions of a piece can get refitted in the production process.
[humor]I suppose some people of (sniff) questionable taste and habits might even decide that the editors were right to remove the extra flab.[/humor] Seriously, it's possible I should have cut the extra anyway; authors tend to be lousy editors because we too easily fall in love with our own words. But I think it works, so I thought I'd make the slightly longer version available so you can judge for yourself.
Enjoy,
Herb
Wednesday, July 12, 2006
A quick update: My home page is now updated with a list of upcoming articles and talks. In particular:
-
Keynote: Software and the Concurrency Revolution
August 14, 2006
MPSoC '06: 6th International Forum on
Application-Specific Multi-Processor SoC
[System on a Chip],
Estes Park, Colorado, USA
-
The Concur Project: Some Experimental Concurrency Abstractions for Imperative
Languages
September 20, 2006
Northwest
C++ Users Group, Bellevue, Washington, USA
-
Guest Editorial: It's (Not) All Been Done,
Dr. Dobb's Journal, 31(9), September 2006.
This is a wonderful time to be a software
engineer because it's a new world again: For the first time in
the history of computing, mainstream computers are not von
Neumann machines and never will be again—they are parallel. We
have largely succeeded with the quest to put a computer in every
home and purse; now we're effectively going to put a Cray into
every den and pocket. That makes this is a time of enormous
opportunity, as usual along with a great deal of work, as our
industry now undertakes to do for parallel programming what we
have already done for generic types, objects, and garbage
collection.
 |
Monday, June 26, 2006
As I write this I'm sitting in Vail, Colorado, at the IEEE Computer Elements Workshop. It's a room full of top-notch processor designers -- if you've heard of a piece of hardware, from AS/400 to Xenon, likely one of its designers is here in the room.
Later today I'll give a talk on the effect on software of all this parallel hardware coming at us over the next few years, as one of the (or just "the"?) lone software person in the room. Like the talk I gave at InStat (another hardware/processor conference) last fall, it's nice to see the hardware conferences inviting people from software to talk about the effects these hardware trends are having on how we have to write our code. After all, these guys are making some way-cool new chips, all right, and those chips will be even cooler if they're actually programmable!
Later this summer (August), I'll also be giving a talk like this at another parallel hardware conference (also in Colorado, as it happens), this one dedicated to "Multiprocessor System-on-a-Chip," aka MPSoC '06. See http://www.gotw.ca/ for the links. Enjoy!
Herb
 |
Wednesday, May 03, 2006
The ISO C++ committee met in Berlin from April 2-7, 2006. I thought I'd write a quick note about highlights of what was decided for C++0x:
How to get meeting minutes
First, how to find out for yourself: The minutes of each meeting are usually available online about 2-3 weeks after the meeting. The easiest way to find WG21 minutes for a given meeting/year is to Google for "wg21 <year> minutes," in this case "wg21 2006 minutes." One of the first results is:
BTW, in general, the easiest way to find any WG21 doc is to Google for "wg21 <doc number>". That's what I always do, because it's quicker than navigating my own hard drive even though I know where the doc is.
What got voted into the C++0x working draft
At this meeting, five major pieces of work got approved into the draft. That means these features can (and likely will) still get tweaked and changed until the standard is actually finalized and published, but the upshot of being voted into the working paper is that these features are "for real" -- they've been discussed and debated, consensus has been achieved on their specification, actual wording written up in standardese, and a full committee vote passed to stick the standardese into the working paper.
Nearly all of the Library Technical Report (aka TR1)
The only part that wasn't voted in was the special mathematical functions, which are of interest principally only to heavy-duty scientists and mathematicians. The actual TR is in the process of publication, but you can find a nearly-final version on the ISO C++ committee website here: N1836, Draft Technical Report on C++ Library Extensions.
Auto type deduction
This permits you to write declarations like
auto x = 3.1415926535; auto i = container.begin();
Delegating constructors
This proposal was written by me and Francis Glassborow. It's a combined WG21 / C++/CLI proposal, though it was cut from the first edition of C++/CLI; if C++/CLI does add this it will follow this that WG21 has adopted (plus any future tweaks). The paper is: N1986, Delegating Constructors (revision 3).
Right angle brackets
This fixes a tiny but perniciously annoying and embarrassing quirk of C++, and the fix adopted by C++ is the same that C++/CLI specified. Right angle brackets have been fixed so that constructions Like<This<Nested<Template >>>> will work sensibly, without having to write the closing right angle brackets with extra whitespace Like<You<Must<Today > > > > which is annoying, embarrassing, and suspected of contributing to dental decay among 18- to 24-year-olds in northeastern Mississippi. To find out more, see the paper: N1757, Right Angle Brackets (Revision 2).
Extern template
Enjoy! And there's more to come when we meet next, in October 2006 (Portland, OR, USA).
Herb
 |
Sunday, March 19, 2006
A number of people have asked that I post the slides, so I've put them online too ( pdf slides).
Enjoy!
Herb
Thursday, March 16, 2006
If you weren't in the area or able to drop by, you can take it in online. I hope you enjoy the talk.
Note to those who've seen concurrency talks from me before: There is interesting and useful new stuff here. In particular, check out the midway point of the talk, which contains material I've never given publicly before about how to categorize and think about forms of concurrency (thanks to David Callahan for lending me these three slides). For those who haven't seen a Concur talk from me yet in 2006, the part about parallel STL algorithms near the end will also be new since it reflects thinking I did over the winter.
Enjoy,
Herb
Monday, February 27, 2006
FYI, I've posted a "1.1" minor update of my C++/CLI design rationale paper. It's at the same location. The main change from the "1.0" version I posted two weeks ago is that the preface and section 1 have been merged and made clearer (realizing that some people won't read past that part). The rest includes minor enhancements such as filling in a few missing details for some of the points discussed. Enjoy,
Herb
Saturday, February 18, 2006
I thought I should finally get around to writing a design rationale for C++/CLI, to pull together in one place some accurate information about the whats, whys, and hows of these extensions. You can find it at:
I've pasted the Preface below. The paper also includes a FAQ covering some common points of interest about C++/CLI. I expect it to be a living document; this is version 1.0.
Enjoy,
Herb
Preface
A multiplicity of libraries, run-time environments, and development environments are essential to support the range of C++ applications. This view guided the design of C++ as early as 1987; in fact, it is older yet. Its roots are in the view of C++ as a general-purpose language
— B. Stroustrup (D&E, p. 168)
C++/CLI was created to promote C++ use on a major platform, ISO CLI (the standardized subset of .NET). This paper attempts to capture a small but representative sample of the experience gained by a succession of C++ experts who have tried to define a binding between C++ and CLI. A central goal is to explain why pure library extensions are technically insufficient in the cases where they were not used, by considering design alternatives for representative examples that cover most CLI feature areas:
CLI types (e.g., ref class, value class): Why new type categories are needed, and considerations for choosing the right defaults for CLI types.
CLI type features (e.g., property): Why new abstractions are needed for some CLI features.
CLI heap (e.g., ^, gcnew): Why not to reuse the existing * pointer declarator and new.
CLI generics (generic): Why the new genericity feature is distinct from templates, but compatible and highly integrated with templates.
CLI non-features (e.g., template, const): Why and how these are made to work on CLI types.
For each case, the paper describes:
The CLI feature and basic requirements, including representative metadata that must be generated.
The lower-impact Managed Extensions design, and where it was insufficient.
The C++/CLI design and rationale.
Other major design choices that were considered, both in earlier iterations of C++/CLI and in other separate design efforts that didn’t work out and were never publicly available.
Finally, note that most of the C++/CLI extensions are needed only when using C++/CLI to author new CLI types and libraries. In practice, many programmers using a C++/CLI-enabled compiler (currently Visual C++ 2005) are simply taking advantage of the ability to seamlessly use existing CLI types with their C++ code, which typically requires no extended syntax at all beyond a sprinkling of gcnew and ^.
|
|