Vsevolod
кстати, хотел спросить вот такой вопрос: а что будет, если бросить исключение, а в стеке вызовов будет сишная функция без personality routine?
Berkus
продакшен код можно писать
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
Igor
Evgenii
Igor
смотреть в обратном порядке
Evgenii
какие юзкейсы?
Alexander "SonnySlave"
vladislav
Evgenii
пожалуй пора
vladislav
Мне нравится, как люди из этого чата перетекают в чат rust
Berkus
Vsevolod
мне, вон, приходится на plain c писать постоянно, и никуда от этого не деться
Vsevolod
зато все просто: вместо raii - goto err, вместо темплейтов - руками рисовать в структурах magic
Vsevolod
поэтому единственное, что меня интересует в каком-то системном ЯП - это как его можно безболезненно вкрутить в plain C
vladislav
Vsevolod
как минимум, чтобы больше ошибок обнаруживать при компиляции, а не валгриндом
Alexander "SonnySlave"
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к строк на плюсах пишется достаточно быстро. Но переписывать не обязательно)
vladislav
Max
Max
а вообще Си можно было бы и "докрутить" всякими zero-cost abstractions
Berkus
Alexander "SonnySlave"
Alexander "SonnySlave"
Alexander "SonnySlave"
никто не заставляет писать на С++ как на перле с кучей какого-то левого непонятного говна
Alexander "SonnySlave"
просто пишешь понятный код и всё. Или кто-то может продемонстрировать кейс, где на Си можно написать красиво, а на крестах - нет?
Max
Alexander "SonnySlave"
ttldtor
Это бизнес-процесс
Alexander "SonnySlave"
я понимаю, что кодовая база и все дела. Я говорю про новые вещи. И для новых вещей подчас выбирают тоже Си
vladislav
Max
это синдром утёнка?
нет, это попытка уйти от потерь на переезд из одной технолгии на другую. "работает - не трогай"
Alexander "SonnySlave"
Alexander "SonnySlave"
а преимуществ по сравнению с крестами... а какие они?
Alexander "SonnySlave"
Max
Max
ЕЕ - ?
Electrical Engineer
Alexander "SonnySlave"
Evgenii
Alexander "SonnySlave"
Electrical Engineer
если ему нравится ловить ошибки с памятью регулярно и так далее - пусть и дальше пишет. Есть люди, которые просто не хотят учиться
Alexander "SonnySlave"
и ничего, работают
vladislav
vladislav
Хороший программист на си лучше чем плохой на cpp
Max
Alexander "SonnySlave"
ttldtor
Alexander "SonnySlave"
почему я так рьяно расспрашиваю - потому что я учусь в универе и постоянно общаюсь с будущими инженерами. Так вот, людям намного проще обходиться с С++, чем с Си. Порог вхождения явно меньше (в базовое использование). А за ними ведь будущее.
Max
тогда у меня вопросы к квалификации кадров
это и есть реальный мир, Нео. программы пишут люди. иметь хороший язык программирования не достаточно.
хороший прогер на С напишет такой же рабочий и имеющий "низкий" уровень проблем код как и хороший программист на С++. тоже самое с Java, python и чем угодно
очень часто расходы на переучивания с Си в С++ (особенно учитывая зоопарк, которым С++ является сейчас, но это уже тема для другого разговора) для опытных инженеров гораздо ниже прироста в производительности, которые они получат в итоге
Alexander "SonnySlave"
Max
Max
Max
gboost
Max