Несколько причин, по которым декларативные языки программирования не получили такого распространения, как императивные:
- Сложности с поддержкой работы с состоянием. yandex.ru Декларативные языки, в основном функциональные, плохо поддерживают работу с состоянием, что может быть неудобно для некоторых программистов, которым нужно моделировать в программах реальные процессы с состоянием. yandex.ru
- Ограничения в решении задач, для которых нужен доступ к состоянию программы. sky.pro На декларативном языке нельзя работать с задачами, для решения которых нужен доступ к состоянию программы. sky.pro
- Сложности с совмещением императивного и декларативного стилей программирования. habr.com Это связано с необходимостью разделять описываемые сущности на «данные» и «управляющие конструкции». habr.com
Однако у декларативных языков есть свои преимущества: они позволяют писать более безопасный и поддерживаемый код, который легко параллелится, а компиляторы декларативных языков имеют больше возможностей при оптимизации программ. tproger.ru