В реалиях индустрии с ноля ничего не пишут уже очень давно. Приходится изучать уже готовую кодовую базу, исправлять ошибки, добовлять функционал, портировать, готовить пакеты и тд. Из больших событий нового веенья и парадигмы - Guix декларативный подход к системе в целом полностью на Guile Scheme
уже раз ответил, но тред улетел дальше, а это важная тема. Так вот, я понимаю о чём ты, но для баланса - не соглашусь. Именно что, в реалиях, часто проще и правильней написать с нуля и ориентироваться на взаимодействие (в противовес иерархии). А вот следование идеологии "строительных блоков" хорошо работает только при строительстве пирамид... (кстати, см. введение SICP про Паскаль) . И Алан Кей не зря подчеркнул что даже в ООП главная идея была "сообщения", т.е. "взаимодействие" а не объекты и наследование... Хотя специфическим бизнесам очень зашла как-раз иерахическая модель, где программист - "заменяемый винтик"...