Позиция C++ среди популярных ЯП и его изучение
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 11.07.24 12:48
Оценка: 26 (8)
Тут периодически поминают А.В. Столярова, известного своими ортодоксальными взглядами, ненавистью к Комитету и т.п. Почитав дискуссии с его участием, однозначно вижу, что во многом он перегибает палку, но многое становится понятным, если учесть, что он преподаватель, и много лет проработал на кафедре ВМК МГУ — одном из немногих мест в России, где еще более-менее умеют адекватно учить программированию.

У меня в архиве давно валялась его книга "Введение в язык C++", но я даже не пытался ее читать, поскольку основная масса таких книг, написанных за последние двадцать лет, выглядит довольно уныло. А вчера, чисто интереса ради, открыл, и прямо с введения затащился от того, насколько хорошо дядька понимает суть программирования, как профессии (собственно, у него во всех книгах акцент на профессии, как таковой, а не на конкретных языках/системах). Он пишет о многом из того, что я тут регулярно поминаю уже много лет — а ведь мы с ним, судя по всему, вообще никак не общались, даже косвенно.

Он совершенно прав в том, что C/C++ — уникальные языки, по меньшей мере среди известных:

Автору этих строк представляется очевидным, что язык Си (чистый Си) смог стать тем, чем он стал, и занять его нынешнюю нишу благодаря двум своим очевидным свойствам: во-первых, жесткой и очевидной границе между самим языком и его библиотекой, сколь бы "стандартной" она ни была, и, во-вторых, достижимости "zero runtime", т.е. возможности использования созданных компилятором объектных модулей без поддержки со стороны поставляемых с компилятором библиотек. В отсутствие любого из этих свойств язык программирования оказывается неприменим для программирования на "голом железе" (т.е. для ядер операционных систем и для прошивок микроконтроллеров) и, как следствие, не может претендовать на универсальность. Тем удивительнее, сколь упорно создатели "стандартов" пытаются изничтожить оба этих свойства, причем как в Си++, так и в чистом Си".

Подавляющее большинство «современных программистов» реально не видят принципиальной разницы между Си++ и, к примеру, тем же Питоном или Джавой, a все «новые технологии» (включая и новые «стандарты») предпочитают встречать с каким-то нездоровым восторгом, полностью отключив свои способности к критическому мышлению.


Большинство нынешних программистов не мыслит использования Си++ в отрыве от стандартной библиотеки шаблонов (STL)


исходно Си++ представлял собой интереснейшее явление в мире программирования — единственный в своём роде язык произвольного уровня, то есть такой, который позволял заниматься как низкоуровневым (почти ассемблерным), так и сколь угодно высокоуровневым программированием, причём все нужные здесь и сейчас абстракции высокого уровня можно было тут же и создать, не полагаясь на «доброго дядю». Логику построения языка (в той его версии) нельзя было назвать совсем безупречной, но она хотя бы существовала, и, более того, на все её недочёты можно было не обращать внимания как нечто не слишком важное. В «современном» Си++ всего этого уже давно не видно под горой семантического хлама. Следует подчеркнуть, что изначальный Си++ никуда не делся, его возможности по-прежнему используются (хоть в реализации той же пресловутой стандартной библиотеки) — но уловить существовавшую когда-то концептуальную структуру практически невозможно, слишком много чужеродных возможностей этому мешает.


Основной признак уникальности C и "традиционного C++" в том, что на них можно примерно с одинаковой степенью комфорта написать практически весь софт "общего плана", начиная с прошивок самых мелких устройств, ядра и его драйверов, и заканчивая сложными системами с гуем, обработкой текстов/изображений/звука, многопоточностью, распределенными вычислениями и прочим. При этом, если писать на C, то с ростом сложности и объема трудоемкость растет экспоненциально, а C++ позволяет достаточно долго удерживать ее почти линейной. И все это без проблем может совмещать один человек — многие параллельно делают на C/C++ и прошивки к самым мелким МК, и весьма навороченный софт для "большого" компьютера, к которому этот МК подключается.

Поначалу, переход от C к C++ вообще никак не затронул нижней границы применимости, но очень серьезно поднял верхнюю границу. Но с течением времени Комитет упорно двигает C++ к такому состоянию, в котором нижняя граница поднимается качественно (систем, в которых можно реализовать хотя бы такое подмножество, без которого большинство программистов попросту неспособно пользоваться языком, все меньше и меньше), а верхняя — лишь количественно (что-то писать становится чуть короче, что-то — чуть безопаснее, но принципиально ничто не меняется). При этом и буква, и дух стандартов и литературы по C++ неуклонно движутся от "зависит от реализации, применять с осторожностью, учитывая особенности" к "запрещено, недопустимо, может повлечь катастрофические последствия".

Тем, кто знаком с электроникой, это напоминает идею "давайте забудем про транзисторы и принципы их работы, и все активные узлы будем делать в виде функциональных микросхем, внутреннее устройство которых непринципиально". Тем, кто разбирается в автомеханике — "водителю не нужно знать устройства трансмиссии и подвески, его дело — крутить руль и нажимать педали газа/тормоза".

Судя по всему, это происходит потому, что и в Комитете, и среди "активистов развития" все меньше и меньше людей, не только лично способных работать "снизу доверху", но и просто достаточно хорошо знакомых с работой вычислительной системы на всех уровнях. И само по себе это не плохо, если б речь шла об эволюции какого-нибудь нишевого языка, вроде Fortran или LISP. Но беда-то в том, что изначальная универсальность и широта применения C++ привела к тому, что он давно и прочно стал эталоном программирования, как профессии. Если когда-то "всемогущим" программистом считали только того, кто умеет в ассемблер, то сейчас им считают того, кто умеет в C++. Но умеющий в ассемблер, как правило, достаточно хорошо понимает, каким образом к нему сводятся все остальные языки. Когда-то и средний программист на C++, даже не зная ассемблера, неплохо понимал "кухню" вычислительной системы, и хотя бы примерно представлял, как в итоге будет организовано "на железе" выполнение программы, обработка данных, взаимодействие и т.п. А средний современный программист на C++ понимает все это не лучше, чем средний программист на той же Java. Он считает, что программирование — это просто запись алгоритма конструкциями языка, а достойный результат — это просто программа, которая работает в соответствии с ТЗ и не слишком выделяется на общем фоне по требованию к ресурсам.

Следствием такого подхода становится то, что C++ уверенно дрейфует с позиции уникального и универсального языка к позиции "просто еще одного ЯВУ". И если его приверженцы долгое время согласны были терпеть многие недостатки языка лишь ради этих самых уникальности/универсальности, то с каждой новой версией стандарта становилось понятно, что ряд этих недостатков, скорее всего, не будет устранен никогда — то, что с ними связано, удобнее объявить устаревшим, а взаимен предложить очередную идею, философия которой вроде бы изящна, а техническая реализация — уродлива. Это чем-то напоминает пожилую черную актрису в роли Белоснежки: с одной стороны — "сняты дискриминационные ограничение по возрасту и цвету кожи", а с другой — есть ощущение чего-то фундаментально неправильного.

Поскольку C++, как уже говорилось, намертво завязан и на понимание "программирования вообще", как профессии и отрасли целиком, и на обучение программированию, то еще не так давно, пока среди приверженцев C++ было много "специалистов широкого профиля", на одном C++ реально можно было обучить универсального специалиста, способного работать на любом уровне иерархии, где хоть как-то применимы алгоритмические языки. Это не к тому, чтоб один человек тащил всю разработку, а к тому, что хорошее знание единственного ЯП позволяет понимать, как работает все остальное — от микрокода до самого навороченного софта. Наличие в коллективе разношерстных программистов хотя бы одного такого специалиста практически гарантирует, что он в состоянии понять суть проблемы любого из них просто по общему описанию, даже без знания подробностей конкретного ЯП. Если такого специалиста нет, заменить его может только программист, одинаково хорошо владеющий и ЯВУ, и каким-нибудь ассемблером или C, а такие люди уже давно стали большой редкостью.

У того, кто понимает C++ не только со стороны идеологии/стандарта, но и со стороны реализации, крайне редко возникает ощущение, что на нем "невозможно" или "очень трудно" реализовать какую-либо задачу. У того, кто столь же хорошо понимает любой другой язык, такое ощущение возникает гораздо чаще. Программист, хорошо владеющий C++, четко понимает, что он в состоянии реализовать на нем любую парадигму, переписать на него программу с любого другого ЯВУ, пусть и не слишком легко и очевидно. Программист, сколь угодно хорошо владеющий другими языками, такой возможности не имеет — там границы применимости очерчены достаточно четко.

Тем, кто думает, будто программирование на одном языке "ограничивает мышление", надо напомнить, что практически вся современная наука и техника возникла в среде английского языка. Он оказался одновременно и достаточно емким, и достаточно простым, чтобы одинаково удобно выражать как простые понятия, так и сложные. Инженеру, изначально хорошо знающему английский, изучение других языков не поможет развиться в профессии, хоть и обогатит культурно; любую идею материального мира нетрудно выразить на английском.

Это всё я не к тому, что всем нужно ограничиться только C++ или только английским. Но английский, став по факту "языком мировой науки и техники", ничуть не потерял в своем качестве. Специфические понятия из других языков, вроде zen, nirvana, ordnung или vodka, лишь расширяют его, никак не затрагивая основ — все сколько-нибудь базовые понятия по-прежнему легко и компактно выражаются на английском, не требуя привлечения другого языка лишь для того, чтобы описать понятие или явление. А включение в C++ идей и парадигм из других языков привело к тому, что "настоящим C++" стал считаться этот самый "современный диалект".

Чем-то это мне напоминает современную постмодернистскую культуру, в которой центральную роль играет отсылка к уже известному ("все важное уже создано до нас") и искусство тонкого намека. Умение формулировать мысль своими словами ценится все меньше и меньше, на первое место выходит умение вставить подходящую цитату, крылатое выражение, картинку/комикс, фрагмент из фильма. Это все, безусловно, очень ценно, но лишь в сочетании с умением создавать свое из простых элементов.

Получилось сумбурно. По-хорошему, такие вопросы надо рассматривать, как минимум, в большой статье, но нет ни времени, ни желания ее сочинять — все равно мало кто поймет.
Re: Позиция C++ среди популярных ЯП и его изучение
От: пффф  
Дата: 11.07.24 13:09
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Поначалу, переход от C к C++ вообще никак не затронул нижней границы применимости, но очень серьезно поднял верхнюю границу. Но с течением времени Комитет упорно двигает C++ к такому состоянию, в котором нижняя граница поднимается качественно (систем, в которых можно реализовать хотя бы такое подмножество, без которого большинство программистов попросту неспособно пользоваться языком, все меньше и меньше)


Суть всего текста, как я понимаю, в этой фразе?

Расскажи же, что мешает? На C++ даже для чайников прошивки пишут без всяких проблем. Это дцать лет назад частенько было так, что под железку кроме голенькой сишечки ничего нет, но это давно уже не так
Re: Позиция C++ среди популярных ЯП и его изучение
От: andyp  
Дата: 11.07.24 13:14
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Получилось сумбурно. По-хорошему, такие вопросы надо рассматривать, как минимум, в большой статье, но нет ни времени, ни желания ее сочинять — все равно мало кто поймет.


Это точно. Не понял, как люди в комитете не дают писать без стандартной либы, большая часть которой к тому же header-only и тоже вполне себе zero-runtime. Просто не линкуйся с ней и всего делов-то. Линкер скажет, что тебе надо выкинуть
Re[2]: Позиция C++ среди популярных ЯП и его изучение
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 11.07.24 13:25
Оценка:
Здравствуйте, пффф, Вы писали:

П>На C++ даже для чайников прошивки пишут без всяких проблем. Это дцать лет назад частенько было так, что под железку кроме голенькой сишечки ничего нет, но это давно уже не так


Фишка в том, что современные железки размером с ноготок, для которых пишутся те прошивки, предоставляют ресурсы, которые во времена становления C++ выглядели пределом мечтаний для многих серьезных систем. Для них любой чайник напишет прошивку хоть на питоне, будь он там реализован, и во многих случаях она даже будет работать с пристойной скоростью.
Re: Позиция C++ среди популярных ЯП и его изучение
От: kov_serg Россия  
Дата: 11.07.24 13:32
Оценка: 1 (1) -1
Здравствуйте, Евгений Музыченко, Вы писали:

...
ЕМ>У того, кто понимает C++ не только со стороны идеологии/стандарта, но и со стороны реализации, крайне редко возникает ощущение, что на нем "невозможно" или "очень трудно" реализовать какую-либо задачу. У того, кто столь же хорошо понимает любой другой язык, такое ощущение возникает гораздо чаще. Программист, хорошо владеющий C++, четко понимает, что он в состоянии реализовать на нем любую парадигму, переписать на него программу с любого другого ЯВУ, пусть и не слишком легко и очевидно. Программист, сколь угодно хорошо владеющий другими языками, такой возможности не имеет — там границы применимости очерчены достаточно четко.
...

Да всё правильно, C++ развивают куда-то не в ту сторону, и под действием тяжелых наркотиков.

ЕМ>Получилось сумбурно. По-хорошему, такие вопросы надо рассматривать, как минимум, в большой статье, но нет ни времени, ни желания ее сочинять — все равно мало кто поймет.

Меня так очень напрягает закрытость C++ например таблица виртуальных методов, недоступна так еще и может изменяться компилятором, указатели на члены классов. Это очень хреново для экспорта интерфейсов.
Так же и с корутинами всё спрятано, от глаз долой и сериализация или взаимодействие со сторонним кодом, примерно никак. Вообще изначально C++ была просто надстройкой над C. А со временем
превратилось в черте что, непредставимые значения, указатели и метаинформацией не представимой в runtime и куча других з@&6ов.
Теперь есть скриптовые языки (например lua) которые могут выполнять роль этой надстройки и генерить bolerplate код и язык можно развивать в любом гараже, не оборачиваясь на стандарт. И для этого достаточно любого c-ного компилятора любой древности.

ps: почему php взлетел, потому как там весь набор инструментов был из коробки. В c++ стандартная библиотека даже растровую графику еще не осилила, не говоря уже о gui. Подключение всяких opengl, vulkan идёт через генерацию кода на python-не. Динамические библиотеки для c++ вообще спотыкач знатный. Про совместимось вообще можно только плакать. Трамплины для вызова функций для разных реализаций в зависимости от возможностей процессора, выполняются костылями или еще лучше просто забивают и требую наличие, используемых расширений, а если нет просто падают с загадочными ошибками.
Re[3]: Позиция C++ среди популярных ЯП и его изучение
От: пффф  
Дата: 11.07.24 13:33
Оценка: +2 :)
Здравствуйте, Евгений Музыченко, Вы писали:

П>>На C++ даже для чайников прошивки пишут без всяких проблем. Это дцать лет назад частенько было так, что под железку кроме голенькой сишечки ничего нет, но это давно уже не так


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


Ну, это не так. Вполне себе куча железок, у которых и флэш, и озу измеряется в единицах килобайт, и ничего, нормально на плюсах под них можно писать, и скорости тоже не космические, единицы мегагерц
Re: Позиция C++ среди популярных ЯП и его изучение
От: so5team https://stiffstream.com
Дата: 11.07.24 13:39
Оценка: +1 -3
Здравствуйте, Евгений Музыченко

А зачем вы этот текст на форуме запостили?

Если это ваше личное мнение, то для такого мнения самое место в персональном блоге. Ну или на Хабре.

Здесь то вы какой фидбэк от людей хотите получить?
Re[4]: Позиция C++ среди популярных ЯП и его изучение
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 11.07.24 14:05
Оценка: +1
Здравствуйте, пффф, Вы писали:

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


Под них можно писать не на "плюсах", а на определенном подмножестве языка. Когда-то граница этого подмножества была достаточно хорошо видна, но со временем она очень сильно размылась. Работоспособную прошивку под мелкий МК на C++ в состоянии написать тот, кто изучал язык "снизу", в то время, как его преподавание уже давно и привычно идет "сверху". В результате сама идея использования языка в отрыве от STL и шаблонной магии воспринимается даже не как пересаживание с автомобиля с АКПП на автомобиль с РКПП, а скорее как переезд из комфортабельной городской квартиры в сельский барак с рукомойником и сортиром на улице.

Претензии даже не столько к языку — им по-прежнему можно достаточно эффективно манипулировать, а к тому, как язык подается и в стандартах, и в сообществах. Этот подход ведет к тому, что среди "программистов на C++" становится все меньше способных применять его уникальные возможности там, где без них никак, а большинство действительно не видит принципиальной разницы с другими языками.

Сколько Вы, например, знаете разработчиков для мелких МК, которые действительно пишут свои прошивки на С++? Большинство тех, кого знаю я, пишет исключительно на "голой сишечке", воспринимая плюсы, как лютого монстра. В этом заслуга и сообщества программистов, и преподавателей.
Re[5]: Позиция C++ среди популярных ЯП и его изучение
От: пффф  
Дата: 11.07.24 14:32
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

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


ЕМ>Под них можно писать не на "плюсах", а на определенном подмножестве языка. Когда-то граница этого подмножества была достаточно хорошо видна, но со временем она очень сильно размылась. Работоспособную прошивку под мелкий МК на C++ в состоянии написать тот, кто изучал язык "снизу", в то время, как его преподавание уже давно и привычно идет "сверху". В результате сама идея использования языка в отрыве от STL и шаблонной магии воспринимается даже не как пересаживание с автомобиля с АКПП на автомобиль с РКПП, а скорее как переезд из комфортабельной городской квартиры в сельский барак с рукомойником и сортиром на улице.


Полагаю, можно и без отключения фич. А так — ну, обычно RTTI/исключения отрубаются, но, полагаю, и с ними можно, просто не нужно и место лишнее занимает. Динамическая память? С ней вполне можно. Что ещё?

От STL не обязательно при этом отрыватся, вполне себе используется.


ЕМ>Претензии даже не столько к языку — им по-прежнему можно достаточно эффективно манипулировать, а к тому, как язык подается и в стандартах, и в сообществах. Этот подход ведет к тому, что среди "программистов на C++" становится все меньше способных применять его уникальные возможности там, где без них никак, а большинство действительно не видит принципиальной разницы с другими языками.


Что не так со стандартом и с сообществами?


ЕМ>Сколько Вы, например, знаете разработчиков для мелких МК, которые действительно пишут свои прошивки на С++? Большинство тех, кого знаю я, пишет исключительно на "голой сишечке", воспринимая плюсы, как лютого монстра. В этом заслуга и сообщества программистов, и преподавателей.


Хм, в разное время в разных конторах — ну, человек 50 знаю. В третьей конторе работаю под железки, везде на плюсах пишут. И это не какие-то академические круги, а вполне себе обычная промышленность. В последней так вообще, шаблон на шаблоне и constexpr'ами погоняет. А вот сишечников знал ровно одного — он с PICа пришел, старый дедпожилой мужчина за 60.

Не, ну может у нас не мелкие МК, ладно. Вот под PIC — там по-моему, плюсов нет и видимо не будет. Потому что не нужно. Там такие смешные возможности, что что-то сложное на нём просто невозможно не сделать, и софт, соответственно, самый примитивный, который и на чистой сишечке за полдня с перекурами пишется
Re: Позиция C++ среди популярных ЯП и его изучение
От: LaptevVV Россия  
Дата: 11.07.24 15:13
Оценка:
выделю ключевое для меня.

А средний современный программист на C++ понимает все это не лучше, чем средний программист на той же Java. Он считает, что программирование — это просто запись алгоритма конструкциями языка, а достойный результат — это просто программа, которая работает в соответствии с ТЗ и не слишком выделяется на общем фоне по требованию к ресурсам.

Происходит ровно то, что и со всеми предметными областями и мастерами в них.
Инфляция профессии.
И не С++ здесь виноват.
Когда-то немного мастеров создавали уникальные скрипки.
Сейчас тоже немного мастеров создают уникальные скрипки.
Но для "среднего" потребителя клепают "средние" скрипки в массовом порядке.
Средних потребителей с со средним уровнем знаний и умений стало гораздо больше, чем было во времена Страдивари, Амати и Гварнери.

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

Для таких средних создан язык Go, который делали как раз НЕ средние программисты.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Позиция C++ среди популярных ЯП и его изучение
От: alpha21264 СССР  
Дата: 11.07.24 16:03
Оценка: 21 (2) +5 :)
Здравствуйте, so5team, Вы писали:

S>А зачем вы этот текст на форуме запостили?


Извините, но наш сайт предназначен именно для обсуждения подобных тем.
Не всё же время нам Шимжу и Химика обсуждать!

Течёт вода Кубань-реки куда велят большевики.
Re: Позиция C++ среди популярных ЯП и его изучение
От: reversecode google
Дата: 11.07.24 16:28
Оценка: -1
для тех кто не следит за действием комитета
сообщаю
что комитет создал рабочую группу если не ошибаюсь, как минимум несколько лет назад
которая следит за тем что бы язык развивался в нужном направлении
что бы С++ не уходил в абсурд и не становился слишком сложным для изучающих его
Re[2]: Позиция C++ среди популярных ЯП и его изучение
От: kov_serg Россия  
Дата: 11.07.24 16:32
Оценка:
Здравствуйте, reversecode, Вы писали:

R>что комитет создал рабочую группу если не ошибаюсь, как минимум несколько лет назад

R>которая следит за тем что бы язык развивался в нужном направлении
R>что бы С++ не уходил в абсурд и не становился слишком сложным для изучающих его

Точно следят? Вы новую рефлексию видели?
Что мешает для любой сущности иметь имя? Нафига польскую нотацию из закорючек добавлять?
Re[3]: Позиция C++ среди популярных ЯП и его изучение
От: so5team https://stiffstream.com
Дата: 11.07.24 16:34
Оценка: -1 :)
Здравствуйте, alpha21264, Вы писали:

S>>А зачем вы этот текст на форуме запостили?


A>Извините, но наш сайт предназначен именно для обсуждения подобных тем.


Что, правда?

И, я так полагаю, мне это пишет человек, который уже что-то добавил в эту самую тему. Как нет?

Мне думается, что данный форум полезен для вещей вроде:

— кто-то обратился за помощью. Мол, не понимаю, не работает, не могу разобраться;
— кто-то поделился информацией. Мол, рефлекшен и экзекушен в C++26 будут, вот пропозалы + некая своя боль (или радость) от этой информации;
— кто-то поделился тем, что сделал. Мол, вот запилили такую вот фигню, кто еще не начал пилить свою может посмотреть на нашу;
— кто-то поделился тем, что собирается сделать. Мол, собираюсь написать пропозал на вот такую вот фигню, кто поддержит/поможет или отговорит.

Т.е. есть конкретная польза.

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

Такой спич где-то в личном блоге, в каком-нибудь LinkedIn или на каком-нибудь Habr-е или Medium -- более чем OK.

Но вот здесь, на форуме куда люди приходят за конкретной помощью?

Жалко, что Евгений опять прикинулся ветошью и примолк. Хотелось бы услышать начальника транспортного цеха.

A>Не всё же время нам Шимжу и Химика обсуждать!


Да, поэтому давайте добавим клоунов из другого б**дского цирка.
Re[3]: Позиция C++ среди популярных ЯП и его изучение
От: reversecode google
Дата: 11.07.24 16:37
Оценка: -1
откуда я знаю что они делают
я знаю что группу создали и ее задачи описал
там было чуть шире в их задачах
я всего не упомню

если кому не лень
найдите документы декларирующий все это
пусть все узрят
Re[4]: Позиция C++ среди популярных ЯП и его изучение
От: kov_serg Россия  
Дата: 11.07.24 16:44
Оценка:
Здравствуйте, reversecode, Вы писали:

R>откуда я знаю что они делают

R>я знаю что группу создали и ее задачи описал
R>там было чуть шире в их задачах
R>я всего не упомню

R>если кому не лень

R>найдите документы декларирующий все это
R>пусть все узрят

Это? https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2000r4.pdf
Re[4]: Позиция C++ среди популярных ЯП и его изучение
От: m2user  
Дата: 11.07.24 16:51
Оценка:
S>Какая польза от спича в заглавном сообщении этой темы именно на форуме я не понимаю.
S>Такой спич где-то в личном блоге, в каком-нибудь LinkedIn или на каком-нибудь Habr-е или Medium -- более чем OK.

Если я правильно понимаю, то даже если бы статья была размещена в блогах (blogs.rsdn.org), то обсуждение (комменты) всё равно было бы в тематическом форуме.
Например смотрите статьи в блоге Велкина: http://blogs.rsdn.org/effective/8733954
Комментарии к статье повторяют тему в форуме "Управление проектами" http://rsdn.org/forum/management/8733954
Автор: velkin
Дата: 18.04.24


Т.е. статьи обсуждают в форумах, и это by design на RSDN.
Re: Позиция C++ среди популярных ЯП и его изучение
От: Pzz Россия https://github.com/alexpevzner
Дата: 11.07.24 17:29
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>При этом, если писать на C, то с ростом сложности и объема трудоемкость растет экспоненциально, а C++ позволяет достаточно долго удерживать ее почти линейной.


Вот с этим не соглашусь. Экспоненциально она растет, когда сложность переполняет голову автора, и он теряет контроль над собственной программой. Но это не свойство языка, а свойство головы автора, его способность держать под контролем возрастающую сложность системы.

EM>И все это без проблем может совмещать один человек — многие параллельно делают на C/C++ и прошивки к самым мелким МК, и весьма навороченный софт для "большого" компьютера, к которому этот МК подключается.


Может. Что в сишечке все же раздражает, это отсутствие более-менее стандартной и общепринятой библиотечной поддержки уровня абстракции чуть выше, чем printf(). Ну раздражает в каждом проекте опять делать реализацию динамических строк и протокола HTTP, ну честное слово. Это не сложно, это муторно.

ЕМ>Тем, кто знаком с электроникой, это напоминает идею "давайте забудем про транзисторы и принципы их работы, и все активные узлы будем делать в виде функциональных микросхем, внутреннее устройство которых непринципиально". Тем, кто разбирается в автомеханике — "водителю не нужно знать устройства трансмиссии и подвески, его дело — крутить руль и нажимать педали газа/тормоза".


А не попытка ли это сделать программиста взаимозаменяемым — довольно наивная, но востребованная бизнесом, который верит в такую возможность?

ЕМ>Следствием такого подхода становится то, что C++ уверенно дрейфует с позиции уникального и универсального языка к позиции "просто еще одного ЯВУ".


Я б не стал сейчас начинать новый проект ни на Си, ни на C++. Ну, по крайней мере, при наличии у меня выбора.

ЕМ>Получилось сумбурно. По-хорошему, такие вопросы надо рассматривать, как минимум, в большой статье, но нет ни времени, ни желания ее сочинять — все равно мало кто поймет.


Такие вопросы надо рассматривать за кружкой пива
Re[2]: Позиция C++ среди популярных ЯП и его изучение
От: Pzz Россия https://github.com/alexpevzner
Дата: 11.07.24 17:36
Оценка: 15 (1)
Здравствуйте, LaptevVV, Вы писали:

LVV>Происходит ровно то, что и со всеми предметными областями и мастерами в них.

LVV>Инфляция профессии.

Обидно то, что программирование, как профессия, индустриализировалось раньше времени.

Вот в автомобилестроении, по большому счету, за последние 100 лет не произошло ничего нового. Автомобили можно смело ставить на конвеер и выпускать на заводе. Что Генри Форд, собственно, и сделал.

А с програмизьмом поторопились.

LVV>Для таких средних создан язык Go, который делали как раз НЕ средние программисты.


Язык Go создан для того, чтобы мысли, которые будоражили голову Пайка и прошли через шесть других языков, не столь широко известных, наконец реализовались в чем-то законченном.

Судя по тому, что Пайк свалил таки на пенсию, Go выполнил свою задачу.
Re[2]: Позиция C++ среди популярных ЯП и его изучение
От: Pzz Россия https://github.com/alexpevzner
Дата: 11.07.24 17:37
Оценка: +3
Здравствуйте, reversecode, Вы писали:

R>что бы С++ не уходил в абсурд и не становился слишком сложным для изучающих его


По-моему, он уже лет 20 назад достиг той стадии, когда более-менее полноценно язык знают только разработчики компиляторов. Ага, все 20 человек или около того во всем мире.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.