LINUX.ORG.RU

Герб Саттер — отчёт о встрече по стандартам ISO C++ в июне 2026 года

 ,


2

3

https://herbsutter.com/2026/06/13/brno-trip-report.

Несколько минут назад (прим.: 13 июня 2026 г.) комитет ISO по C++ завершил первое заседание по C++29 в прекрасном городе Брно, Чехия (в гибридном формате с онлайн-участием через Zoom).

Организатором этой встречи выступил Университет имени Менделя в Брно. Благодарим всех, кто принимал участие в её проведении, и в особенности Хану Дусикову, которая возглавила работу по подготовке мероприятия! Наши хозяева обеспечили нам высококачественные условия для проведения шестидневной встречи с понедельника по субботу.

В мероприятии приняли участие около 200 человек, из которых примерно 55% присутствовали на месте, а 45% — онлайн; они официально представляли 28 стран. На каждой встрече у нас регулярно появляются новые гости, которые никогда раньше не участвовали в мероприятии, и на этот раз, помимо новых участников, являющихся официальными представителями национальных организаций, было 25 новых гостей, в основном присутствовавших на месте. Ещё раз приветствуем всех!

В настоящее время в составе комитета действуют 22 подгруппы, 11 из которых в течение недели проводили заседания в рамках 6 параллельных сессий. Некоторые группы работали всю неделю, а другие — несколько дней или часть дня, в зависимости от объёма работы. Краткое изложение процедур ISO можно найти здесь.

Принято для C++29: Изменения и новые возможности ядра языка

Эти ссылки ведут на самые последние общедоступные версии каждой статьи. Если статья была доработана на заседании перед утверждением, ссылка отслеживает изменения и автоматически найдёт обновлённую версию, как только она будет загружена на общедоступный сайт. Некоторые из принятых нововведений в языке и библиотеках уже сегодня поддерживаются в основных реализациях C++. «Принято для C++29» не означает, что «придётся ждать до 2029 года или позже, чтобы увидеть их поддержку в реальных компиляторах и стандартных библиотеках». Помимо устранения ряда проблем, основная рабочая группа одобрила 19 документов, в том числе следующие:

  • P3596R3 «Неопределённое поведение и приложения IFNDR» (авторы: Joshua Berne, Timur Doumler, Jens Maurer и Shafik Yaghmour). Данная статья дополняет стандарт C++ двумя приложениями, в которых подробно каталогизированы и задокументированы все случаи неопределённого поведения (UB) в C++, включая случаи, помеченные как «некорректная форма, диагностика не требуется» (IFNDR). Данный каталог предназначен для содействия смягчению или устранению случаев UB, в том числе с помощью профилей. Это была, простите за мой французский, целая «[метрическая] тонна» работы, проделанной на протяжении нескольких лет. Спасибо Shafik, Joshua, Timur, Jens и всем, кто помог им составить этот подробный каталог, благодаря чему теперь мы сможем систематически заняться этими случаями неопределённости (UB)! Следующим шагом станет рассмотрение каждого случая в отдельности, которое начнётся в следующем месяце с целью систематического решения этих проблем к C++29, возможно, уже в течение следующего года (подробнее об этом ниже). Здесь, в C++, мы смотрим в глаза реальности без страха и пристрастий. На случай, если это нужно повторить: «Да, Вирджиния, существует динамичный, живой и современный язык программирования под названием C++». (Только, в отличие от оригинала, эта версия — правда для взрослых).

  • P3097R3 «Контракты в C++: виртуальные функции» (авторы: Timur Doumler, Joshua Berne и Gašper Ažman). Цитата из статьи:

    «Утверждения переопределяющей функции не зависят от утверждений в переопределяемой функции. При вызове виртуальной функции оцениваются утверждения о предварительных и конечных условиях как статически выбранной функции, так и конечной переопределяющей функции. Данный подход развивает ранее предложенные решения, поддерживая более широкий спектр сценариев использования, встречающихся в существующем коде, более естественно интегрируясь с семантикой оценки контрактов и обработкой нарушений контрактов в C++26, а также лучше подходя для языка C++, чем более ограничительные модели в таких языках, как Eiffel и D».

    Добавление этой функции устраняет одну из основных претензий к контрактам в C++26, а именно то, что первоначальная версия контрактов не поддерживала виртуальные функции. Теперь, менее чем через три месяца после технического завершения работы над C++26, в проекте стандарта C++29 контракты уже поддерживают виртуальные функции. Это свидетельствует о том, что комитет серьёзно настроен на развитие контрактов C++26 в рамках C++29. Спасибо, Timur, Joshua and Gašper!

  • P3668R4 «Операции инкремента и декремента в постфиксной нотации по умолчанию» (авторы: Matthew Taylor и Alex). В данной статье добавляется поддержка =default для операторов инкремента и декремента в постфиксной нотации, что позволяет использовать каноническое определение, отсылающее к префиксным версиям, без необходимости вручную писать шаблонный код (и, возможно, допускать ошибки). Спасибо, Matthew и Alex! Например, приведённый в статье пример теперь допустим в проекте C++29:

class foo{
    int member;
public:
    constexpr foo& operator++(){
        ++member;
        return *this;
    }
    constexpr foo operator++(int) = default;
};
struct A { int a; };

struct B : A { int b; };

B{{1}, 2}         // уже допустимо в C++17
B{1, 2}           // уже допустимо в C++17

B{.a=1, .b=2}     // теперь допустимо в C++29
B{{.a=1}, .b=2}   // теперь допустимо в C++29
B{.a{1}, .b{2}}   // теперь допустимо в C++29

B{.b=2, .a=1}     // остаётся недопустимым

Кроме того, мы добавили ещё целый ряд языковых расширений и улучшений.

Принято для C++29: Изменения и новые возможности стандартной библиотеки

Помимо устранения ряда проблем, в стандартную библиотеку были включены 18 статей, в том числе следующие:

  • P3091 «Улучшенные операции поиска для map, unordered_map и flat_map» (автор: Pablo Halpern). Этот документ добавляет в C++29 поддержку вызова .lookup(key) в стиле Python для map, unordered_map и flat_map. Эта функция, возвращающая опциональный параметр, открывает возможности, недоступные сегодня с помощью оператора [], который всегда вставляет элемент, если его нет, и find, который находит только те элементы, которые присутствуют. Спасибо, Pablo! Вот пример из статьи:
constexpr double inf = std::numeric_limits<double>::infinity();

double largest = -inf;

for (int i = 1; i <= 100; ++i) {
  largest = std::max(largest, theMap.lookup(i).value_or(-inf));
}
  • P3125R6 «Маркировка указателей constexpr» (автор: Hana Dusíková, известная как «королева constexpr»). Представленный в этой статье тип указателя с тегом pointer_tag_pair<Pointer, BitsRequested = /* доступные младшие биты */, Tag = unsigned> обеспечивает переносимую поддержку хранения информации в младших битах указателей. Это библиотека низкого уровня, полезная для решения многих задач, включая обеспечение безопасности памяти и усиление защиты. Спасибо, Hana!
  • P3248 «Сделать [u]intptr_t обязательными» (автор: Gonzalo Brito Gadeschi). Формально в C и C++ до сих пор типы intptr_t и uintptr_t были «необязательными», поэтому реализация на C++ могла не поддерживать их. Поскольку они полезны для низкоуровневого кода и уже широко поддерживаются, теперь стандарт C++ будет требовать их наличия. Спасибо, Gonzalo!
    Мы также добавили ряд других расширений и улучшений библиотеки.
Другие достижения, в частности в области обеспечения безопасности работы с памятью

На этой неделе мы также добились других важных успехов в работе над функциями, которые пока не готовы к включению в проект стандарта. Приведённый ниже список не является исчерпывающим, но я хотел бы особо выделить прогресс, достигнутый в нескольких направлениях, связанных с безопасностью памяти:

  • Систематическое решение проблемы неопределённого поведения (UB) в C++ для стандарта C++29. Подгруппа по развитию языка (EWG) также одобрила выделение значительного времени этим летом и осенью на построчное рассмотрение в режиме телеконференции документа P3100 «Концептуальная основа для систематического решения проблемы неопределённого поведения в стандарте C++» (авторы: Timur Doumler and Joshua Berne), с целью включения его в стандарт C++29. Отличное краткое изложение можно найти в аннотации к документу.
  • Спецификация профилей для C++29. Подгруппа по безопасности и защите (SG23) приняла решение разработать спецификацию профилей, которая позволит использовать правила статического и иного анализа, ограничивающие набор функций C++, с целью обеспечения того, чтобы в коде не использовались нежелательные (например, небезопасные с точки зрения памяти) операции, и тем самым усилить безопасность кода C++ определёнными способами. Эта спецификация будет включена в C++29, если она будет готова вовремя, как ожидается; в противном случае она может быть опубликована в виде технического документа одновременно с C++29.
  • Профиль инициализации. Группа SG23 также рассмотрела текущий проект документа P4222 «Профиль инициализации» (автор: Bjarne Stroustrup), и мы рассчитываем добиться дальнейшего прогресса в этой работе в течение этого года, в том числе с учётом опыта реализации по крайней мере в одной крупной кодовой базе компилятора.

Как я уже упоминал в своих предыдущих отчетах о поездках, среди других документов по профилям, над которыми я ранее работал, можно назвать P3984 «Профиль безопасности типов» (автор: Bjarne Stroustrup) и P3589R2 «Профили C++: инфраструктура» (автор: Gabriel Dos Reis), а также ряд других дополняющих их документов с предложениями по профилям.

Сказать, что это были бы чрезвычайно важные и исторические достижения — значит сильно преуменьшить их значение:

  • предоставляется способ систематически решать проблемы, связанные с неопределённым поведением (UB) в C++, и
  • предоставляется способ гарантировать, что программа на C++ обладает определёнными свойствами, например, отсутствие ошибок, связанных с безопасностью работы с памятью.

Мы ещё не достигли этой цели, но обе задачи теперь явно выходят за рамки простого желания; это серьёзные рабочие задачи, по которым комитет намерен добиться значительного прогресса в ближайшем будущем. Я буду продолжать освещать эти усилия в будущих отчётах о поездках по мере продвижения работы.

Напоминание для тех, кто по-прежнему скептически относится к тому, что реализация UB на C++ когда-нибудь станет возможной: помните, что мы уже этим занимаемся. Не живите прошлым… «Уже не 2021 год». BeCPP, YouTube.

  • Код constexpr C++, который в настоящее время охватывает практически весь язык C++ и стандартную библиотеку, уже гарантированно не вызывает неопределённого поведения при выполнении на этапе компиляции.
  • В C++26 были устранены ещё два основных источника неопределённого поведения (UB): использование неинициализированных переменных стека больше не приводит к UB, а в упрочнённой стандартной библиотеке C++ добавлена защита от выхода за пределы для десятков наиболее распространённых операций с границами (эта функция уже широко внедрена для упрочнения платформ Apple и Google; подробнее об этом см. в моём предыдущем отчёте о поездке).
В заключение

Еще раз благодарим около 200 экспертов, которые приняли участие в заседании на этой неделе как очно, так и в режиме онлайн, а также всех тех, кто участвует в работе по стандартизации через свои национальные органы!

Но мы не собираемся сбавлять обороты… Мы продолжим проводить заседания подгрупп в Zoom, а наше следующее полное заседание состоится в ноябре в Армасан-дус-Бузиус, недалеко от Рио-де-Жанейро (Бразилия), где мы продолжим работу над добавлением новых возможностей в C++29. Надеюсь увидеть многих из вас там.

Спасибо всем, кто читает это сообщение, за ваш интерес и поддержку C++ и его стандартизации.

★★★★★
Ответ на: комментарий от r--r--r--

Тут трагедия в первую очередь в том

ИМХО, трагедия в том, что некоторые набрасыватели не дают себе труда подумать прежде чем набрасывать.

Если же попробовать проследить как развивались события, то многие вопросы из категории «почему такой бардак» или «почему C++ выбрасывают в пользу более простых и приятных языков» отпадут сами собой.

А еще некоторые (хз может в силу альтернативности умственного развития) верят в то, что можно взять и сделать что-то классное с первого раза, не совершив ни одной серьезной ошибки.

Плюс некоторые специально набрасывают.

eao197 ★★★★★
()
Последнее исправление: eao197 (всего исправлений: 1)
Ответ на: комментарий от eao197

Проблема в том, что есть фантазии умников на форуме, вооруженных послезнанием, и есть реальный мир, в котором сложные вещи развиваются причудливым эволюционным путем.

А что, на момент середины девяностых, когда вся эта байда с std::string и iostream появилась в C++, идея форматированного вывода была абсолютно новой и никто про неё не слышал? Серьёзно? Потому что из того, что я вижу, Страуструп сотоварищи просто копипастили API вывода из Симулы (откуда до того скопипастили объектную модель) вообще не приходя в сознание.

Ты можешь про фантазии умников на форуме сколько угодно писать, но факт в том, что от университетского профессора и создателя промышленного ЯП (и его товарищей) ожидается, что он хотя бы иногда будет вынимать голову из жопы и смотреть по сторонам. С другой стороны, в C++ до сих пор в 2026 году от Рождества Христова нет сраных split() и trim() для строк. Просто позорище какое-то.

yorshka
()
Ответ на: комментарий от eao197

Я согласен с вами. С дополнением, что многие desktop’ные программы имеют довольно долгую историю. А что начали в 90-х писать на С++, то и дальше продолжают. А так — С++ нишевая штука и это уже вряд ли изменится. В своей нише же он ещё может просуществовать довольно долго. Тут фортран ещё помер не совсем и С++ нас всех переживёт. Но пик популярности давно и заслуженно пройден, этого тоже не изменить.

ugoday ★★★★★
()
Ответ на: комментарий от yorshka

А что, на момент середины девяностых, когда вся эта байда с std::string и iostream появилась в C++, идея форматированного вывода была абсолютно новой и никто про неё не слышал?

ЕМНИП, байда с iostream появилась в 1980-х еще до того, как в язык добавили шаблоны.

А std::string – это прямое следствие появления шаблонов.

Ты можешь про фантазии умников на форуме сколько угодно писать

Конечно могу, потому что вы сами кроме как словесами на форуме разбрасываться ничего не можете. Позвиздесь – сколько угодно. Показать как на C++ времен 1988-го года сделать безопасную по типам версию print-а, которую бы пользователь мог адаптировать к собственным типам – нет.

Вот на самых первых версиях C++ времен Turbo C++ 1.0 и Borland C++ 2.0 можно было через iostream и operator<< делать вывод своих типов в cout. С безопасностью и контролем в compile-time. Но это ни разу не близко современный std::print.

eao197 ★★★★★
()
Ответ на: комментарий от ugoday

И такого бардака как в С++ там нету. Этот факт требует осмысления.

То есть, бардак осмыслился? Вот это поворот.

r--r--r--
()
Ответ на: комментарий от ugoday

А так — С++ нишевая штука и это уже вряд ли изменится.

И это хорошо. Инструмент должен использоваться там, где ему место. А то получится как с C++ в 1990-х или с JavaScript-ом сейчас.

Но пик популярности давно и заслуженно пройден, этого тоже не изменить.

А это плохо?

eao197 ★★★★★
()
Ответ на: комментарий от r--r--r--

То есть, у тебя вообще никаких свидетельств нет и

я не собираюсь заниматься глупостями.

«Ваша исходная посылка ложна,» не потому, что у тебя есть опровергающие её факты

Так это вы должны доказывать. Пока доказательств нет (анекдоты не считаются).

Я даже поставлю вопрос шире - я могу увидеть хоть что-то,

Чтобы чего-то увидеть, нужно глаза раскрыть сначала. А с этим у вас большие проблемы. Все программы, которые сейчас пишутся на ts, четверть века назад писались бы на С++. Но я вижу, без конкретных примеров вы не можете, поэтому возьмите vscode.

что изначально было на C++

Что раз было написано на $LangName, остаётся на $LangName. До самой смерти. Но вот новые похожие проекты уже будут начаты на более модных языках. Так тут принято.

ugoday ★★★★★
()
Ответ на: комментарий от yorshka

нет сраных split() и trim() для строк.

С https://www.cppstories.com:

#include <print>
#include <ranges>
#include <string_view>

int main() {
    using namespace std::string_view_literals;

    constexpr auto text = "C++ is powerful and elegant"sv;
    
    for (auto part : std::views::split(text, ' '))
        std::print("'{}' ", std::string_view(part));
}
const std::string text { "    Hello World" };
std::cout << std::quoted(text) << '\n';

auto conv = std::views::transform(
        std::views::drop_while(text, ::isspace), 
        ::toupper 
    );

std::string temp(conv.begin(), conv.end());

std::cout << std::quoted(temp) << '\n';

Просто позорище какое-то.

Тут только ты.

dataman ★★★★★
() автор топика
Ответ на: комментарий от eao197

Инструмент должен использоваться там, где ему место.

Когда-то вдруг кто-то влетает в дискуссию с провокативным утверждением, что С++ до сих пор популярный язык на котором написано вообще всё, то возникает чувство недоумения.

А это плохо?

Да. В природе эволюция выкидывает довольно странные штуки и субоптимальные решения могут существовать миллионы лет. Просто потому что вот так эволюция устроена. В ИТ же вроде как мы имеем дело с разумным замыслом. В теории. Так что хотелось бы, чтобы устаревшие технологии не окукливались в своих нишах, а полностью заменялись своими лучшими версиями. Этого, однако, не происходит.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

что С++ до сих пор популярный язык

Как бы это так и есть до сих пор ;)

на котором написано вообще всё

А это уже из категории «на заборе написано». Особенно если без уточнения в какой нише.

В ИТ же вроде как мы имеем дело с разумным замыслом. В теории.

Мне думается, что это даже в теории не так. Обычный процесс эволюции со случайными мутациями, естественным отбором, катастрофами из категории «бутылочное горлышко» и вот этим вот всем.

eao197 ★★★★★
()
Ответ на: комментарий от ugoday

Так это вы должны доказывать. Пока доказательств нет (анекдоты не считаются).

Вот из этих пунктов:

  1. Примерно каждый инстанс сервера с Linux активно использует код из libc
  2. Кодовая база дистрибутива венды на 85%+ состоит из C++ и оставшийся хвостик из дотента
  3. Примерно каждое мобильное устройство выводит графику через библиотеки на C/C++

мне точно надо что-то доказывать или же всё перечисленное - это смешные анекдоты?

Все программы, которые сейчас пишутся на ts, четверть века назад писались бы на С++.

Ты точно понимаешь, что такое typscript? Ты точно понимаешь, что 99,9% вычислительных ресурсов, выполняющих написанный на нём код, приходятся на выполнение в браузере?

Давай я угадаю твои ответ на эти вопросы:

  1. Это надо доказывать.
  2. У меня закрыты глаза и мне надо их открыть, чтобы увидеть написанные четверть века назад приложения для браузеров на С++

Верно?

r--r--r--
()
Ответ на: комментарий от ugoday

что изначально было на C++

Что раз было написано на $LangName, остаётся на $LangName. До самой смерти. Но вот новые похожие проекты уже будут начаты на более модных языках. Так тут принято.

Но ведь ты лжёшь. Вот факты:

  1. PKZIP для MS-DOS был написан на ассемблере, а затем были реализованы архиваторы с этим же форматом данных на C/C++.
  2. SQLite написан на си, но его точная копия реализована на rust.

И таких фактов, когда некоторую логику переписывают на другом языке, можно легко найти ещё. Это всё "анекдоты" и "не считается"?

Аналогичных примеров для C++ и typescript от тебя, я так чувствую, мы не увидим.

r--r--r--
()
Последнее исправление: r--r--r-- (всего исправлений: 3)
Ответ на: комментарий от eao197

Как бы это так и есть до сих пор ;)

Разве, если С++ с лиспом сравнивать.

Мне думается, что это даже в теории не так.

Странные у вас теории. Информационные технологии придумываются людьми. Разумными созданиями. Которые думают, осмысляют, прогнозируют последствия своих действий. Ожидается, что мы можем делать нечто большее, нежели «творим фигню, смотрим кому повезёт выжить».

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Разве, если С++ с лиспом сравнивать.

Не только с Lisp-ом. Даже если не брать в рассмотрение индекс TIOBE (который, имхо, меряет только хайп), а посмотреть на статистику проектов на GitHub, то можно увидеть, что C++ в ТОП-10 и далеко не на последнем месте в десятке.

JetBrians регулярно проводят исследования о распространенности языков программирования, в частности С++, и докладывают о миллионах практикующих C++ разработчиков (емнип, речь идет о полутора десятков миллионов).

Странные у вас теории.

Пока что вполне согласующиеся с окружающей реальностью.

Информационные технологии придумываются людьми.

Но развиваются методом проб и ошибок, да еще и под влиянием коньюктуры. Многие технологии из мейнфреймов стали неактуальными после появления песоналок. Разработки под десктоп оказались ненужными при появлении Web-а. Тот же JavaScript превратился из вспомогательного костыля для создания динамических страничек в язык для разработки и server-side, и (охоспадя) desktop-а. И тот цирк с возникновением и устареванием фреймворков для Web-а иначе как обычной эволюцией и естественным отбором мне сложно назвать.

eao197 ★★★★★
()
Ответ на: комментарий от r--r--r--

Примерно каждый инстанс сервера с Linux активно использует код из libc

Это С, а не С++. Разные языки.

Кодовая база дистрибутива венды

Какое-то легаси.

каждое мобильное устройство выводит графику через библиотеки на C/C++

И? Это такой мизер относительно всей совокупности производимого сейчас програмного обеспечения. Но да, я согласен, что в нише системных библиотек, прошивок для миркроконтроллеров и прочего такого доминирует С (и примкнувшей к ниму уродливый братец С++). Только это маленькая ниша.

всё перечисленное - это смешные анекдоты?

Естественно.

Ты точно понимаешь, что 99,9% вычислительных ресурсов, выполняющих написанный на нём код, приходятся на выполнение в браузере?

Это надо доказывать.

Шок! Нельзя просто так рандомно набрасывать, нужно обосновывать свои слова. Шок! Несправедливость! Доколе?!

Но, даже если и так, то что это меняет?

ugoday ★★★★★
()
Ответ на: комментарий от r--r--r--

SQLite написан на си, но его точная копия реализована на rust.

Т.е. SQLite как был на си, так и остался на си. На новом языке реализавали другой, новый проект. Но вру почему-то я. Ничего не упустил?

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Но весь массово тиражируемый промышленный код - от ОС и библиотек для работы с графикой, сетью и пр. до баз данных написан на си / спп.

Ваша исходная посылка ложна,

Примерно каждый инстанс сервера с Linux активно использует код из libc

Это С, а не С++. Разные языки.

всё перечисленное - это смешные анекдоты?

Естественно.

венды

Какое-то легаси.

Что раз было написано на $LangName, остаётся на $LangName.

SQLite переписан на rustе

Это анекдот.
Это не считается.
Это надо доказывать.
Это легаси.
Но код на С++ 25-ти летней давности переписали на typescript.

А ты сегодня в ударе. Может быть даже тепловом.

r--r--r--
()
Последнее исправление: r--r--r-- (всего исправлений: 2)
Ответ на: комментарий от dataman

С https://www.cppstories.com:

А чо сам не написал? Слабо? Так и ходишь и копипастишь чужой код отовсюду в свои проекты?

Это всё ещё никак не противоречит отсутствию этих функций в стандартной библиотеке языка.

Просто позорище какое-то.

Тут только ты.

Мне всё ещё нравится, как ты бегаешь по тредам в Development за мной и пытаешься мне что-то зачем-то доказать.

yorshka
()
Ответ на: комментарий от eao197

а посмотреть на статистику проектов на GitHub

Я, вот, посмотрел и до первого места там далеко. И динамика говорит о нарастающем отставании от лидеров.

Заметьте, я не утвреждаю, что на С++ никто ничего не пишет. Я лишь заметил, что утверждение «весь массово тиражируемый промышленный код … написан на си / спп» является некоторым преувеличением.

развиваются методом проб и ошибок,

Так происходит. Но нет объяснения отчего так. И, следовательно, нет понимания как исправляться будем. Это печально.

ugoday ★★★★★
()
Ответ на: комментарий от dataman

А когда java.lang.String придумывали, люди головой подумали, что они делают, зачем, как этим будут пользоваться. Ну и положили сразу полезные функции.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

посмотрел

Посмотрел на ЯП с миллионами мелких leftpad-ов - из-за них статистика едет. Посмотреть вокруг себя и посчитать смарт-железо вокруг себя это же так сложно. Клоунада в чистом виде.

necromant ★★★
()
Ответ на: комментарий от ugoday

Я, вот, посмотрел и до первого места там далеко.

А я про первое место и не говорил. Если же для вас популярность – это только первое место, то тогда и Java, внезапно, не популярна.

И динамика говорит о нарастающем отставании от лидеров.

Мне вот видится, что зубных врачей гораздо больше, чем офтальмологов, а проктологов еще меньше, чем офтальмологов, а фониатров еще меньше, чем проктологов. Говорит ли динамика популярности специализации «фониатр» о чем либо?

Я лишь заметил, что утверждение «весь массово тиражируемый промышленный код … написан на си / спп» является некоторым преувеличением.

Мне думается, что разбираться с этим утверждением вам нужно с автором данного утверждения.

eao197 ★★★★★
()
Ответ на: комментарий от necromant

Т.е. статистика github’а хорошая, когда показывает победу любимой технологии и плохая, когда свидетельствует о поражении? Очень популярный подход.

ugoday ★★★★★
()
Ответ на: комментарий от eao197

Говорит ли динамика популярности специализации «фониатр» о чем либо?

Наверное говорит. Как-минимум, что-то происходит из-за чего профессия теряет/приобретает популяность. Можно выводы делать, прогнозы строить.

Мне думается, что разбираться с этим утверждением вам нужно с автором данного утверждения.

Так вы ж сами в наш диалог зашли.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Можно выводы делать, прогнозы строить.

Вы будете строить эти прогнозы ровно до тех пор, пока вашему ребенку не потребуется помощь фониатра. А когда потребуется вы будете удивляться почему их вообще так мало, а к самым толковым из них очередь на месяцы вперед.

Так вы ж сами в наш диалог зашли.

Но такого утверждения таки не делал. Как и не выражал согласия с ним.

eao197 ★★★★★
()
Ответ на: комментарий от ugoday

Откройте для себя опросы разработчиков и комплексные рейтинги. Статистика гитхаба как-то учитывает, что куча OpenSource проектов уехала уже с него? Что сейчас там на 80% ИИ-боты пасутся?

Возвращайтесь в реальный мир и отлипните от компа - у вас полный загон и шоры на глазах. Домофон есть в доме? Лифты работают? Бортовой комп на машине есть? В кофемашине можно себе кофейку заварить? Кассы в магазине работают? Светофоры работают? Пожарные и охранные сигнализации? Системы навигации? Промышленные линии на заводах?

Закрой крышку лаптопа и походи пощупай всё что окружает тебя. Как восстановишь связь с реальностью возвращайся :)

necromant ★★★
()
Ответ на: комментарий от eao197

Вы будете строить эти прогнозы ровно до тех пор, пока вашему ребенку не потребуется помощь фониатра

Ну вот. Снова от статистики к анекдотам.

такого утверждения таки не делал. Как и не выражал согласия с ним.

Ну, значит тут мы согласны. На сём и порешим.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Ну вот. Снова от статистики к анекдотам.

Статистики? Я вам пример привожу для случая, когда статистика вам не помогает от слова совсем.

Точно так же и с языками программирования: если вам нужно решить задачу, для которой находящийся на первом месте по популярности JavaScript не подходит (например, драйвер для Linux-а запилить или сделать свой Redis с нардами и комсомольскими активистками), то популярность Си, C++ или Rust-а вас будет занимать далеко не в первую очередь.

Ну, значит тут мы согласны.

ХЗ в чем мы согласны. Я всего лишь говорю, что не делал утверждения про то, что весь востребованный софт написан на Си и C++.

Мне достаточно того, что на C++ было написано столько всего инфраструктурного, что существование C++ (как бы он кому-то не нравился) оправдалось и окупилось многократно.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Частных случаев (тем более гипотетических) можно напридумывать сколько и каких угодно. Они ничего не доказывают, не показывают и не объясняют. Ну, кроме способности имярека вертеться как уж на сковородке. Статистика же (я теряюсь отчего нужно объяснять столь простые и очевидные вещи) позволяет видеть всю картину и наблюдать закономерности, происходящие в индустрии, делать выводы и строить прогнозы.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Частных случаев (тем более гипотетических) можно напридумывать сколько и каких угодно.

Это не частный случай. Это простое следствие того, что у человека 32 зуба, 2 глаза, одна жопа и одно горло. Соответственно, чисто из арифметических соображений зубных врачей нужно в разы больше.

Можно считать это популярностью.

Из этой популярности можно делать какие-то выводы (например, если учиться на зубного врача, то, потенциально, без работы остаться сложнее, чем если учиться на офтальмолога). Но и то это будут так себе выводы, ибо:

  • не учитывается желание заниматься данным ремеслом;
  • не учитывается фактор моды (когда из-за всплеска популярности выпуск зубных врачей превышает имеющийся спрос).

Но сообращения популярности никак не влияют на тот факт, что без непопулярных профессий врачей не обойтись. Как и без не популярных языков программирования.

Если вы языки программирования оцениваете только по их популярности… Ну OK, такое тоже возможно. Только это мнение вряд ли имеет смысл воспринимать всерьез.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

у человека 32 зуба, 2 глаза, одна жопа и одно горло.

Замечательно. Теперь, внимание, вопрос: отчего доля стоматологов, офтальмологов, проктологов и оттоларингологов среди врачей начала меняться? Может случилось что.

Если вы языки программирования оцениваете только по их популярности… Ну OK, такое тоже возможно. Только это мнение вряд ли имеет смысл воспринимать всерьез.

И вот так незаметно, слово за слово сишники тихонечко двигаются в сторону загончика с лисперами. Какая ирония.

ugoday ★★★★★
()
Ответ на: комментарий от eao197

Это простое следствие того, что у человека 32 зуба, 2 глаза, одна жопа и одно горло. Соответственно, чисто из арифметических соображений зубных врачей нужно в разы больше.

Сам хоть понял, какую чушь спорол?

CrX ★★★★★
()
Ответ на: комментарий от ugoday

Может случилось что.

Допустим, случилось, и что? Вот были вы востребованным офтальмологом и вдруг узнали, что доля стоматологов увеливается. Пойдете переучиваться на зубного врача?

И вот так незаметно, слово за слово сишники тихонечко двигаются в сторону загончика с лисперами. Какая ирония.

А ведь где еще есть COBOL-щики которым так же пофиг на бредни комментаторов с LOR-а, как и Си-шникам, и Lisp-ерам.

eao197 ★★★★★
()
Ответ на: комментарий от CrX

Сам хоть понял, какую чушь спорол?

А вы коньяк по утрам пить уже перестали?

Ваш вопрос из той же категории.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Допустим, случилось, и что?

И мы можем сделать некий прогноз относительно будущего.

Вот были вы востребованным офтальмологом и … Пойдете переучиваться на зубного врача?

Может быть. Я так с OpenStack’а на AWS с K8S перепрыгнул. И очень правильно поступил! А может быть и нет. Я сам лично ничего против маргинальных технологий не имею, там часто есть прикольные фишечки и вообще взрослый человек имеет право программировать на чём хочет один или с окружающими (по согласию).

А ведь где еще есть COBOL-щики

Да, полагаю где-то в этих краях С++ и окажется.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Может быть.

А может быть и нет. Это все уже переходит в категорию демагогии.

Я так с OpenStack’а на AWS с K8S перепрыгнул.

И что, это что-то принципиально другое?

К примеру, во второй половине 1990-х я имел отношение к АСУТП. И C++ там был вполне себе оправданным выбором, естественным, я бы сказал. Но к концу 90-х в наших палестинах с АСУТП стало совсем грустно. И самая реальной альтернативой был бы какой-нибудь бухучет на clipper/foxbase или 1C. Смог бы я программировать на этих языках? Даже не вопрос. Захотел бы? Сильно вряд ли.

Да, полагаю где-то в этих краях С++ и окажется.

Вы, будучи человеком, вполне можете ошибаться. Но даже если вы правы, что из того?

eao197 ★★★★★
()
Ответ на: комментарий от eao197

<зануда>

не делал утверждения про то, что весь востребованный софт написан на Си и C++.

Я, кстати, тоже - нет. "Нет" в смысле "не делал".

</зануда>

r--r--r--
()
Ответ на: комментарий от eao197

Это все уже переходит в категорию демагогии.

От автора «зубов больше, чем глаз, значит стоматологов больше, чем офтальмологов».

И что, это что-то принципиально другое?

А java и C++ это принципиально другое?

Но даже если вы правы, что из того?

Ну, зачем-то вы мне отвечаете, спорите, доказывае что-то. Значит есть тут нечто важное (или хотя бы развлекательное).

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

От автора «зубов больше, чем глаз, значит стоматологов больше, чем офтальмологов».

А чем это отличается от того, что смартфонов гораздо больше, чем DNS-серверов, поэтому разработка приложений под мобильные платформы востребована больше, чем разработка DNS-серверов?

Прямое же влияние на популяность какого-нибудь Kotlin-а или Swift-а в сравнении с чистым Си.

А java и C++ это принципиально другое?

С точки зрения языка программирования просто другое.

С точки зрения прикладных областей, зачастую, очень и очень другое.

развлекательное

Вот это.

eao197 ★★★★★
()
Последнее исправление: eao197 (всего исправлений: 1)
Ответ на: комментарий от eao197

А чем это отличается

Количество глаз и зубов не меняется последние милллионы лет, а вот про ДНС и смартфоны мы такого сказать неможем. Смотреть зубами и кусать глазами нельзя, а вот написать DNS-сервер на котлине очень даже можно. Тоже важное отличие.

С точки зрения языка программирования просто другое. С точки зрения прикладных областей, зачастую, очень и очень другое.

Вот, так же и у AWS c OpenStack’ом. Глобально — что то облако, что другое облако. А начнёшь разбираться — просто разные технологии.

Вот это.

Вот я и развлекаюсь, глядя как мейнстримщики становятся маргиналами.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Количество глаз и зубов не меняется последние милллионы лет

Только вот потребность в их лечении сильно поменялось. Например, из-за продолжительности жизни. Еще 200 лет назад лечение зубов у 80-летних стариков была такой же частой процедурой, предположу, как и лечение инфарктов у 30-летних. Прошло 200 лет и как все изменилось.

А начнёшь разбираться — просто разные технологии.

Технологии технологиями, а с предметными областями что?

Например, переход из АСУТП в бухучет или из телекома в мобильный геймдев – это совсем не проблема используемых там технологий.

глядя как мейнстримщики становятся маргиналами.

Для меня лично С++ еще недостаточно маргинален. Слишком много здесь модного и молодежного (в том числе и стараниями комитета), и слишком много о нем наслышаны чтобы с умным видом рассуждать о перспективах C++.

Вот в PL/1, REXX, Cobol, Ada, Eiffel практически никто не разбирается, поэтому и срачей вокруг них нет.

eao197 ★★★★★
()
Последнее исправление: eao197 (всего исправлений: 1)
Ответ на: комментарий от eao197

Еще 200 лет назад

Ну и память у вас, дедушка.

а с предметными областями что?

Да, как считать. С точки зрения того, кто облако строит — вообще разные вещи. OpenStack строишь сам, AWS — покупаешь готовый. С точки зрения того, кто пользуется — разные сервисы, разные (но иногда совместимые) API, разные возможности и ограничения. Логика, в общем, схожая, но как начнёшь погужаться в детали … А вот конечному пользователю, которому сделали «нажал на кнопку, получил вычислительный узел», уже и пофиг, наверное.

С++ еще недостаточно маргинален.

Я надеюсь, мы тут все проживём ещё долгие годы. Торопиться некуда.

ugoday ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.