Сегодня я сходил на лекцию живой легенды - Бьёрна Страуструпа. Автор языка C++ и бессменный идеолог его развития, популяризатор идей объектно-ориентированного программирования, обладатель многих наград и премий, в том числе и награды «первый компьютерный ученый».
На лекции Бьёрн (кстати, он датчанин и его имя по-датски надо читать Бьярне, а не Бьёрн, но т.к. имя Бьёрн уже устоялось, то не буду ничего менять) много говорил про историю создания C++. Про то, что привело его к идее языка. Про то, что было его движущими факторами при разработке первой версии и каждой последующей. Про то, как он видит прошлое и будущее C++. И это было очень inspiring, как говорят англичане (что-то типа «вдохновляющее», но слово посильнее).
Вторая часть выступления была посвящена новому стандарту C++0x и тому, как он разрабатывается. В голосе Бьёрна слышалось небольшое раздражение медлительностью и неэффективностью комитета по стандартизации, а также их упертостью. Даже он не может там ничего требовать. Например, он много лет добивался, чтобы убрать обязательный пробел между двумя > в конце std::vector>. И только постоянное капание на мозг заставило комитет потребовать, чтобы это компилировалось и без пробела.
Или еще лучше пример: уже в 80-х годах Страуструп реализовал ключевое слово auto в C++. Но его тогда потребовали убрать из-за несовместимости с С. И только теперь оно возвращается и теперь можно писать, например, так: for (auto i : v) std::cout << и неважно какого типа переменная v. В общем, понятно, почему стандарт вышел не 0x, а 0xB. Также он показал примеры новых фич из C++0x и то, зачем они были созданы.