14 июля Страуструп выступил с семинаром 21st Century C++ в главном актовом зале ЦЕРН. Мероприятие прошло в рамках первой академической программы CERN STEAM. Для зрителей открыли дополнительные места в зале Совета, а трансляцию смотрели онлайн. По данным организаторов, общее число зрителей составило около 900 человек.
«Хорошее программное обеспечение часто невидимо», — отметил Страуструп. Эта мысль отражает одну из главных задач современной разработки: качественный код должен не только выполнять поставленную задачу, но и оставаться понятным другим программистам, легко сопровождаться и не создавать ненужных источников ошибок.
Для ЦЕРН это особенно важно. Программное обеспечение научных экспериментов разрабатывают международные команды, а созданные ими системы могут использоваться десятилетиями. Поэтому изменения в архитектуре и инструментах необходимо внедрять так, чтобы не потерять накопленные знания и не поставить под угрозу надёжность действующей инфраструктуры.
C++ развивается вместе с вычислительными технологиями
В разговоре с физиком ЦЕРН Андреа Боччи, состоявшемся на следующее утро после семинара, Страуструп обсудил дальнейшее развитие C++: повышение безопасности программирования, поддержку новых вычислительных технологий и роль языка в создании высокопроизводительных приложений.
C++ лежит в основе многих инструментов, которыми пользуются разработчики, в том числе компонентов Python и программных систем искусственного интеллекта. В таких проектах язык позволяет переносить наиболее ресурсоёмкие операции на высокопроизводительный код, тогда как другие части системы могут быть написаны на более удобных для разработки языках.
При этом, по замыслу Страуструпа, современный C++ не должен оставаться языком, где производительность достигается исключительно за счёт усложнения кода. В описании его семинара особое внимание уделено обобщённому программированию, системе типов, модулям, управлению ресурсами и последовательной обработке ошибок. Эти возможности позволяют создавать более компактные, сопровождаемые и надёжные программы, не отказываясь от производительности.
Для научного программного обеспечения это особенно актуально: ошибки могут искажать результаты экспериментов, а поддержка устаревших компонентов годами отнимает ресурсы инженерных команд. Поэтому безопасность кода и простота его сопровождения становятся не менее важными, чем скорость выполнения.
На вопрос, останется ли C++ хорошим выбором через 15 лет, Страуструп ответил уверенно: «Это язык, экосистема и сообщество, которые должны развиваться».
Подготовка к вычислительным вызовам будущего
Обсуждение прошло в рамках CERN STEAM Academy — десятинедельной программы, созданной в рамках проекта Next Generation Triggers. Она объединяет лекции, практические занятия и совместную работу над задачами в области разработки программного обеспечения, периферийных вычислений и машинного обучения. В программе участвуют специалисты ЦЕРН, университетов, исследовательских лабораторий и промышленности.
Актуальность такой подготовки возрастает по мере приближения модернизированного Большого адронного коллайдера HiLumi LHC к новым этапам работы. Рост объёмов экспериментальных данных и требований к их обработке потребует от научных команд не только более мощных вычислительных систем, но и программного обеспечения, способного эффективно использовать их ресурсы.
Опыт Страуструпа показывает, что будущее C++ зависит не только от появления новых возможностей языка. Не менее важны культура разработки, подготовка специалистов и способность поддерживать крупные программные системы на протяжении десятилетий.
Но если современные средства C++ позволяют писать одновременно более быстрый, безопасный и понятный код, почему сложность промышленного и научного программного обеспечения продолжает расти? Достаточно ли совершенствовать язык или отрасли пора менять сами принципы разработки и сопровождения больших программных систем?
Источник: CERN — C++ creator talks about the future of programming
Если вам понравился материал, кликните значок — вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал —не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!

