Thanks to all of you who came and helped to make this special seminar such a great success!
We were pleased to be able to meet so many of you and see a great crowd of enthusiastic people excited about C++. Now we're looking forward to doing it again sometime in the future, somewhere in the world -- watch this site for details.
Special Seminar Event:
Stroustrup & Sutter on C++
March 16-17, 2004 Santa Clara, CA, USA
We’ve packed these two days with informative, leading-edge, and still highly practical and pragmatic material. The seminar is structured with talks and panels, and liberal break times so that the instructors and attendees can mix and eat and chat together. The following is the final schedule.
|Bjarne Stroustrup is the creator and original implementer of the C++ programming language, and the College of Engineering Professor of computer science at Texas A&M University. He also retains a link to AT&T Labs - Research as a member of the Information and Systems Software Research Lab. Over the years, he has written a few books (including The C++ Programming Language and The Design and Evolution of C++), written a lot of papers, and given some interviews.|
|Herb Sutter chairs the ISO C++ standards committee and is one of the world's foremost experts on software development in general and C++ in particular. He is also the author of hundreds of technical articles and papers and of the acclaimed books Exceptional C++ and More Exceptional C++. Herb is currently Visual C++ architect at Microsoft, where he leads the design team for the C++ language extensions for .NET (ISO CLI), now being standardized as ECMA C++/CLI.|
Final Seminar Schedule
Monday, March 15, 2004
On Monday, we begin in the morning with a focus on practical, day- to-day use of C++, then quickly delve into design and coding tips, techniques, idioms, and style.
8:15-8:30am Welcome (Herb Sutter)
8:30-10:00am Speaking C++ as a Native: Multi-paradigm Programming in Standard C++ (Bjarne Stroustrup)
Multi-paradigm programming is programming applying different styles of programming, such as object-oriented programming and generic programming, where they are most appropriate. This talk presents simple example of individual styles in ISO Standard C++ and examples where these styles are used in combination to produce cleaner, more maintainable code than could have been done using a single style only.
10:00-10:30am Break & mingling
10:30am-Noon Optimizing and Pessimizing C++ (Herb Sutter)
A tour of optimization issues in C++, how to handle them, and how to avoid the pitfalls: Constructive laziness, examining one (possible) optimization in depth, and multithreading issues in standard library implementations.
Noon-1:30pm Lunch & mingling
1:30-2:15pm Panel: Teaching and Learning C++: Elevating Our Thinking (Bjarne Stroustrup & Herb Sutter)
Many of our problems as C++ programmers come from misleading or misguided teaching. This panel elevates our correct thinking about design and programming in C++ by correcting commonly taught misconceptions, and presenting superior ways of thinking about the code we write. Topics include abstraction levels and libraries; data structures, ints, and bytes; and generic programming and OOP.
2:15-2:45pm Break & mingling
2:45-4:15pm C++ Design: Style, Principles and Techniques (Herb Sutter & Bjarne Stroustrup)
Class hierarchies, coding standards, and specialized domains -- oh my!
4:15-4:45pm Break & mingling
4:45-5:30pm Grill the Experts: Ask Us Anything! (Bjarne Stroustrup & Herb Sutter)
This is your opportunity to get "thought leader" answers to your favorite C++ questions! We strongly encourage you to submit your questions in advance, preferably by email or in writing at the beginning of the seminar. Audience questions will also be taken from the floor. Both instructors will answer as many questions as time permits. (Note: We'll talk about everything except future directions in C++. That is the focus of the second day.)
Tuesday, March 16
On Tuesday, we focus on today's modern cutting-edge use of C++, including important features of the Boost libraries and the draft C++ Library Extensions Technical Report now being finalized in the C++ standards committee. This day also contains important forward-looking information about what's coming soon in the next version of the C++ Standard, C++0x, where the instructors are the lead designers of several of the new core features.
8:30-10:00am Garbage Collection in C++ (Herb Sutter)
This talk begins with a summary overview of modern garbage collection, and then dives right in to GC’s relevance to, and impact on, C++. Why should C++ programmers even care about GC? What are the popular GC models, and why can’t C++ handle all of them well without some language changes? What commercial garbage collectors are often used with C++ today, how do they work, and what do you have to do to use them effectively? Why would you use, say, the Boehm collector, or the GC built into ISO standard CLI (.NET)? Finally, what standards are in place, or in progress, to unify modern C++ and modern GC environments? This and more, as we consider both CLI and non-CLI approaches in this talk by the lead architect of the C++/CLI extensions for virtual machine and garbage-collected environments.
10:00-10:30pm Break & mingling
10:30am-Noon C++ Futures (Bjarne Stroustrup)
Version 2.0 of the C++ standard is now under construction. In this talk, the creator of C++ and chair of the Evolution Working Group talks about aims and principles for future developments; improving support for generic programming; making C++ easier to teach and use; specific proposals that are currently being discussed; and likely future topics. The focus in this talk is mostly on language issues, though there will also be mention of library additions. Topics include initialization, concepts (a type system for template arguments), and C compatibility.
Noon-1:30pm Lunch & mingling
1:30-2:30pm A Look Into the New C++ Standard Library (Herb Sutter)
Version 2.0 of the C++ standard is now under construction, and it includes lots of useful stuff -- from smart pointers to generic programming tools, from math functions to new containers. In this talk, the convener of the ISO C++ committee delves into the history and current design of the draft standard hash-based containers, one of the shorter-term additions to Standard C++ that is now being finalized. This talk also consider when and how to use these new containers for best effectiveness, how they compare with existing implementations of hashed containers, and the important issues and pitfalls to be aware of.
2:30-3:00pm Break & mingling
3:00-4:15pm Exceptional C++ (Bjarne Stroustrup)
(Yes, we thought it would be fun for Bjarne to give a talk with the same title as my book. Maybe I'll change one of my talks' titles to "The Design and Evolution of C++" for symmetry... :-) ) This talk covers exception usage and techniques, exception safety and invariants, and generalized error handling. This will be demonstrated in particular using the example designing containers and algorithms that are simultaneously efficient and exception safe -- this is hard, and the C++ standard library was designed to meet this challenge. This talk presents the guarantees offered by the standard, the requirements on user code that these requirements depend on, and explains the reasons behind the tradeoffs. Examples from a standard-library vector implementation are used to illustrate general techniques. As ever, the standard library provides examples of widely applicable techniques and principles.
4:15-4:45pm Break & mingling
4:45-5:30pm Discussion on Questions Raised During the Seminar (Herb Sutter & Bjarne Stroustrup)
This panel is set aside for follow-up comments and discussion on issues that are raised during the seminar. During the other talks and panels, or during between-session chats, questions often come up that the instructors want to research. Some of the resulting information will be of general interest, and this final panel provides the needed convenient opportunity to promulgate it to everyone.