Get Mystery Box with random crypto!

Як пояснити концепції потоків, промісів, лінтингу та декларати | Codica - корисне про IT

Як пояснити концепції потоків, промісів, лінтингу та декларативного програмування 5-річній дитині

Імперативне та декларативне програмування

Імперативне програмування схоже на їзду на авто з «механікою».

У будь-якій справі є два аспекти: «що» та «як». Тобто, що саме потрібно зробити і як ви збираєтеся це робити.

Імперативне програмування це «як». Декларативне – «що».

Імперативний підхід є переліком кроків. Зроби спочатку це, потім те, а потім щось ще. Наприклад: "Перебери список чисел по одному і додай значення кожного до загальної суми".

Декларативний підхід представляє, що у нас є і що нам потрібно. Наприклад: «У нас є список чисел, і нам потрібно отримати їхню суму». Імперативна мова для сучасних комп'ютерів зрозуміліша, бо вони вміють лише виконувати інструкції. Декларативний підхід ближче до нашого мислення та команд. «Зроби це, будь ласка. Все одно, як!»

Гарна новина у тому, що комп'ютерні мови розвиваються. Вони пропонують декларативні засоби здійснення необхідних комп'ютерних інструкцій. Так само, як машини вдосконалилися і перейшли від механічної до автоматичної коробки, а потім взагалі стали самоврядними!

Імперативне програмування - це як керування машиною з механічною коробкою передач. Вам потрібно здійснювати дії вручну (натиснути педаль, повільно відпустити, змінювати передачі навперемінки і т. п.). А декларативне програмування схоже на керування машиною на автоматиці: ви тільки позначаєте, що вам потрібно — паркуватися чи їхати.

Але ви не можете програмувати декларативно, якщо ви не маєте для цього необхідних інструментів. Імперативно вести машину з автоматичною коробкою передач можна (переключившись у ручний режим управління), але не можна вести декларативно машину на механіці.

Якщо у вас тільки машина з механічною коробкою передач, то імперативне програмування це ваш єдиний і очевидний вибір. Хіба що ви витратите час на встановлення автоматики, що у довгостроковій перспективі може бути вигідним. Якщо ж у вас є гроші на покупку нової машини, це швидше буде машина на автоматиці (якщо, звичайно, ви не дивний дивак, який досі любить писати код на Assembly)

Assembly це справжня імперативна низькорівнева комп'ютерна мова з інструкціями в чистому вигляді, що прямо переводяться в машинний код.

Майте на увазі, що за допомогою імперативного програмування можна створювати більш швидкі програми. А декларативне програмування потребує меншої кількості зусиль. Загалом, для підтримки програм, створених декларативно, також знадобиться менше зусиль.

Але програмування не має бути лише імперативним чи лише декларативним. Будь-яка нетривіальна комп'ютерна програма швидше за все поєднуватиме в собі обидва підходи. Крім того, вміти писати код декларативно це добре, але це не означає, що вам не слід навчитися робити те саме імперативно. Ви повинні освоїти обидва способи.

1 Частина. Програмування
2 Частина. Вивчення програмування
3 Частина. Змінні
4 Частина. Помилки та вийнятки
5 Частина. Реактивне програмування та потоки
6 Частина. Функції зворотного виклику та проміси
7 Частина. Черги та стеки
8 Частина. Парне програмування
9 Частина. Лінтинг та автоматизація завдань