С популяризацией React начались дискуссии о декларативном программировании. Давайте посмотрим на разницу между императивным и декларативным программированием.
В императивном программировании вы даете компьютеру пошаговые инструкции о том, как выполнить задачу. В декларативном программировании вы упоминаете только то, что вам нужно достичь.
Например, если вы заходите к своему соседу и вам нужно воды, в императивной парадигме вы можете сказать:
- Возьмите стакан с полки
- Откройте кран
- Держите стакан под краном до тех пор, пока он не наполнится
- Закройте кран
- Дай мне стакан
В декларативной парадигме вам нужно только сказать: «Можно мне немного воды, пожалуйста».
В императивном программировании мы объявляем, как должна выполняться задача. В декларативном программировании программа сама решает, как выполнить задачу.
Большая часть C# и Java являются императивными. (Однако некоторые из них могут быть декларативными).
Вот пример, взятый из MS Docs для императивного программирования.
var numbersOneThroughTen = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var evenNumbers = new List<int>(); foreach (var number in numbersOneThroughTen) { if (number % 2 == 0) { evenNumbers.Add(number); } }
Вот та же задача, но на этот раз в декларативном программировании.
var numbersOneThroughTen = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var evenNumbers = numbersOneThroughTen.Select(number => number % 2 == 0);