На удивление, на С очень легко пересесть. Накодил пока всего 35 часов (что на 5 часов больше раста, хы), но успел сорвать бинго: сегфолт, ошибка арифметики, память повреждал (пытался деаллоцировать буфер на стэке), даже в глибц маллок паниковал (ассерт проваливался). Никакие строки тебе не пишут, где это произошло, просто грустный Segmentation fault (core dumped). Ну, поплачь, мол. Но у тебя всегда есть valgrind, который тебе даст полный расклад таро: и утечки (даже расскажет, что еще можно спасти, а что уже навечно проебано), и сколько байт суммарно аллоцировано было, и где у тебя аномальное поведение (чтения out of bounds, откуда seg* прилетают - вот тут уже с файлами и строчками!), что спасает примерно всегда. CMake так и не осилил, зато есть прекрасный meson, в котором и тесты есть (в тестах тащу ассерты из unity нет, не тот, что игровой движок). Нюансы, конечно, остаются с внешними зависимостями - я пока обхожусь .wrap-файлами месона (по сути, в файлик кидаешь линк на репозиторий, и при билде тебе его склонируют и докинут к компиляции). И, собственно... А жить-то можно!
Да, еще остаются УБ, которые так с первого взгляда и не назовешь. Приколы препроцессора, от которых даже варнингов нет, и которые нужно просто понимать. Не очень удобно с отсутствием неймспейсов, у тебя по итогу вырабатывается жава-стиль с длинными именами. Но это и правда простой язык. Он учится за пару дней, и ты можешь просто сесть, и начать на нем программировать. Из нюансов, правда, я часа 2 над месоном сидел, пытался заставить его работать, но это, по сути, единоразовая инвестиция.
А вот интеграция с ИДЕ хуйня - цлион регулярно перезапускать приходится, потому что этот гидроцефал в очередной раз не может понять, откуда берется юнити в тестах.
Post #248
76
- ❤ 1