Anonymous
Ну сейчас можно оптимизировать всё. Потреблядская интеллидж идея оптимизирует регулярки и семантику.
Vitaliy
Обычно когда граф сложнее, на него просто чаще забивается
Vitaliy
То есть оптимизации не на каждую мелочь делают
Vitaliy
В отличие от маленьких и более предсказуемых графов
Alexander 🐕
после следующего релиза все упадет ¯\_(ツ)_/¯
Угу, это только на C дыры по 7 лет латают Хороший язык, чо
Andrei
А логику как он оптимизирует, если с абстрактциями она наоборот сложнее становится?
Смотри, независимо от языка ты можешь охватить оптимизатором 3-4 выражения, к примеру. Чем ближе язык к железу тем меньше реальных инструкций ты оптимизурешь. С другой стороны представь ты соптимизировал 4 выражения на абстрактном языке, в реальности это привело к выбрасыванию огромных куч кода и освобождениям памяти.
Vitaliy
А мы не можем сделать такие же оптимизации на низом уровне?
Andrei
Не можем.
Vitaliy
Тпа выбросить все if(false)
Vitaliy
Или вы о другом?
Andrei
Потому что понять из каши сотен ассемблерных инструкций, что это был за математический объект — это сложно.
Vitaliy
Убрать лишние абстракции из кода, перегрузки, которые не используются
🦥Alex Fails
Угу, это только на C дыры по 7 лет латают Хороший язык, чо
тут я не буду спорить, это осознанная фича в дизайне языка, которую в принципе легко проконтролировать на этапе компиляции и это уже юзается
Vitaliy
vtable там, где не надо
🦥Alex Fails
vtable там, где не надо
да, это "девиртуализация методов" в LTO бывает
Matway
А мы не можем сделать такие же оптимизации на низом уровне?
Предлагаю ознакомиться с "Expression templates". Пример того, что можно сделать наверху, но практически нереально внизу.
Vitaliy
Спасибо, почитаю :)
Vitaliy
А в целом какой ЯП быстрее именно по производительности — C или плюсы? В плюсах много оберток вокруг сишных интерфейсов — они нужны, конечно, но вряд ли это способствует производительности
🦥Alex Fails
т.е. можно жопой написать на си, и норм на C++)
Anonymous
#offtop Знаете что меня бесит в комьюнити С++? Везде написанно как сделать Х, но всё это абстрактная херня, и когда гуглишь какое-то решения то его нет. И наоборот - когда ты изучил базисы С++, нигде нет информации по _архитектуре_ языка. Я имею ввиду, идиому RAII может ещё и можно найти, но на этом про архитектуру всё заканчивается.
Andrei
А в целом какой ЯП быстрее именно по производительности — C или плюсы? В плюсах много оберток вокруг сишных интерфейсов — они нужны, конечно, но вряд ли это способствует производительности
Они все элиминируются на этапе компиляции. Даже сто раз обёрнутый operator[] от вектора, скажем, в итоге всё равно компилятор превратит в то же что и на си.
🦥Alex Fails
надо смотреть в бенчмарке
Vitaliy
Так, а если в обоих случаях написал быстро и хорошо?
Matway
Это ещё смотря какая производительность :) Как насчёт производительности программиста? Как насчёт производительности тестировщика, разгребающего код программиста? :)
Matway
предлагаю заполнить эти пробелы )
Не верю! На плюсах написано больше реализаций строк, чем на всех остальных языках вместе взятых. О каком сплоченном комьюнити может идти речь?
🦥Alex Fails
обычно поверх апи тредов оси делаются, или если нет тредов, то эмулируются
Anonymous
предлагаю заполнить эти пробелы )
Буду откровенен, я не хочу(
Anonymous
Мне самому было тяжело понять
Anonymous
Кстати спасибо @foxcpp
🦥Alex Fails
Andrei
тестировщики не нужны, тем более ковыряющиеся в коде. Это задача инженера - покрывать свой код тестами
В корне не согласен. Если ты написал свой код с ошибками, то шансы, что ты их повторишь при написании тестов — очень велики. На мой взгляд, гораздо лучше, когда по описанному поведению кто-то другой, НЕ ЗНАЮЩИЙ твоей реализации пишет тесты.
Vitaliy
Спасибо всем за ответы и мнения, чужой опыт это всегда круто :)
🦥Alex Fails
Мне самому было тяжело понять
ничего, разберемся вместе. и задокументируем опыт
Anonymous
Да и вообще, в С++ главное - понять как работает язык. Все объясняют конкретные вещи, когда нужно объяснить что-то абстрактное.
🦥Alex Fails
Спасибо всем за ответы и мнения, чужой опыт это всегда круто :)
да скажи спасибо Александру, он умеет грамотно "вбросить", чтоб пошла дискуссия
Matway
Об этом, друг, в котором ты находишься!)
Ага. Предлагаю собраться и написать pro_cxx::best_string_implementation_ever
Anonymous
лол
Andrei
Не упускаешь возможности порекламить :D
Anonymous
кстати про стринги
🦥Alex Fails
Ага. Предлагаю собраться и написать pro_cxx::best_string_implementation_ever
но вообще в тему строчек - очень много есть domain-specific-задач. Иногда нужны свои специализации алгоритмов
Anonymous
я не в треде, вы про тупость std::string?
Anonymous
Юникод тип не поддерживает, бесит адски(
Matway
я не в треде, вы про тупость std::string?
Нет. Про велосипеды. Это то, что хорошо умеют делать плюсовики.
Anonymous
Недостаточно.
🦥Alex Fails
Недостаточно.
есть еще codecvt
Anonymous
Не знаю.
🦥Alex Fails
и в крайнем случае MultibyteToWideChar / libicu
Andrei
но вообще в тему строчек - очень много есть domain-specific-задач. Иногда нужны свои специализации алгоритмов
Вот, это в точку. И по-моему наличие такого огромного количества реализаций строк на плюсах — это показатель того самого «контроля». Когда мы делаем ровно то, что нам нужно, но не больше.
Anonymous
Стандартный стринг туп, а юзать другие имплементации не всегда получится с либами.
Anonymous
Хочется чтоб был способ кастануть к типу стринга.
Andrei
Золотой середины в трейдоффе универсальность\производительность не существует, как по мне.
Anonymous
Адаптеры, адаптеры...
Anonymous
Усложняем жизнь.
Anonymous
Почему бы просто не добавить какой-то toString который вернёт сырую строку, не имеет значение что она некорректна если попытаться вывести её, например, в консоль...
Anonymous
ах ну да, размер символа...
Andrei
Ты же не про юнит-тесты?
Про функциональные скорее. Юнит, как по мне ближе к white-box тестированию.
Anonymous
бедные китайские программисты на С++
Алдар
С++ сложный язык, который отражает сложность задач в построении софта, зато решить можно практически любую задачу с максимальной эффективностью
Vladislav
wstring же юзай
wchar/wstring - broken by design
Vitaliy
Кстати. А RxCpp у вас принято юзать?
Vitaliy
Или вы смотрите на него как на говно?
🦥Alex Fails
Кстати. А RxCpp у вас принято юзать?
ну, вай нот. это тип как рхЖава?
Vitaliy
Да