On Monday, July 13th 2009 Concepts were voted out of C++0x. In this post we take a look back at some of the the inevitable (and notable) articles from around the web.
The C++0x “Remove Concepts” Decision
At the July 2009 meeting in Frankfurt, Germany, the C++ Standards Committee voted to remove “concepts” from C++0x. Although this was a big disappointment for those of us who have worked on concepts for years and are aware of their potential, the removal fortunately will not directly affect most C++ programmers. C++0x will still be a significantly more expressive and effective language for real-world software development than C++98. The committee acted with the intent to limit risk and preserve schedule. Maybe a significantly improved version of “concepts” will be available in five years. This note explains the reasons for the removal of “concepts,” briefly outlines the controversy and fears that caused the committee to decide the way it did, gives references for people who would like to explore “concepts,” and points out that (despite enthusiastic rumors to the contrary) “the sky is not falling” on C++.
What Happened in Frankfurt?
By now the news has probably reached everyone interested in the evolution of C++0x: the ISO C++ committee voted to remove Concepts from the C++0x working draft at its July 2009 meeting in Frankfurt, Germany. Concepts were the flagship feature of C++0x, and their removal has been met with varying degrees of shock, disappointment and relief. In this post I’ll describe the effort to bring concepts into C++0x and the reasons that effort ultimately failed.
The Rise and Fall of C++0x Concepts
What were you doing during the morning hours (EST) of July 13th 2009? On that auspicious day, in a dramatic vote, the C++ standards committee decided to remove concepts from C++0x. Undoubtedly, this resolution will have a huge impact on C++. In this column I will outline the causes of concepts’ failure, discuss the lessons from this unprecedented event, and try to predict how it will affect the future of C++.
The Removal of Concepts From C++0x
On Monday, July 13th 2009 Concepts were dramatically voted out of C++0x during the C++ standards committee meeting in Frankfurt. This shocking news raises many questions and concerns. Unquestionably, these will be discussed in various forums in coming weeks and months. However, I will try to answer three burning questions here: What led to the failure of Concepts? How will the removal of Concepts affect C++0x? Will Concepts make a comeback in the near future?
A year ago, everyone was all but certain that the C++0x standard was just around the corner, and that it would include concepts (see Danny Kalev’s earlier interview with Bjarne Stroustrup, the creator of C++, from August 2008). However, In July 2009 the C++ standards committee decided to remove concepts from the C++0x by an unprecedented move. Danny’s recent controversial editorial was among the first to report that decision and its possible consequences. Despite vociferous disagreements over the removal of concepts themselves, nearly everyone agrees that the committee’s decision left open many questions not only about concepts, but also about the committee’s charter, and even the future of C++ itself. Therefore, Danny has interviewed Bjarne Stroustrup again, this time to capture his thoughts about concepts, their removal, and the impact of that decision, along with his take on other pressing questions that currently concern the entire C++ community.
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 a year after that. To meet that schedule, the committee decided to defer a major feature, “concepts”, and not include it in this standard.