Другое

Парадигмы программирования: определение, виды и их особенности

Lorem ipsum dolor

Молодому программисту бывает трудно разобраться со всеми терминами, которые используются в программировании. Помимо языка программирования, нужно понимать, что такое:

  •  парадигмы программирования,

  •  архитектура,

  •  шаблоны,

  •  подходы,

  •  паттерны,

  •  структура,

  •  и др.

Это все обязательно нужно изучать, но не сразу. Когда молодой программист только учит или выучил язык программирования и запускает свои первые скрипты, ему не обязательно понимать, что такое парадигмы программирования или какие паттерны лучше использовать. Это знания, которые придут чуть позже, иногда даже не в контексте первого изученного языка.

Задача таких веб-ресурсов, как наш, — помогать молодым профессионалам адаптироваться в программировании, окруженном кодом, языками и кучей непонятных терминов. Поэтому сегодня мы расскажем, что такое парадигмы программирования и какие они бывают.

Парадигмы программирования

Итак, что такое парадигма программирования? Парадигма — это совокупность правил, принципов и методик, которые применяются при написании программ. Парадигма определяет стиль написания программы и никак не связана с каким-то конкретным языком программирования. В одной парадигме программный код могут писать разные языки программирования, также один язык может писать код в различных парадигмах.

Если представить условную иерархию, тогда парадигмы программирования будут на самой вершине. Именно они будут определять правила написания, свойства, шаблоны, паттерны, структуру, архитектуру программы и др. То есть изначально идет парадигма, которая влечет все остальные собственные составляющие.

Основные парадигмы программирования

Если покопаться в сети, тогда можно найти множество определений выражению «парадигмы программирования». В разные годы разные программисты описывали это выражение своими словами. Изучив их все, можно заметить, что парадигмы, по сути, являются моделями программирования. Изучив, какие бывают основные парадигмы программирования, вы поймете, о чем речь.

Парадигма объектно-ориентированного программирования

Объектно-ориентированное программирование — это одна из самых распространенных моделей программирования. Его причисляют к другой парадигме — императивному программированию, однако правильнее говорить об ООП, потому что оно наиболее часто применяется.

Суть его сводится к тому, что в программе происходит манипуляция разными объектами. Исходя из этого, получается, что ООП преследует идеологию создания множества объектов. Каждый объект создается из другого объекта или класса, тем самым образовывая сложную иерархию.

Объектно-ориентированному программированию свойственны такие принципы, как:

  •  абстракция,

  •  инкапсуляция,

  •  наследование,

  •  полиморфизм.

Такой подход отлично реализуется в Java или С#, но также может быть реализован и в других языках в той или иной степени. ООП не объяснить в двух предложениях, поэтому мы обязательно опишем эту парадигму в отдельной статье.

Парадигма функционального программирования

Парадигма функционального программирования заняла почетное второе место по популярности после объектно-ориентированного программирования. Главная идея такой модели заключается в том, что программа создается под одну конкретную задачу, поэтому от нее ждут конкретный результат.

Программисты, которые отдельно используют ООП или ФП, часто спорят о том, какая из этих двух парадигм лучше. Но невозможно выделить лучшую, потому что выбор парадигмы зависит от требований к программе и языка, на котором она будет писаться. Язык, который был разработан для функционального программирования, — Haskell. Однако неплохо с этой парадигмой справляется Python.

В ООП основной компонент программы — объект. В функциональном программировании — функция. В функциях прописывается, какую информацию она должна получить в качестве входящего значения, а какую должна отдать. Функции могут быть вложенными — это когда одна функция является аргументом другой функции.

Программы, написанные по такой модели, обычно легче тестировать и читать, если сравнивать с ООП.

Процедурная парадигма программирования

Процедурная парадигма программирования основывается на процедурах. Процедура — это инструкция, которая используется для воздействия на состояние памяти. После исполнения всего набора инструкций программа выдает результат.

Процедурное программирование не так распространено, как первые две парадигмы, однако поддерживается в таких популярных языках, как С и Go. Такая парадигма по своей простоте схожа с функциональным программированием. Однако программы, написанные в такой модели, сложнее масштабировать.

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

В такой парадигме программист описывает проблему и ожидаемый результат, но не дает инструкций программе, как достичь этого результата. В таком подходе отсутствуют переменные, состояния программы и операторы присваивания.

К примеру, если написать программу в такой парадигме, которая будет вычислять из большого массива чисел все числа, которые больше 5, но меньше 500, тогда программисту нужно будет только написать что-то подобное: «Вычислить из «myArray» числа, которые больше 5, но меньше 500». При этом программисту не нужно будет описывать инструкции, каким образом программа должна найти эти числа, то есть он просто описывает результат.

Логическая парадигма программирования

Логическое программирование является подвидом декларативного. Это достаточно редкая парадигма. В ее основе лежит использование математической логики и математических принципов, то есть информация в программе выводится на основе заданных фактов, расчетов и набора математических правил. Если упростить понимание этой парадигмы до минимума, тогда можно сказать так: программа строится по принципу «вопрос-ответ».

Такой вид программирования используется языками Prolog и Planner.

Заключение

Теперь вы знаете ответ на вопрос: «Что такое парадигма программирования?». Если ответить одним выражением, то это «модель программирования». Парадигмы многообразны в своих разновидностях. Например, есть еще:

  •  структурное программирование,

  •  компонентно-ориентированное,

  •  прототипно-ориентированное,

  •  агентно-ориентированное,

  •  аппликативное,

  •  обобщенное,

  •  доказательное,

  •  порождающее программирование,

  •  и др.

Парадигмы программирования перекрещиваются между собой, дополняют друг друга, производят одна другую, поэтому их очень много. Иногда в одной программе используются несколько похожих парадигм, но не нужно без надобности «забивать себе голову» отличиями всех имеющихся парадигм. Самые основные, которые используются на данные момент, — это парадигма объектно-ориентированного и функционального программирования.

Схожие статьи

Другое

Как научиться делегировать обязанности подчиненным: реальные примеры

Как выбрать компьютер для программирования: лучшие настольные компы
Другое

Как выбрать компьютер для программирования: лучшие настольные компы

Самые большие числа и какое число идет после гугла
Другое

Самые большие числа и какое число идет после гугла

Lumberyard от Amazon: движок, который способен на очень многое
Другое

Lumberyard от Amazon: движок, который способен на очень многое