Фото Channel9
Только что на Channel 9 закончилась презентация Герба Саттера на конференции BUILD в Редмонде. Кому интересен конспект его выступления с последними новостями про Visual C++ и C++11 в целом — прошу под кат.
Презентация начинается с воспоминаний, как 9 месяцев назад на этом же месте проходила конференция Going Native. 20 тысяч человек смотрели её вживую по Интернету, и еще 600 000 посмотрели в записи. Затем Герб рассказывает о ключевой роли C++ в разработке ПО в Microsoft, и что их цель — сделать C++, C# и JavaScript равноправными языки для разработки для WinRT. Не так давно был выпущен Visual C++ 2012 с поддержкой архитектуры ARM, C++AMP, полной стандартной библиотекой C++11 и т.д. — на Хабре уже писали об этом. И буквально только что к этому добавилась поддержка Windows Phone 8.
С того момента топ-3 просьб о Visual C++ выглядел так:
- Полная поддержка C++11.
- Поддержка Windows XP.
- Бесплатный Visual C++ Express для desktop.
Мольбы были услышаны: в сентябре был решен третий вопрос, в октябре — выпущен CTP с поддержкой Windows XP, и Microsoft будет выпускать новые версии Visual C++ как можно чаще (out-of-band releases), постепенно добавляя недостающие аспекты C++11. Первый такой релиз доступен прямо сейчас: aka.ms/vc-ctp. Это только CTP компилятора, без дебаггера, стандартной библиотеки и т.д., поэтому не удивляйтесь, например, красным подчеркиваниям при попытке использовать новые возможности, а именно:
- explicit conversion operators
- raw string literals R"()"
- function template default arguments
- delegating constructors
- uniform initialization (initializer_list)
- variadic templates (наконец-то!)
Подробности от Stephan Lavavej тут: aka.ms/vc-ctp-tour
Новые версии компилятора ожидайте уже в первой половине 2013 года.
На этом часть, посвященная Visual C++, окончилась, и Герб перешел к процессу стандартизации C++.
На встречу Комитета в марте 2011, когда принимались окончательные решения по новому Стандарту, прилетело рекордное количество людей – 60. И хотя после публикации C++11 можно было ожидать некоторого спада активности, на самом деле она только растет. В комитете появляется всё больше новых лиц. Если раньше Microsoft, Google, Intel присылали обычно по двух представителей, то теперь их пять или шесть.
Ранее в Комитете WG21 было три группы: Core, Evolution и Library. Такая структура, как оказалось, плохо масштабируется, поэтому были добавлены Study Groups, которых на данный момент уже десять:
SG1, Concurrency: Hans Boehm (HP). Всё, что связано с параллелизмом.
SG2, Modules: Doug Gregor (Apple). Работа над возможным улучшением или заменой процесса компиляции, основанного на заголовочных файлах.
SG3, File System: Beman Dawes. Работа, основанная на Boost.Filesystem v3.
SG4, Networking: Kyle Kloepper (Riverbed). Всё, что связано с сетью, сонетами и HTTP.
SG5, Transactional Memory: Michael Wong (IBM). Исследование возможностей транзакционной памяти для потенциального добавления в язык.
SG6, Numerics: Lawrence Crowl (Google). Вычисления с фиксированной запятой, плавающей запятой и пр.
SG7, Reflection: Chandler Carruth (Google). Рефлексия во время компиляции.
SG8, Concepts: Matt Austern (Google). Ближайшая перспектива объединения static if с частью концертов, посвященной ограничениям шаблонных параметров.
SG9, Ranges: Marshall Clow (Qualcomm). Использование диапазонов вместо пар итераторов в стандартной библиотеке, в т.ч. в контейнерах и алгоритмах.
SG10, Feature Test: Clark Nelson (Intel). Разработка тестов для компиляторов, проверяющих поддержку тех или иных новых возможностей C++, которые мы продолжаем добавлять.
SG11 в процессе формирования и будет посвящена базам данных.
Благодаря такому разделению у каждой группы, например, есть свой независимый график встреч. И в то же время все они абсолютно «законны» и являются частью Комитета. Эти группы сформировались не просто так, а благодаря определенной критической массе людей и интересов. В них работают признанные эксперты в соответствующих областях, которые никогда раньше не имели отношения к Комитету.
Далее Герб перешел к графику работ на будущее:
- Следующая большая версия (major release) Стандарта ожидается в 2017 году. Следовательно, вся техническая работа должна быть окончена в 2016.
- В 2014 году ожидайте небольшую публикацию Стандарта (minor release) с исправлениями и маленькими фичами, например polymorphic lambdas, reader-writer locks и пр.
- Кроме того, каждая Study Group может публиковать свои TS (technical specification) независимо. Filesystem должна выйти уже через год. Network SG будет выпускать свои обновления каждый год (TS1 в 2013, TS2 в 2014, TS3 в 2015). Transactional memory, возможно, появится уже в 2014 году.
Кроме того, запущен сайт isocpp.org (Твиттер @isocpp), который должен стать сайтом №1 для новостей про C++, его стандартизацию и всей сопутствующей информации, своеобразным «центром тяжести». В частности, впервые у вас есть пошаговое руководство, как подать свою заявку в Комитет. Процесс стандартизации будет максимально публичным благодаря открытым спискам рассылки.
На Хабре уже была статья про четвертое издание «The C++ Programming Language». Эта книга, помимо всего прочего, содержит 4 главы о стиле современного C++, которые будут выложены бесплатно на сайте по очереди.
Наконец, для улучшения бизнес условий для C++ и продвижения его понимания и использования на всех платформах была основана Standard C++ Foundation – некоммерческая организация с большим количеством спонсоров, которые впрочем, не имеют там права голоса.
На этом часовая презентация закончилась и началась сессия вопросов и ответов. Самые важные моменты оттуда:
- С выпуском Windows Phone 8 SDK C++ теперь поддерживается на всех мобильных платформах
- .then (как часть библиотеки) уже предложен, они работают вместе с Google (executor) и Intel, т.к. у них уже есть аналогичные разработки. Следующим шагом может стать добавление в сам язык await, точно такого же, как в C#.
- В области параллелизма работа ведется пока только на уровне multicore и vectorization. О стандартизации вычислений на GPGPU говорить пока очень рано из-за слишком частых изменений в «железе». Но многие наработки C++AMP не являются специфичными для GPGPU и могут быть использованы на других уровнях.
- Стремится ли Microsoft к 100% соответствию новому Стандарту? Да. И как можно скорее.
- Constexpr хотят расширить, чтобы там можно было писать больше одного statement.
- В Стандарте работают над поддержкой сообщений между потоками
- Каково будущее у MFC? MIcrosoft продолжает выпускать обновления для неё и предоставляет всё, что нужно для интеграции с новыми наработками, такими как XAML.
- Команды, работающие над Windows 8, уже во всю используют возможности нового Стандарта.
- Каково будущее C++/CLI? C++/CX — это фактически реинкарнация C++/CLI, очень многое было взято оттуда. Но если C++/CLI предполагалось использовать исключительно для целей взаимодействия с .NET, то C++/CX не ограничен этой областью.
- Герб уже работает над заявкой в Комитет, посвященной сборщику мусора.
P.S. Кто смотрел эту трансляцию — подскажите пожалуйста, если я упустил что-то существенное.
Автор: Radagast