LINUX.ORG.RU

Опубликованы C++ Core Guidelines

 ,


10

8

Бьерн Страуструп и Герб Саттер опубликовали в открытом доступе объемный документ, содержащий основные принципы разработки на современном С++. Авторы надеются, что следование данным принципам позволит разработчикам эффективно использовать язык и писать безопасный и поддерживаемый код.

C++ Core Guidelines: https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md/

Ответ на: комментарий от anonymous

Я-то знаю

Конечно, конечно, примите валерьяночки, пройдите в теплую, уютную палату.

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

Я-то знаю все эти языки, и мне есть с чем сравнивать.

Все эти — это Modula-2 и Oberon-2? Да что там знать-то?

Правильно ли я понимаю, что вы клепаете что-то для оборонки на Эльбрусах?

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

Правильно ли я понимаю, что вы клепаете что-то для оборонки на Эльбрусах?

Те, кто клепает для оборонки на Эльбрусах, делают это на Си и Си++ %) Эль-76 вышел из употребления 20 лет назад.

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

Почему плюсисты не переходят на нормальные языки?

у меня есть сложносочинённая теория на этот счёт, которая сводится к следующему:

у них просто баттхёрт и шок будущего

Так же основным вопросом «Шок будущего» Тоффлер ставит вопрос многообразия и «сверхвыбора»: «Максимальные возможности индивидуального выбора считаются демократическим идеалом. Но большинство людей пишущих…предсказывают мрачную картину будущего, в котором люди предстают как неразумные создания-потребители, окруженные стандартизированными товарами, получающие образование в стандартизированных школах…и вынужденные принимать стандартизированный образ жизни.»
«Вся ирония в том, что люди будущего могут страдать не от отсуствия выбора, а от парализующего обилия выбора – сверхвыбора.»

Так же стоит разобрать «Физический аспект» и «психологический аспект» шока будущего. «мы переживаем период столь же болезненный, как и та эпоха в эволюционной предыстории человечества, когда существа, обитающие в воде, стали существами наземными… Те кто смог приспособились; те кто не смог, либо продолжали развиваться на менее высоком уровне, либо исчезали…»

Вообще изменение – это ориентированная реакция, т.е. комплексный процесс, в котором участвует весь организм, следовательно новость, некое изменение даже незначительное вызывает реакцию в организме человека, в его нервной системе. Так же шок будущего «поражает и психику…В то время, как тело разрушается под воздействием окружающей среды, перегруженный рассудок не способен принимать адекватные решения». Как пример Тоффлер приводит рост наркомании, вспышки вандализма, политика нигилизма, программирование на С++ и так далее.
И как результат «шок будущего – это реакция на сверхвозбуждение…а при реакции на сверхвозбуждение показатель духовных и физических способностей падает».

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

Но так как главной целью является желание помочь Тоффлера нам прийти к согласию с будущем, то необходимо проанализировать «стратегии выживания».
1. Периодически сосредотачиваться на самих себе, изучать внутренние психологические и телесные реакции на изменения, отключаясь от окружающей среды. Это поможет замедлять и ускорять темпы развития сначала в «микросреде», а затем и более масштабно.
2. Сознательно поддерживать «длительные отношения с различными элементами нашей филической среды». Тем самым не реагировать на новинки рынка, чтобы поддерживать связь с окружающими нас объектами.
3. «Ситуативное группирование», предложил доктор Герберт Герджой. Это места встреч людей, которые проходят похожие жизненные изменения.
4. Консультирование, справочные службы.
5. Соблюдение различных ритуалов (праздники, карнавалы, открытки по случаю, годовщины).
6. Создание и поддерживание уже существующих организаций по прогнозированию будущего и планирования.

вот про ритуалы и карнавалы, клуб анонимных С++-ников и справочные службы акклиматизации

Так, во многих американских пригородах имеется специальная коммерческая служба “Welcome Wagon” — рекламный автофургон с буклетами, образцами местной продукции и т. п., раздаваемыми приезжим или новым поселенцам, — которая ускоряет этот процесс, знакомя вновь прибывших с главными магазинами и агентствами в данном районе. Служащий такой службы, получающий зарплату за свои труды (обычно это бывает женщина средних лет), посещает новичков, отвечает на их вопросы о сообществе, в которое они попали, оставляет им брошюрки и иногда — сертификаты дешевых подарков, которые можно получить в местных магазинах. Поскольку это оказывает влияние лишь на отношения сервисного характера и вряд ли представляет собой что-то большее, чем одну из форм рекламы, постольку воздействие, оказываемое этой службой, весьма незначительно.

вот это оно всё.

ещё про ориентированные и адаптивные реакции оттуда же — кстати тоже интересно.

похоже, что ОР/АР — это психофизиологический аналог eval/apply. в небольших количествах АР — полезно, хотя и стресс.

но типичный измученный нарзаномсвоим кодом С++-программист задалбывает себя этим стрессом так, что становится неспособным воспринимать новое: «нафига дофига нафигачили, перефигачивай нафиг. и так старой фигни дофига, а тут ещё новая фигня входящее. значит фигня ибо нафиг и нефиг». да и пофиг.

вместо корректной работы метациклического вычислителя eval/apply=ОР/АР, и самораскрутки.

просто С++-сектант помнит про эту боль ужос и подводныя камни, и думает что и везде оно тоже так. и отказывается изучать, оценивать и применять (новый цикл eval/apply) другой способ мышления, метапарагидму.

парадокс блаба по все поля. с утятами следом за главной уточкой.

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

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

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

дух говорит, что нужно взять эти многабуков Core Guidelines, распечатать стопочкой и бить С++-сектантов ею по голове, приговаривая: Keep It Simple, Stupid. потому что дурак — это не отстутствие ума, это такой вот ум. громоздкий, переусложнённый, с множеством костылей и подпорок, SFINAE и прочими ad hoc частными случаями.

anonymous
()
Ответ на: комментарий от tailgunner

Те, кто клепает для оборонки на Эльбрусах, делают это на Си и Си++ %) Эль-76 вышел из употребления 20 лет назад.

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

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

Я в общем, осилил не только С++, а и много других языков. Да и в них осилил семантику, а не только название. И знаю и их недостатки тоже, и не идеализирую плюсы. Как и другие языки. Есть моменты, когда нужно сделать шаг в сторону, а не давить тапкой в пол на старые грабли. И поучиться у других, более адекватных решений. А не у проблем, которые самих по себе не являются решением, а только лишь проблемой.

А то действительно странно: вот, модульные языки просты как палка. Казалось бы, что там можно ниасилить, простая и понятная семантика ведь. Однако же: сектанты С++ делают невозможное, и ниасиливают и это.

А потом на форумах полно полудурков, которые воспринимают язык программирования как синтаксис, а не семантику. Лисп им не нравится потому что скобочки, обероны — потому что ключевые слова большими буквами. Окамл небось не ндравится из-за двойного ;;.

В общем, если ниасилили семантику — проще всего придраться к синтаксису и запятым, да.

Потом специально для таких вот создаётся некий kitchen sync language, который выглядит как нечто знакомое и простое, но ни тем, ни другим не является. Зато напоминает им что-то смутно знакомое.

Какие-то когнитивные искажения всю дорогу. И заметьте: люди могли бы их сразу распознать кабы делали разумный, осознанный выбор. Но как раз этого они и не делают. Они в плену этой своей иллюзии, про золотые молотки и серебрянные пули, или про «то безопасное подмножество, которое борется внутри языка пролезть наружу». И их выбор предопределён конкретными когнитивными искажениями: что этот язык таки существует, а не одно и то же водит хороводы по кругу.

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

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

Но ведь сектанты старых книг не читают. Они в новых читают только обложку.

И это печально, да.

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

Но ведь сектанты старых книг не читают. Они в новых читают только обложку.

Понятно, все вокруг в говне, только вы Д'Артаньян, весь такой в белом.

На каждом профильном форуме таких прихлопнутых Oberon-ом анонимов вагон и маленькая тележка.

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

Ты клоун. Тебя сколько ни спрашивали что ты предлагаешь в качестве альтернативы плюсам, ты каждый раз мычишь чего-то неопределенное про модули или вываливаешь список замшелого старья, мол, выбирайте сами. Потому что нет альтернативы. Есть виртуальные альтернативки в узких областях (в каждой - своя) в виде лиспов, окамлов и прочих COBOLов, и даже не плюсам, а всяким жабам и сишарпам. А плюсам альтернативы просто нет в тех областях, где он используется. Потому он и живет. Почитай на досуге историю его создания и основыне цели, которые ставились при этом автором. Может быть хоть чего-то поймешь наконец.

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

Да есть альтернативы. Навалом их. Общая черта: язык, в котором есть метаязыковые средства, реализованные через библиотеки. Не платишь, если не используешь — эту конкретную языковую библиотеку.

Это общий принцип, парадигма, метапарадигма (метамодель метаязыка как системы понятий, семантики). Который можно реализовать посредством любой парадигмы, языка, модели.

А. Столяров из InteLib про это пишет как «универсальный язык программирования». Только почему-то подразумевает под этим С++, а не более модульный язык с более нормальным метапрограммированием.

Конкретных реалиализаций можно подобрать навалом, под эту парадигму.

пример: ну тот же Nim с gc:disable, модулями. или D+CTFE+какой-то метаязык на CTFE. или LibertyEiffel на LLVM и тоже с gc:disable. Или пару Modula-2/Oberon-2. Или пару низкоуровневый язык/высокоуровневый с модулями в стиле ML.

А плюсам альтернативы просто нет в тех областях, где он используется. Потому он и живет.

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

но ведь, старпёрам хочется убедить что и не стоило напрягаться, чего-то там рассматривать. поэтому получаются когнитивные искажения.

«поэтому и живёт» (ц) когда давно уже должен бы сдохнуть и уступить место более лучшим «универсальным языкам программирования».

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

и что? эта история и цели закладывались 30 лет назад. Исходя из того, что язык менялся радикально, и как дурацкая свалка kitchen sync запчастей — видно что первоначальный дизайн был неудачным, и целей тех не достиг.

И курс был изначально неправильный, типа в индию на запад — раз каждые 10 лет это фактически уже другой язык.

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

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

В любом из этих случаев осмысленность запуска новых проектов, например на с++ — крайне сомнительна. Ну а деды-старпёры могут до пенсии заниматься движкодрочерством.

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

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

Латинское sect или греческое heresy в переводе означает «учение».

Но вот когда спрашиваешь С++-сектантов, а в чём тут суть этого учения, символ веры, бггг, фелиоква, то они мычат нечто невразумительное про «не платишь за то, чего не используешь» и типа наши костылистые костыли это не костыли вовсе, это такие рычаги для переворачивания миров, — как только с закатом мира вручную разберутся, бггг.

Если сути учения не разумеешь и в вере своей слаб — так может и учения никакого тут нет, а одно только шарлатанство ???!!!

Хотя их же уже купили заранее с потрохами, оптом и сразу — а в розницу и потом, в рассрочку они не платят, Д'Артаньяны типа, или там честные шлюхи, которые сами выбирают когда и с кем, бггг...

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

как в том анекдоте про «бесплатно говна наелись».

На каждом профильном форуме таких прихлопнутых C++-ом регистрантов ещё больше.

Да просто тысячи их !!! бггг :)))

Здравый смысл и С++ встречаются крайне редко. Очевидно же. Жестокое детство, деревянные игрушки.

И мёртвые с крестами стоят. И тишина.

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

Это общий принцип, парадигма, метапарадигма (метамодель метаязыка как системы понятий, семантики).

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

ну тот же Nim с gc:disable

Язык еще до стабильного релиза 1.0 не дожил, а вы уже предлагаете использовать его в продакшене вместо C++? Замечательно.

или D+CTFE+какой-то метаязык на CTFE.

Ну хоть что-то. Нифига, правда, не мейнстрим и все необходимые прикладные библиотеки придется писать самому (либо оборачивать существующие C/C++ные). Да и с инструментарием для него полных швах.

LibertyEiffel на LLVM и тоже с gc:disable.

А это поделие еще живо?

Вы правда пробовали использовать Eiffel без GC? Расскажите подробнее.

Или пару Modula-2/Oberon-2.

Что-нибудь еще подревнее нельзя было раскопать?

Или пару низкоуровневый язык/высокоуровневый с модулями в стиле ML.

Имя, сестра, имя!

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

Если сути учения не разумеешь и в вере своей слаб

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

Поясню, если вы не поняли. Здесь обсуждаются рекомендации по упрощения жизни при работе с C++. Все остальные вопросы, как то «зачем нужен C++», «нужно ли начинать новые проекты на C++», «работают ли на C++ только деды-старперы» и пр. вменяемым участниками данного обсуждения не интересны. Можете сказать что-то толковое — говорите, не можете — проходите мимо.

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

Вот читаю я твои буквы, и буквы вижу, а духа и сути не вижу. Как там про бороду и философов?

Я озвучил тебе общий принцип, метамодель (парадигма это модель по гречески), с конкретными примерами где реализацию, воплощение и материализацию этой метамодели посмотреть можно. А ты пишешь буквы про «слишком древнее», «ещё живо?», «слишком молодо», как будто сам принцип, идея и эйдос Платонов от материализации этой идеи и концепции сильно изменится.

Может и изменится — но не сильно, сохранив общие очертания. Надо просто брать и пробовать, это не больно. И уже несколько раз было до этого сделано. И будет сделано после.

Но вы же как раз этого и не делаете. У вас eval/apply даже до eval не доходит — начинается вкусовщина и отмазки в стиле 10500 причин почему вы такой дартаньян, не впечатлились. Как будто бы кому то нужно вас уговаривать.

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

Посмотрим, насколько он прав в случае с С++-никами.

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

Здесь обсуждаются рекомендации по упрощения жизни при работе с C++.

самое толковое по упрощении жизни с С++ — это его не использовать.

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

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

самое толковое по упрощении жизни с С++ — это его не использовать.

Ok, я здесь уже несколько раз перечислял примеры ПО, которое разрабатывается на C++ не от хорошей жизни. Укажите, пожалуйста, реальные на ваш взгляд, альтернативы C++ для такого рода ПО.

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

самое толковое по упрощении жизни с С++ — это его не использовать.

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

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

Я озвучил тебе общий принцип, метамодель (парадигма это модель по гречески), с конкретными примерами где реализацию, воплощение и материализацию этой метамодели посмотреть можно.

Еще раз, для философов.

1. Не нужно распинаться про принципы и метамодели. Такие словеса вы можете вдувать студентам первокурсникам, которые еще и кода-то не нюхали. На них эти высокие слова может еще и повлияет. А мне покажите код. Типа «вот на вашем C++ такое убожество, а на православном Oberon-е такая вот лепота».

2. Если под примерами понимается перечень из Modula-2, Objective-C, Oberon-2, Eiffel, Limbo, OCaml, D и т.д., то вы забываете, что эти языки уже прошли проверку временем. И выяснилось, что даже при особой удаче в виде невероятного феномена популярности iPhone/iOS, самые удачливые представители являются, в лучшем случае, очень нишевыми языками. Тот же Objective-C был основным языком для разработки под MacOS/iOS, но его присутствие на других платформах нужно было выискивать под микроскопом. Modula-2 был замечательным языком, серьезным конкурентом C лет 25 назад, но его время ушло безвозвратно. Аналогично и с Eiffel-ем. Все остальное из вашего списка — это маргинальщина, которая местами успешно используется, но широкого распространения получить не смогло. Что говорит о том, что для большинства программистов и решаемых этими программистами задач данные языки не подходят. Это доказанный историей факт. Даже Apple создала убийцу для своего же Objective-C.

А ты пишешь буквы про «слишком древнее», «ещё живо?», «слишком молодо», как будто сам принцип, идея и эйдос Платонов от материализации этой идеи и концепции сильно изменится.

Анонимные ЛОРовские философы не понимают простую штуку: разработка ПО — это чуть более сложный процесс, чем взять и написать тестовую программку на 100 строк. В данном процессе нужно учитывать кучу рисков, как технических, как и социальных. И тут как раз «слишком древнее» и «слишком молодо» гораздо важнее, чем все ваши абстрактные метамодели. Т.к. если выбранная вами технология слишком древняя или слишком молодая, то у вас будут проблемы с комплектацией проектных команд. Если технология не развивается, то у вас будут проблемы, например, при обнаружении багов или при портировании своего софта на новую платформу. Если технология является маргинальщиной и используется узким кругом фанатов, то у вас будут проблемы с поиском инструментов (например, отладчиков, статических анализаторов, библиотек, нормального качества IDE и пр.).

Так что в мире чистых абстракций, в котором вы так уверено себя чувствуете, тот же Nim может и хорош. Но в реальности, то, что вы сможете сделать на C++ с Crypto++ или Botan за 15 минут, для Nim-а вам потребуется написать кучу кода самостоятельно.

Надо просто брать и пробовать, это не больно.

Я смотрю, вы просто уверены в том, что никто из ваших оппонентов здесь ничего кроме C++ не пробовал. Так вот вы сильно ошибаетесь. Пробовали, знаем что и как в других языках и платформах. Отсюда и уверенность в том, что для ряда задач у C++ нет хорошей альтернативы.

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

Прочитал вот эту тему. Наверное, больше на лор заходить не буду.

Не, это не по пацански. Давай, пиши ржавый псто. Быра.

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

И что-то мне подсказывает, что эта проблема гораздо более характерна для Rust.

Что именно подсказывает? И почему?

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

Можно ссылку?

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

Модули тоже хотят успеть, хотя бы в виде TS. Реализация уже есть.

Вот только реализации две и разные.

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

Что именно подсказывает? И почему?

Ограничение возможности выстрелить себе в ногу, поставленное во главу угла, в том числе. Значит авторы с самого начала претендуют на точное знание того, как надо и ограничивают свободу выражения. Но так не бывает, чтобы всё сразу правильно угадать. Тем не менее дальше от этих ограничений, заложенных на ранних этапах, уйти бывает сложно. Это догадки, но есть некая аналогия с естественными/искусственными языками. Естественные хоть и кривые, с кучей нелогичностей и исключений, но живут и развиваются, а искусственные дохнут несмотря на всю свою изящность и логичность.

Можно ссылку?

Не могу найти. Может, в какой-то другой теме про раст видел.

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

Да, я тут такую тему как-то двинул в одной из тем про руст, а потом ссылку кинул на подобный вывод в этих интернетах. Тему, вроде, потерли, потому что скатилась. И вывод как раз именно такой, да, что сильные стороны могут стать слабыми и начать мешать. И наоборот.

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

а до этого все орали, что хаскель - это решение всех проблем

Правда что ли?

По моему, ты не прав. Орали не столько про хаскель сколько про сопутствующие вещи типа функциональности и иммутабельности. И что характерно эти вещи есть/появляются и во вполне мейнстримовых языках. А про конкретные языки «орут» адепты и это, в общем-то, логично. То, что создатели пытаются рекламировать своё детище тоже. Если шума сильно много значит язык находит какой-то отклик и интересует людей.

Так надо начинать не с языка, а с железа, млять!

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

А даже если ты своё чудо железо сделаешь и даже все проникнутся и подхватят, то существующее вытесняться будет небыстро.

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

тот же Nim с gc:disable

И в плане управления памятью мы оказываемся на уровне С.

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

Это догадки, но есть некая аналогия с естественными/искусственными языками.

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

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

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

особенно учитывая, что все языки программирования - искусственные.

Аналогии - да, всего лишь аналогии. Но человеческие языки на самом деле тоже все искусственные, даже те, которые называются естественными. Просто они по-разному искусственные. И вот аналогия как раз в этих отличиях.

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

И вот аналогия как раз в этих отличиях.

Если честно, вижу только демагогию, а не аналогию.

Ну а если вернуться к началу спора, то можно точно так же заявить: «раз в С++ во главу угла ставят „производительность“ - значит авторы с самого начала претендуют на точное знание того, как надо и ограничивают свободу выражения». Но это всё ерунда. Раст действительно налагает больше ограничений, но выразительность может быть даже больше за счёт других языковых средств (паттерн матчинг, макросы и т.д.).

Говорить об ощущениях можно сколько угодно, только толку от этого мало.

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

«раз в С++ во главу угла ставят „производительность“ - значит авторы с самого начала претендуют на точное знание того, как надо и ограничивают свободу выражения»

Вот потому что ты нифига не понял, а видишь только демагогию, у тебя и получаются такие перлы. Кто авторы C++, которые «знают»: Страуструп или Керниган с Ритчи? Уже из самого этого вопроса видно, что эти «авторы» сами по себе, а язык - сам по себе. Никто там ничего точно заранее не знает, а эволюция происходит в результате изучения и обобщения опыта практического применения языка большим количеством людей.

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

А ты смешной.

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

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

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

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

«Авторы С++» - это комитет состоящий из кучи людей, которые тянут одеяло на себя.

Комитет - это комитет по стандартизации, который обобщает опыт, а не придумывает новое. Новое придумывает и предлагает кто угодно.

Но думать, что С++ как-то магически эволюционирует весьма наивно.

C++ успешно эволюционирует несколько десятилетий и это просто факт.

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

То что я пишу я не могу написать ни на чем другом кроме С/C++, при всем отвращении

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

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

Приведи пример такого подхода на примере С++11 или С++14. Или трепло.

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

«Авторы раста» - это, собственно, открытое сообщество.

7 хозяек на 1 кухне?

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

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

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

А конкретнее? Номера RFC, языковые возможности, которые ты считаешь «хотелками тех, кто совсем не имеет опыта».

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

Комитет - это комитет по стандартизации, который обобщает опыт, а не придумывает новое.

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

Меня как-то больше интересует когда та или иная фича попадёт в стандарт и будет реализованa (разумеется, если библиотечные реализации кривые/костыльные), а не когда кто-то её «теоретически сформулировал». И зависит это как раз от комитета.

C++ успешно эволюционирует несколько десятилетий и это просто факт.

Критерии успешности озвучишь?

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

Но речь о другом шла - за развитие отвечают «обычные люди». И они могут допускать ошибки.

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

Приведи пример такого подхода на примере С++11 или С++14. Или трепло.

Вообще-то я цитировал слова человека состоящего в комитете стандартизации (Eric Niebler). К нему и вопросы. Собственно, сама цитата:

...When the committee has to choose between two incompatible designs for a feature, it sometimes chooses both and adds a third option...

Правда в целом о комитете он отзывается положительно, что в принципе, не удивительно.

Но я не верю, что у тебя ни разу не возникало ощущения, что «сделали неправильно». Если, конечно, следишь за развитием языка.

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

Только вот нет.
хотя постой, все ведь так и есть

Для начала сам определишь.

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

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

Критерии успешности озвучишь?

Критерии субъективны. Есть показатель успешности - стабильное вхождение в десятку самых востребованных языков несмотря на многочисленные попытки изобрести его убийцу. То есть язык успешно конкурирует.

Ну серьёзно, ты правда не понимаешь, что все (живые) языки развиваются?

А чего ты так стыдливо берешь в скобочки слово «живые»? Конечно, пока язык нужен и развивается он живой. Вот только нет никаких свидетельств того, что тот же раст через 10 лет будет кому-нибудь нужен.

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

И зависит это как раз от комитета.

Эх, если бы. Достаточно вспомнить ситуацию с export для шаблонов в C++98. В стандарте есть, в природе — нет. Т.е. вроде как в Comeu C++ она была сделана, но сам этот Comeu C++ был ну очень уж редким зверем.

Или даже ситуация с C++11. Вроде как основные его черты были понятны еще в 2010-м. Но даже в VisualC++ 12 (который из состава MSVS2013) многих вещей из C++11 нет в принципе (скажем constexpr, noexcept). Да и Intel-овский компилятор, не сказать чтобы уж очень хорошо поспевал за новыми стандартами :(

Так что с точки зрения конечного разработчика стандарт — это одно, а имеющийся в наличии список фич — другое. А посему влияние коммитета и людей из коммитета на язык несколько своеобразное: коммитет формирует стандарт. Но насколько имеющийся в распоряжении конкретной проектной команды диалект языка соотносится со стандартом... Это большой вопрос.

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

Есть показатель успешности - стабильное вхождение в десятку самых востребованных языков

Ну язык «входил в десятку» и во время затишья между стандартами. Так что это так себе критерий.

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

Вот только нет никаких свидетельств того, что тот же раст через 10 лет будет кому-нибудь нужен.

А какие тут могут быть свидетельства? Для С++ они есть? Ну кроме большого количества уже написанного кода, но если на языке не будут стартовать новые проекты (вполне можно придумать сценарии, разной степени фантастичности, почему это произойдёт), то это уже так себе жизнь.

Раст и сейчас не так уж сильно востребован, но пока движется в правильном направлении. Нишу вполне занять может. Давать какие-то гарантии вряд ли кто-то сможет.

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

Эх, если бы.

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

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

А какие тут могут быть свидетельства?
Раст и сейчас не так уж сильно востребован

Это мягко сказать, учитывая сколько вокруг него шума. Похоже, Rust готовится пройти путь D.

asaw ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.