В чем разница между императивным и декларативным программированием?
What's up, программач.
В чем преимущества того или иного подхода?
Если вы не уверены, лучше не отвечайте.
Я прочел достаточно теории, и видел ряд примеров, но я все еще не улавливаю практической сути.
В каких ситуациях мне стоит использовать функциональные языки, в каких процедурные, в каких ООП?
Основное отличие - в декларативном языке описывается набор правил, каким должен быть результат без описания того как этот результат получается (например html, css, prolog), в императивном описывается как получить результат в виде последовательности действий.
императивное - когда ты приказываешь, как император: сделать это и чтобы реще.
декларативное - когда ты что-то задвигаешь, как поц в сенате, а делают уже по своему разумению
Вообще то, как мне кажется, относить функциональные языки и функциональное программирование к декларативному - это ошибка. Классически декларативное программирование - это PROLOG и все подобные инструменты... которые называют ещё логическим программированием.
Так что категории получаются: императивное, функциональное, декларативное ... что ещё? (кто больше?).