Vsevolod
кстати, хотел спросить вот такой вопрос: а что будет, если бросить исключение, а в стеке вызовов будет сишная функция без personality routine?
Berkus
продакшен код можно писать
Vsevolod
это понятно
Vsevolod
вопрос, что будет
Vsevolod
unwind-то про сишную функцию знает
Vsevolod
UB, segfault, std::terminate, ignore
Berkus
unwind-у нечего деструктить в сишной функции - там нет С++ объектов
Berkus
если она там мимоходом аллоцировала память - будет утечка
Vsevolod
опять же, это понятно
Vsevolod
и что landing pads у сишной функции нет - тоже понятно
Berkus
ну вот она и пролетит через анвинд как фанера через парижскую канализацию
Vsevolod
то есть, вариант ignore
Vsevolod
о, это легко протестировать, наверное, через старый добрый qsort
Vsevolod
да, пролетает
Berkus
теперь попробуй в сишной функции открыть файл или выделить полгига памяти )
Vsevolod
в си нет RAII, зачем мучать бобика
Дмитрий ⬡
Да, просто не будет сайд-эффектов. Естественно, никаких деструкторов. Можно смотреть как на стек фрейм без локальных переменных.
Igor
есть немало личностей, которое хотят свой ЧСВ почесать таким вот говном
не уверен что многие про это знают, я например узнал только когда был на cppcon, со слов Джосаттиса push_back в стандартной библиотеке сломан из-за проблемы которую призван решить launder. Поделюсь слайдом надеюсь он не будет против
Igor
Igor
Igor
смотреть в обратном порядке
Evgenii
какие юзкейсы?
vladislav
пожалуй я больше не хочу писать на с++
Так ты же на rust теперь пишешь
Evgenii
пожалуй пора
vladislav
Мне нравится, как люди из этого чата перетекают в чат rust
Berkus
vladislav
я много на чем пишу
Значит, можешь не писать на cpp
Vsevolod
мне, вон, приходится на plain c писать постоянно, и никуда от этого не деться
Vsevolod
зато все просто: вместо raii - goto err, вместо темплейтов - руками рисовать в структурах magic
Vsevolod
поэтому единственное, что меня интересует в каком-то системном ЯП - это как его можно безболезненно вкрутить в plain C
Vsevolod
как минимум, чтобы больше ошибок обнаруживать при компиляции, а не валгриндом
Alexander "SonnySlave"
в чём смысл использования plain C вместо C++?
Vsevolod
одно есть: plain c не позволяет писать в стиле перла, как это стали позволять современные стандарты
Vsevolod
а так смысла, конечно, никакого, кроме того, что 200 тыщ строк я не осилю в одиночку в разумное время переписать на c++
Vsevolod
у нас в FreeBSD была еще проблема поддержки c++11: старые архитектуры, типа mips32, собираются gcc 4.2, в котором только хардкорный c++03, а без c++11 смысл c++ не так очевиден
ttldtor
10к строк на плюсах пишется достаточно быстро. Но переписывать не обязательно)
Max
а вообще Си можно было бы и "докрутить" всякими zero-cost abstractions
Alexander "SonnySlave"
никто не заставляет писать на С++ как на перле с кучей какого-то левого непонятного говна
Alexander "SonnySlave"
просто пишешь понятный код и всё. Или кто-то может продемонстрировать кейс, где на Си можно написать красиво, а на крестах - нет?
Max
просто пишешь понятный код и всё. Или кто-то может продемонстрировать кейс, где на Си можно написать красиво, а на крестах - нет?
красота понятие субьективное. контора со спецами, которые пишут на Си, будет требовать от приходящих людей писать на Си
ttldtor
Это бизнес-процесс
Alexander "SonnySlave"
я понимаю, что кодовая база и все дела. Я говорю про новые вещи. И для новых вещей подчас выбирают тоже Си
vladislav
это синдром утёнка?
Что за синдром?
Max
это синдром утёнка?
нет, это попытка уйти от потерь на переезд из одной технолгии на другую. "работает - не трогай"
Alexander "SonnySlave"
нет, это попытка уйти от потерь на переезд из одной технолгии на другую. "работает - не трогай"
но люди должны понимать, что на Си в ногу стреляется довольно часто. Это ведь тоже поетри
Alexander "SonnySlave"
а преимуществ по сравнению с крестами... а какие они?
Max
я понимаю, что кодовая база и все дела. Я говорю про новые вещи. И для новых вещей подчас выбирают тоже Си
и тут нет ничего плохого - расскажи-ка какому-то EE о том, что он вдруг "обязан" писать на крестах. скорее всего он бросит в тебя ботинком и пойдет дальше ваять на Си и клеить платы
Max
но люди должны понимать, что на Си в ногу стреляется довольно часто. Это ведь тоже поетри
false. с моего опыта: одинаково стреляют себе в ногу и на Си и на С++
Max
ЕЕ - ?
Electrical Engineer
Alexander "SonnySlave"
false. с моего опыта: одинаково стреляют себе в ногу и на Си и на С++
оххх... тут я готов поспорить. Почему-то я в это не верю
Alexander "SonnySlave"
Electrical Engineer
если ему нравится ловить ошибки с памятью регулярно и так далее - пусть и дальше пишет. Есть люди, которые просто не хотят учиться
Alexander "SonnySlave"
и ничего, работают
Max
оххх... тут я готов поспорить. Почему-то я в это не верю
6 проектов за 5 лет - 3 на С++, 3 на Си. только один из 6ти - не говнокод. на Си .
vladislav
Хороший программист на си лучше чем плохой на cpp
Max
ee пишут на верилоге)
ЕЕ заставляют быть еще и SE частенько :)
Alexander "SonnySlave"
ttldtor
6 проектов за 5 лет - 3 на С++, 3 на Си. только один из 6ти - не говнокод. на Си .
Гм. Ты из тех людей, которые могут рассказать про стек технологий для языка Си?
Alexander "SonnySlave"
почему я так рьяно расспрашиваю - потому что я учусь в универе и постоянно общаюсь с будущими инженерами. Так вот, людям намного проще обходиться с С++, чем с Си. Порог вхождения явно меньше (в базовое использование). А за ними ведь будущее.
Max
тогда у меня вопросы к квалификации кадров
это и есть реальный мир, Нео. программы пишут люди. иметь хороший язык программирования не достаточно. хороший прогер на С напишет такой же рабочий и имеющий "низкий" уровень проблем код как и хороший программист на С++. тоже самое с Java, python и чем угодно очень часто расходы на переучивания с Си в С++ (особенно учитывая зоопарк, которым С++ является сейчас, но это уже тема для другого разговора) для опытных инженеров гораздо ниже прироста в производительности, которые они получат в итоге
Max
почему я так рьяно расспрашиваю - потому что я учусь в универе и постоянно общаюсь с будущими инженерами. Так вот, людям намного проще обходиться с С++, чем с Си. Порог вхождения явно меньше (в базовое использование). А за ними ведь будущее.
не всегда легче. выбирают тот ЯП, который ближе к домену . mathlab для многих математиков и 1С для бухов гораздо ближе чем питон, хотя питон наверное один из самых простых ЯП, который мне приходилось юзать (JS где-то там же)