Radagast
Фото Channel9
Презентация начинается с воспоминаний, как 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 не ограничен этой областью.
- Герб уже работает над заявкой в Комитет, посвященной сборщику мусора.
Ссылки по теме