Здравствуйте, Marty, Вы писали:
A>>Я лично переносил охрененного размера проект с VC6 на 7.1. Так там поломали буквально основы. Одна только смена скоупа for с глобального на локальный чего стоила. И что? И ничего. Взял да перенёс. Все эти суттеры, по-моему, просто не очень умные, если сравнивать с Хейлсбергом, например. Охрененное нашли оправдание для своей игры в Дженгу.
M>Ну, к слову, у VC6 была кривая реализация плюсов в этом моменте. Я тоже эту проблему застал в своё время, но я тогда на бормане пилил, там было нормально, а вот при попытке собрать вижуалкой начинали лезть проблемы
Это было всё равно, что переписывать с одного языка на другой, настолько большими были изменения. То, что проекты не компилировались — само собой. И даже те, кто на бормане пилил, помнят — эта проблема тогда коснулась о-о-очень многих.
А Суттер явно не в курсе. Спрашивается, чем тогда он занимался? Жить нас учил?
Я бы даже так сказал. Когда за развитием языка стояли компиляторщики (реальные инженеры), а не комитеты (дуболомы-астронавты), это была не "кривая реализация плюсов в этом моменте", а золотой век языка.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Здравствуйте, CEMb, Вы писали:
CEM>Ну, имелась ввиду активная позиция языка, а не просто что у нас есть N кода, и все (пока ещё) вынуждены его терпеть использовать
Когда появились Java и C#, то C++ был несколько заброшен, на нём мало начинали новых проектов. По прошествии времени стало понятно, что ни Java, ни C# не достигли тех вершин, что им пророчили и маятник ресурсов снова качнулся в сторону С++. Трудно сказать почему. Может из-за требований к ресурсам, может из-за совместимости с C, а может из-за естественного фильтра в уровне разработчиков. У меня при прочтении исходной статьи вообще сложилось впечатление, что она написана от лица каких-то "обиженок": ой-йой не дали поломать ABI ! Не понимаю: разве кто-то запрещает? Хотите ломать — ломайте, исходники открыты, а мы со стороны посмотрим. Если пойдёт к пользе дела, то и народ потянется... Зачем тут какая-то непонятная "активная позиция языка"?
CEM>На плюсах, на самом деле, тоже легко разрабатывать.
По сравнению с C — да, а вот по сравнению с C# — не уверен.
CEM>Просто получается, что: CEM>1. Часто чуть дольше, чем на той же яве, в общей массе потенциальных проектов. CEM>0. Спецов нету, которые умеют (убедить топов-идиотов что можно) быстро разрабатывать на плюсах CEM>Или я не прав?
Дольше или нет — зависит от уровня разработчиков, организации труда и сложности задачи. C++ не для простых задач.
Спецов нету, поэтому проект выйдет дороже или вообще не выйдет.
CEM>>>в том, сколько на нём сейчас разрабатывается, BFE>>Не разрабатывается, а используется. Есть очень много, чего разрабатывалось, а потом выкидывалось. CEM>А почему?
Деньги кончались раньше, чем продукт становился пригодным к использованию
CEM>>> в большом количестве преимуществ перед другими ЯП. BFE>>И преимущества эти выражаются в наличии стандарта. CEM>Бизнесу пофиг на стандарт, это только технари понимают, а бизнесу надо "как можно быстрее и дешевле".
Для малого бизнеса это так, а вот для большого...
Теоретически стандарт удешевляет разработку, так как не нужно учить диалект языка.
Стандарт позволяет в какой-то мере быть независимым от владельца языка. Тут показательна история с Java, когда штатовский суд запретил Microsoft разрабатывать свою (разумеется несовместимую, но главное свою) версию языка. Так появился C#.
CEM>Ну, мы-то понимаем, что в долгосрочной перспективе плюсы это как раз быстро и дёшево, но кроме нас сложно объяснить кому-то. Ну вот Яндех на плюсах пишет. Хуавей прям поклонники плюсов. Ну и всё, получается?
Я не знаю. Последний и текущий проект на котором я работаю — это изначально было переписывание с C# на C++.
We must minimize the need to change existing code. For adoption in existing code, decades of experience has consistently shown that most customers with large code bases cannot and will not change even 1% of their lines of code in order to satisfy strictness rules, not even for safety reasons unless regulatory requirements compel them to do so.” – Herb Sutter
Я лично переносил охрененного размера проект с VC6 на 7.1. Так там поломали буквально основы. Одна только смена скоупа for с глобального на локальный чего стоила. И что? И ничего. Взял да перенёс. Все эти суттеры, по-моему, просто не очень умные, если сравнивать с Хейлсбергом, например. Охрененное нашли оправдание для своей игры в Дженгу.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Здравствуйте, Великий Реверс, Вы писали:
ВР> был проездом в далеком будущем ВР> землю уже посетили несколько внеземных цивилизаций ВР> и установили прочную связь с ней ВР> опять строятся пирамиды
ВР> про саттера там никто ничего не помнит ВР> за то С++ знают все и каждый
ВР> конечно он не такой как мы его знаем ВР> за сотню тысяч чет претерпел сильных изменений ВР> но все же, основа вся так же от С++
Здравствуйте, netch80, Вы писали:
N>Сравнивать с C++ малоосмысленно потому, что он как раз после долгого застоя, но сдвинулся и развивается.
Мы тут с D сравниваем Который как раз имеет противоположную тенденцию — когда развивался, а сейчас непонятно, что с ним, и нужен ли он кому-то, когда в С++ уже скоро добавять вычисление вопроса жизни, смерти и всего остального на этапе компиляции.
Я даже не знаю, как резюмировать эту статью, ибо она и так представляет собой выжимку текущего состояния проблем в С++:
* нет изменению ABI
* нет аннотациям по времени жизни объектов
* модулей всё ещё нет
* Herb Sutter топит за свои Safety Profiles, но при этом признаёт, что никто ничего не будет переписывать в легаси коде
* бигкорпы расходятся и С++ им уже не интересен: кто-то пошёл к Rust, кто-то пилит своего убийцу С++
Главная проблема этого языка — люди. Люди, которые на любую критику и недовольство начинают брызгать слюной. А в результате, Раст возьмёт за одну ногу, Карбон за другую, и что от него останется?
Засекаем, как быстро прибежит ... Раз, два, три.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Здравствуйте, Alekzander, Вы писали:
A>Я лично переносил охрененного размера проект с VC6 на 7.1. Так там поломали буквально основы. Одна только смена скоупа for с глобального на локальный чего стоила. И что? И ничего. Взял да перенёс. Все эти суттеры, по-моему, просто не очень умные, если сравнивать с Хейлсбергом, например. Охрененное нашли оправдание для своей игры в Дженгу.
Ну, к слову, у VC6 была кривая реализация плюсов в этом моменте. Я тоже эту проблему застал в своё время, но я тогда на бормане пилил, там было нормально, а вот при попытке собрать вижуалкой начинали лезть проблемы
Здравствуйте, cppguard, Вы писали:
C>Хотя, если смотреть с другой стороны, Erlang тоже не нашёл своей славы, а ведь задумка и реализация были неплохими.
У Erlang свои проблемы: косность core team (как бы она ни звалась), отказ от необходимых изменений (множественные очереди, JIT), который убил огромные потенциальные поля применения, наконец, лень "ширнармасс" делать по науке (его эти знаменитые обновления на ходу — вместо этого всё пакуют в контейнеры и рестартуют их).
Сравнивать с C++ малоосмысленно потому, что он как раз после долгого застоя, но сдвинулся и развивается.
Здравствуйте, cppguard, Вы писали:
C>Мы тут с D сравниваем Который как раз имеет противоположную тенденцию — когда развивался
Даже когда он развивался, то оказалось, что он мало кому нужен. Тогда мало кого интересовали нативные языки со сборкой мусора, Java и C#, а так же Python с Ruby рулили и педалили во всю. Это чуть позже, когда появился Go и контейнеризация приложений в Docker, внезапно (с) выяснилось, что маленькие нативные бинарники и программки на безопасном языке с GC, которые быстро компилируются -- это хорошо. Но когда это выяснилось, то оказалось, что D не способен в достаточной мере стабилизироваться, уже есть гораздо более простой Go с целым Google за спиной, да и C++ уже 14-го стандарта.
И да, говорю как человек, который всерьез рассматривал возможность съехать с C++ на D.
Так-то D развивается, это и по его ChangeLog-у видно. Просто широким массам он оказался не интересен. По совокупности целого ряда причин.
Здравствуйте, cppguard, Вы писали:
N>>Сравнивать с C++ малоосмысленно потому, что он как раз после долгого застоя, но сдвинулся и развивается. C>Мы тут с D сравниваем Который как раз имеет противоположную тенденцию — когда развивался, а сейчас непонятно, что с ним, и нужен ли он кому-то, когда в С++ уже скоро добавять вычисление вопроса жизни, смерти и всего остального на этапе компиляции.
Всё-таки это другое, и без (™). D просто не набрал ресурсов для запуска толком.
(Витки идеологии не считаю, это в какой-то мере у всех есть.)
Здравствуйте, flаt, Вы писали:
F>https://herecomesthemoon.net/2024/11/two-factions-of-cpp/ F>Я даже не знаю, как резюмировать эту статью
А я — знаю: это агитка, иными словами — агитационный листок. Скрытая реклама чего-то черноугольного от корпорации добра.
Короче, можно констатировать, что C++ написано столько работающего кода, что от него никуда не деться. Некоторых это почему-то не устраивает. Что-ж, пусть напишут свой язык с блэкджеком и той девушкой с картинки, с которой начинается агитка.
В общем, я не вижу реального смысла в этой статейке.
flаt, с какой целью вы её сюда принесли?
Здравствуйте, Alekzander, Вы писали:
M>>Ну, к слову, у VC6 была кривая реализация плюсов в этом моменте. Я тоже эту проблему застал в своё время, но я тогда на бормане пилил, там было нормально, а вот при попытке собрать вижуалкой начинали лезть проблемы
A>Это было всё равно, что переписывать с одного языка на другой, настолько большими были изменения.
Какая интересная история... А кто-то просто брал и перекомпилировал. Правда, у нас проекты еще и GCC под Linux-ом собирались.
А что там такого "настолько большого" было, между VC++6 (это VS98) и VC++7/7.1 (это VS2002/2003)?
A>Я бы даже так сказал. Когда за развитием языка стояли компиляторщики (реальные инженеры), а не комитеты (дуболомы-астронавты), это была не "кривая реализация плюсов в этом моменте", а золотой век языка.
И когда это было? В 1988-ом?
Тот самый C++98, который был еще не полностью реализован в VC++6, он же появился как раз благодаря работе комитета.
Здравствуйте, B0FEE664, Вы писали:
BFE>Короче, можно констатировать, что C++ написано столько работающего кода, что от него никуда не деться.
Лучшая оборона — это нападение.
Сила языка должна быть в том, что на нём можно легко и быстро разрабатывать, в том, сколько на нём сейчас разрабатывается, в большом количестве преимуществ перед другими ЯП. Потому что "от него никуда не дется" со рано или поздно закончится.
Здравствуйте, CEMb, Вы писали:
CEM>Лучшая оборона — это нападение.
От кого обороняться-то?
CEM>Сила языка должна быть в том, что на нём можно легко и быстро разрабатывать,
Ага, как на Visual Basic: разрабатывать легко и быстро.
CEM>в том, сколько на нём сейчас разрабатывается,
Не разрабатывается, а используется. Есть очень много, чего разрабатывалось, а потом выкидывалось.
CEM> в большом количестве преимуществ перед другими ЯП.
И преимущества эти выражаются в наличии стандарта.
CEM>Потому что "от него никуда не дется" со рано или поздно закончится.
Закончится, если язык не развивать. По моему мнению, в перспективе убийцей C++ может стать язык разработанный для параллельного выполнения кода в таком виде, чтобы в коде не требовались явно выделенные конструкции для распараллеливания выполнения. Например, пишешь 2+3+4+5, а выполняется это сложение так: 2+3 на одном процессоре, 4+5 — на другом, а результаты складываются на третьем, который передаёт результат на четвёртый. Всё остальное — маловероятно.
Здравствуйте, B0FEE664, Вы писали:
BFE>А я — знаю: это агитка, иными словами — агитационный листок. Скрытая реклама чего-то черноугольного от корпорации добра. BFE>Короче, можно констатировать, что C++ написано столько работающего кода, что от него никуда не деться.
А я считаю так корпораты устраняют конкурентов. Сами пишут корпоративный софт на C++, а другим подсовывают шлак. Таким образом новых корпораций не появляется, что позволяет сохранять доминирующее положение.
Здравствуйте, B0FEE664, Вы писали:
CEM>>Лучшая оборона — это нападение. BFE>От кого обороняться-то?
Ну, имелась ввиду активная позиция языка, а не просто что у нас есть N кода, и все (пока ещё) вынуждены его терпеть использовать
CEM>>Сила языка должна быть в том, что на нём можно легко и быстро разрабатывать, BFE>Ага, как на Visual Basic: разрабатывать легко и быстро.
На плюсах, на самом деле, тоже легко разрабатывать. Просто получается, что:
1. Часто чуть дольше, чем на той же яве, в общей массе потенциальных проектов.
0. Спецов нету, которые умеют (убедить топов-идиотов что можно) быстро разрабатывать на плюсах
Или я не прав?
CEM>>в том, сколько на нём сейчас разрабатывается, BFE>Не разрабатывается, а используется. Есть очень много, чего разрабатывалось, а потом выкидывалось.
А почему?
CEM>> в большом количестве преимуществ перед другими ЯП. BFE>И преимущества эти выражаются в наличии стандарта.
Бизнесу пофиг на стандарт, это только технари понимают, а бизнесу надо "как можно быстрее и дешевле". Ну, мы-то понимаем, что в долгосрочной перспективе плюсы это как раз быстро и дёшево, но кроме нас сложно объяснить кому-то. Ну вот Яндех на плюсах пишет. Хуавей прям поклонники плюсов. Ну и всё, получается?
CEM>>Потому что "от него никуда не дется" со рано или поздно закончится. BFE>Закончится, если язык не развивать.
Развивать — в какую сторону? И как именно?
BFE>По моему мнению, в перспективе убийцей C++ может стать язык разработанный для параллельного выполнения кода в таком виде, чтобы в коде не требовались явно выделенные конструкции для распараллеливания выполнения. Например, пишешь 2+3+4+5, а выполняется это сложение так: 2+3 на одном процессоре, 4+5 — на другом, а результаты складываются на третьем, который передаёт результат на четвёртый. Всё остальное — маловероятно.
Вспомнилась моя дипломная работа на параллельных сях, которая такое делала ещё в 90-х. Подозреваю, сейчас уже давно есть небольшие либы, которые такое умеют делать удобно. Ну перетащат это в стандарт, что это поменяет? Хотя у меня подозрение, что в стандарте уже это есть
Здравствуйте, velkin, Вы писали:
BFE>>А я — знаю: это агитка, иными словами — агитационный листок. Скрытая реклама чего-то черноугольного от корпорации добра. BFE>>Короче, можно констатировать, что C++ написано столько работающего кода, что от него никуда не деться.
V>А я считаю так корпораты устраняют конкурентов. Сами пишут корпоративный софт на C++, а другим подсовывают шлак. Таким образом новых корпораций не появляется, что позволяет сохранять доминирующее положение.
Интересная конспирология. Насколько я знаю, корпорации скупают конкурентов, если видят их потенциал. Да и потом... Скажем Facebook изначально написан на PHP, а потом его дорабатывали используя язык под задачу. (Включая Java и C++). Так что, это какой-то странный аргумент. Тут, скорее, другое: C++ сложен для освоения, сложен для грамотного использования. Абы какой код будет работать так же, как написанный на другом языке, но в таких случаях не смысла C++ использовать, так как не безопасно. Например, вчера код видел:
std::istringstream ss(str);
while (ss >> token) tokens.push_back(token);
а потом этот tokens используется ровно так: strTime = tokens.back();
остальное содержимое tokens выбрасывается...
Вот глядя на такое я думаю (что подсунуть в str, чтоб оно упало), может некоторым не стоит на C++ писать? Пусть они там в своих ванильных rust'ах кувыркаются. Зачем таким доверять в язык, где главный мем — это про огнестрел?
Здравствуйте, CEMb, Вы писали:
CEM>Сила языка должна быть в том, что на нём можно легко и быстро разрабатывать
Разрабатывать легко на языках с "иерархически-ортогональной" структурой, где простые конструкции можно удобно комбинировать в сложные, и они не порождают ненужных зависимостей между собой. В C++ такое развитие наметилось в 80-х, но потом его поломали, и выправлять ситуацию, судя по всему, не собираются.
Здравствуйте, vdimas, Вы писали:
V>Не "тем не менее", а "тем временем" появился стандарт С++0x и далее пошло кучно от версии C++11, что перевернуло игру. ))
Википедия говорит, что язык появился в 2001-ом, а Александреску присоединился к разработке в 2007-ом. Так что я бы всё таки настаивал на "тем не менее", потому что 10 лет это немалый срок. Хотя, если смотреть с другой стороны, Erlang тоже не нашёл своей славы, а ведь задумка и реализация были неплохими.
Здравствуйте, cppguard, Вы писали:
C>Википедия говорит, что язык появился в 2001-ом, а Александреску присоединился к разработке в 2007-ом.
А через пару лет заверте...:
С 2009 года велась работа по обновлению предыдущего стандарта. Предварительная версия называлась C++09, в следующем году её переименовали в C++0x.
C>Так что я бы всё таки настаивал на "тем не менее", потому что 10 лет это немалый срок.
Смотря как смотреть.
Если взять жабку и дотнет с кучей прикладных либ в стандартной поставке, то языки были готовы к массовому использованию сразу же изкаробки.
А которые "просто языки/компиляторы" — им требуется время, чтобы отрасль обросла либами, сделав эти языки привлекательными.
C>Хотя, если смотреть с другой стороны, Erlang тоже не нашёл своей славы, а ведь задумка и реализация были неплохими.
Слабая реализация виртуальной машинки.
Т.е. не только в самом языке дело, ведь Erlang — это язык-платформа.
В целом платформа вышла так себе... ))
Здравствуйте, Alekzander, Вы писали:
A>Я бы даже так сказал. Когда за развитием языка стояли компиляторщики (реальные инженеры), а не комитеты (дуболомы-астронавты), это была не "кривая реализация плюсов в этом моменте", а золотой век языка.
Я бы не сказал, что NVidia, Google, Bloomberg и Intel представляют дуболомов-астронавтов
Скорее это представители наиболее толстых пользователей (с десятками миллионов строк реальной высокоуровневой кодобазы).
И, естественно, они напрямую работают с авторами компиляторов, которые представлены тоже в комитете.
Чтобы это увидеть, достаточно посмотреть состав комитета, так что вы загнались.
Проблема не в этом, а в том, что эта наиболее влиятельная группа 1) реально представляет из себя лебедя, рака и щуку, так что проходит то, что устраивает всех, наиболее кривым путём, 2) они гоняются за долями процента, обеспечивая эффективность за счёт высокого уровня своих людей и поплёвывая с колокольни на массы тех, кто не способен нанимать высокоуровневый персонал и кому нужно, чтобы язык был более понятен средним "ширнармассам" без PhD.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Разрабатывать легко на языках с "иерархически-ортогональной" структурой, где простые конструкции можно удобно комбинировать в сложные, и они не порождают ненужных зависимостей между собой. В C++ такое развитие наметилось в 80-х, но потом его поломали, и выправлять ситуацию, судя по всему, не собираются.
Хз, смотря с чем сравнивать...
С нулевых использую шарп и плюсы примерно в равной степени, и как-то само собой так получается, что на плюсах удобней выражать ход мысли в куче небольших независимых типов, из которых потом собирается комбинаторика конечного решения.
Т.е., плюсы, ИМХО, наоборот, провоцируют на разбиение решения на большее кол-во задействованных типов/сущностей в процессе декомпозиции задачи и композиции затем решения.
Кстате, из-за многих удобных новых ср-в в шарпе вокруг value types, unmanaged-ограничений/параметров генериков, чисто-стековых типов и неплохого современного оптимизатора в JIT и AOT, похожий подход всё более использую и там, потому что дробление иерархий должно сопровождаться zero penalty, иначе теряется смысл в такой декомпозиции.
Т.е., не смотря даже на текущее состояние прикладных или каких-то там еще библиотек в плюсах, само это кач-во языка уже является killer feature, хотя, у самих плюсовиков оно воспринимается как должное и потому порой недооценённое. ))