Зачем учить язык Си в 2024 году | Как выбрать между C или C++ или Rust | Podlodka Podcast #387

Podlodka

Podlodka

76,858 views

С – язык, на котором написана значимая часть всего, что нас окружает: от ядра операционной системы до мозгов автомобиля, из колонок которого вы будете слушать этот подкаст. В выпуске вместе с Игорем Жирковым разбираемся с тем, насколько современный C похож на язык, с которым вы познакомились в той самой книге Кернигана и Ритчи, какие особенности делают его одним из самых нетерпимых языков к ошибкам программиста, и стоит ли вообще на нем писать код в 2024 году.


❓ Хочешь обсудить выпуск или задать вопрос эксперту? Вступай в наш Telegram-чат: https://t.me/podlodka
📰  Не любишь чаты, но хочешь оставаться в курсе дел и прокачивать свой IT кругозор? Подписывайся на наш Telegram-канал: там публикуются анонсы новых выпусков, а в комментах идут ценные и горячие обсуждения! 5 тысяч опытных IT-специалистов уже с нами: https://t.me/podlodkanews

Полезные ссылки:
Комитет по стандартизации C   https://www9.open-std.org/JTC1/SC22/W....
Three tribes of programming  https://josephg.com/blog/3-tribes/
Error model in Midori (про то, какие инварианты, пред- и пост-условия полезны для языка системного программирования)   https://joeduffyblog.com/2016/02/07/t...
Учебник Игоря по С и ассемблеру https://www.amazon.com/Low-Level-Prog...
Проблемы со стандартными потоками в C11 https://gustedt.wordpress.com/2012/10...
Когда есть смысл использовать goto  https://rubber-duck-typing.com/posts/...
John Carmack keynote speech Quakecon 2013 John Carmack's keynote at Quakecon 2013 pa...
Опыт изучения ФП и почему это необходимо программистам на таких языках как C/C++   John Carmack's keynote at Quakecon 2013 pa...
Хорошая книга по современному С  https://www.amazon.com/C-Programming-...
Онлайн-курс Игоря по основам C   https://stepik.org/course/73618/syllabus

Проекты которые можно осторожно посмотреть:
Лисп, написанный создателем Julia. Немного по-хакерски, но достаточно разумно https://github.com/JeffBezanson/femto...
musl libc   https://musl.libc.org/
OpenBSD source code   https://github.com/openbsd/src (чисто, но не очень современный стиль)
PostgreSQL source code   https://git.postgresql.org/gitweb/?p=... (чисто, но не очень современный стиль)

Чтобы осознать несовершенство своего кода, книги по формальной верификации:
Practical TLA+ by Hillel Wayne
https://www.hillelwayne.com/post/prac...
Software Abstractios by Daniel Jackson
https://www.amazon.com/Software-Abstr...
Software foundations
https://softwarefoundations.cis.upenn...
Unix Haters Handbook
https://web.mit.edu/~simsong/www/ugh.pdf

Тайм-коды:
00:00 О чем выпуск
05:00 Чем интересен Си
13:22 Мифы о Си
24:59 История развития языка Си
35:25 Стандарты Си
59:50 Современный Си и его отличия от старого
01:05:27 Топ-3 ошибок, которым подвержен Си
01:12:40 Ключевые фичи Си
01:21:10 Организация кода и модулей
01:26:09 Синтаксис и семантика Си
01:31:10 Неопределенное поведение и его последствия
01:39:24 Семантика и производительность
01:45:02 Оптимизация производительности
01:51:02 Компиляторы и их разнообразие
02:02:20 Экосистема Си
02:08:54 Какие языки могут заменить Си
02:16:05  Нужно ли преподавать Си в вузах
02:28:46 Заключение