Парадигмы программирования — это свод требований, которые используются в разных языках программирования. Их нельзя назвать статичным стоп-листом: это, скорее, варианты решения определенных задач.
Если хотите прокачаться в IT и освоить новую профессию с нуля, пройдите курсы онлайн-университета Skypro. Например, «Аналитик данных», «Инженер по тестированию», «Веб-разработчик». Программы актуальные, соответствуют требованиям работодателей к новичкам. Соберете портфолио и найдете высокооплачиваемую работу: в этом поможет центр карьеры.
Что такое парадигмы программирования
Парадигма — это набор взаимосвязанных требований и принципов, которые используют в процессе разработки программного обеспечения для ПК. Именно она регулирует и влияет на стилистику будущей программы, но при этом не влияет на выбор языка программирования.
От парадигм зависят любые этапы программирования: шаблоны, свойства, паттерны, структура, архитектура программы или мобильного приложения.
Императивное программирование
Главное отличие этого типа — последовательное выполнение задач. Большая часть языков заточена именно под него.
Раньше процедурные языки были популярными и востребованными у разработчиков ПО. Сейчас распространено объектно-ориентированное программирование (ООП).
📌 Процедурное программирование
Такой тип используется в языках C, Pascal, COBOL, ALGOL, BASIC, Fortran и т. д.
Базовое понятие — это функция или процедура в виде последовательно записанных и названных действий. Например, когда вы покупаете конструктор «Лего», его нужно собрать. Схема сборки, которая идет в комплекте, — и есть функция.
Несмотря на то что понятия «процедура» и «функция» — синонимы, функциональное и процедурное программирование — разные вещи. Функциональное основано на декларативной парадигме, а процедурное — на императивной.
Когда мы отдаем машину в ремонт, например перебрать двигатель, то нас не интересует, какие процессы выполняет автомеханик. Главная задача — получить результат. Аналогично и с вызовом функции. Необходимо знать только наименование процедуры и технику ее использования.
📌 Объектно-ориентированное программирование
Этот подвид применяется в языках Java, Python, C++, Ruby, C#, Objective-C, PHP и подобных.
Такой тип самый распространенный и многофункциональный. Здесь есть объекты, которые самостоятельно выполняют заданные функции, и настройка связей между ними.
С помощью ООП разработчик может настраивать связи между частями программы. Всё это нужно, чтобы выполнять разнородные операции и разделять их между сотрудниками. А еще так легче выполнять и тестировать ПО в автоматическом режиме.
Освоить ООП можно на курсах Skypro, например «Java-разработчик». За несколько месяцев выучите базовую теорию и закрепите знания на практике. Опытные наставники и кураторы будут поддерживать и мотивировать, а специалисты центра карьеры помогут найти работу еще до завершения курса.
Декларативное программирование
На контрасте с императивным стилем развивался и декларативный. В нём собирали лучшие практики, которые со временем стали парадигмами.
📌 Логическое программирование
Здесь речь идет скорее о математике, чем о программировании. Основа — использование математических доказательств и законов логики. Всё это помогает решать поставленные бизнес-задачи.
Чтобы успешно пользоваться таким типом программирования, важно уметь переводить любую задачу на язык математики.
Моделирование процессов — сегмент, в котором логическое программирование наиболее популярно.
📌 Функциональное программирование
Этот тип близок к понятию функции в математике — особенно та часть, которая касается раздела о преобразовании данных.
Главный нюанс в том, что функция должна быть чистой, не имеющей побочных эффектов или переменных внешней среды. Когда функция изменяет глобальную переменную или вызывает метод внешнего объекта, то она изменяет и внешнюю среду. В этом заключается побочный эффект.
Примеры использования парадигм программирования
Процедурная — для написания кода микрочипа
Здесь может быть особенно специфический процессор для разработки компилятора сложного объектно-ориентированного языка. Но надо помнить, что технических возможностей чипа может быть мало, чтобы программы нормально функционировали на современных языках.
Объектно-ориентированная
Есть много приложений для компьютеров и смартфонов, популярных интернет-сервисов, «умных» телевизоров и роутеров, которые написаны на объектно-ориентированном языке.
Декларативная — для описания внешнего вида сайтов
Здесь пишут на языке CSS. Через него указывают шрифт текста, цвет фона, размер картинки.
Функциональная — для криптовалюты и блокчейна
В этих областях главное — надежность. Они новые, поэтому открыты для экспериментов. Прочие языки стирают грань между математикой и программированием — это позволяет программировать математические доказательства.
Практически все парадигмы используют для промышленных программ общего назначения, например различные редакторы текста и графики, таблиц, приложений и т. д.
Но есть такие, которые используют в языках для специфических задач. Например, логическую парадигму разработчики берут для решения математических уравнений, а язык Prolog решает судоку.
Сравнение парадигм программирования
Представим, что есть массив следующих чисел:
412, 5, 625, 243, 2, 14, 30, 79, 4, 634, 367, 8, 34, 798, 159
В декларативном программировании разработчик пишет:
Получить из массива N все числа, которые больше 5 и меньше 500
В этом случае разработчику нужен исключительно конечный результат, а не процесс исполнения задачи.
Если выбрать императивный вариант программирования, то придется самостоятельно написать код, проверяющий все числа из массива N на соответствие условию. Код должен уметь выписывать их в новый массив.
Создать массив N с числами …;
объявить переменную i со значением 0;
Начало цикла:
Если значение элемента номер i больше 5 и меньше 500, то добавить его в массив N2;
Прибавить к переменной i единицу;
Повторять, пока значение переменной i меньше количества элементов массива N;
Конец цикла;
Вернуть массив N2;
То есть в декларативном программировании разработчик говорит, что ему нужно. А в императивном — как это можно получить.
Рассмотрим на примере:
Python (императивный) | Python (декларативный) |
n = arr = [412, 5, 625, 243, 2, 14, 30, 79, 4, 634, 367, 8, 34, 798, 159] result = [] for i in range(len(arr)): if arr[i] > 5 and arr[i] < 500: result.append(arr[i]) print(result) |
n = [412, 5, 625, 243, 2, 14, 30, 79, 4, 634, 367, 8, 34, 798, 159] result = list(filter(lambda x: x > 5 and x < 500, arr)) print(result) |
Освойте популярные языки программирования Java и Python с нуля в онлайн-университете Skypro. Программы соответствуют требованиям работодателей, постоянно обновляются. В конце обучения вы получите диплом и новую работу: гарантию трудоустройства фиксируем в договоре или возвращаем деньги за курс.
Если писать код на декларативном языке проще, зачем тогда выбирают императивное программирование? Есть три причины:
- Декларативное программирование не работает без императивного.
- На декларативном языке нельзя работать с задачами, для решения которых нужен доступ к состоянию программы.
- У императивного программирования меньше ограничений.
Пройдите обучение IT-профессиям с нуля с гарантией новой работы в онлайн-университете Skypro. В программах курсов — только актуальная информация и навыки, которые ценятся работодателями. Все гарантии честно прописаны в договоре. Средняя зарплата выпускников — 72 000 ₽, а специалисты центра карьеры будут сопровождать до тех пор, пока вы не найдете работу по новой профессии.
Главное
- Парадигма — это набор взаимосвязанных требований и принципов, которые используют в процессе разработки программного обеспечения для ПК.
- От парадигм зависят любые этапы программирования: шаблоны, свойства, паттерны, структура, архитектура программы или мобильного приложения.
- Есть императивное программирование и декларативное. Императивное включает в себя процедурное и объектно-ориентированное программирование. Декларативное — логическое и функциональное.
Добавить комментарий