Guide Contents
- Overview
- Table of Contents
- Special Member Functions: Constructors, Destructors, and the Assignment Operator
- Operator Overloading
- Memory Management
- Templates
- Namespaces
- Time and Date Library
- Streams
- Object-Oriented Programming and Design Principles
- The Standard Template Library (STL) and Generic Programming
- Exception Handling
- Runtime Type Information (RTTI)
- Signal Processing
- Creating Persistent Objects
- Bit Fields
- New Cast Operators
- Environment Variables
- Variadic Functions
- Pointers to Functions
- Function Objects
- Pointers to Members
- Lock Files
- Design Patterns
- Dynamic Linking
- Tips and Techniques
- A Tour of C99
- C++0X: The New Face of Standard C++ New
- C++0x Concurrency
- The Reflecting Circle
- We Have Mail New
- The Soapbox
- Numeric Types and Arithmetic
- Careers
- Locales and Internationalization
A new standard is an excellent opportunity not just to add more features to C++ but also to remove useless or failed features. Last month at the Santa Cruz meeting, the possible deprecation of export and exception specifications were discussed. Some committee members even proposed that export be entirely removed from C++0x. No operative decisions were made but the clear intent is to deprecate these features at the Pittsburgh meeting of March 2010. In this week's Heading for Deprecation: export, Exception Specification and register I discuss the fate of those three features and the reasons for deprecating them.
So, what do I think of Google's Go? It's too early to say at this stage. Clearly, the attempt to crossbreed C++ and Python, two languages positioned at either end of the spectrum, is interesting if not unprecedented. In recent years, state-of-the-art C++ is leaning towards strict static typing. You can notice this trend in functional and generic programming in particular. By contrast, RAD languages such as Ruby and Python lean towards pure dynamic typing, with minimal compile-time checking. Can these two contrasted approaches mix? I also doubt that Go will support the C++ Standard Library, which is probably the most valuable asset of C++. Go has no generics either, but eventually its designers will discover the hard way that there's no escape from some form of generics. Experience shows that it takes about 5 years for a new language to become reasonably stable and feature-rich for real-world projects, and that it takes about 10 years for the a language to get rid of most of its ideological dogmas. Will Go reach that point? Time will tell.



Account Sign In
View your cart