Разработчики систематизировали подходы к решению разных задач, составили общие принципы, распределили их по группам и назвали парадигмами — на примере салата попробуем разобраться в них.
Императивная парадигма
Императивная — это одна из самых простых и популярных парадигм. Главное правило: действия должны выполняться последовательно. Например, в приготовлении салата необходимо сначала нарезать овощи, потом перемешать их и добавить в конце масло.
Процедурное программирование
Процедурное программирование отчасти похоже на императивное, где в основе лежит функция. Это очередность действий, которые зафиксировали и дали им название. Например, рецепт салата оливье — это функция. Разработчик должен знать название функций и уметь их вызывать. При этом ему не нужно понимать, какие именно процессы происходят для достижения конкретного результата.
Объектно-ориентированное программирование
В этом подходе возникают объекты, которые самостоятельно запускают функции. На примере салата это выглядит так: блюдо готовит какой-то объект, который разрабатывается внутри системы. В действительности все эти функции выполняет процессор, который может сам отвечать за операции.
Декларативная парадигма
Здесь от разработчика требуется ответ на следующий вопрос «какого именно результата необходимо достичь?», а не «какие действия нужно сделать, чтобы выполнить задачу?». После получения вводных данных компьютер начинает заниматься поиском подходящего метода.
Если программист слишком размыто опишет результат, в этом случае система может выдать не то, что требуется. Например, программе сказали, что нужно приготовить салат оливье. Она начинает искать все известные рецепты и смешивать ингредиенты, в итоге может получиться салат без горошка, потом с говядиной и так до тех пор, пока не будет найден тот самый рецепт.
Функциональное программирование
В этом подходе все функции чистые и у них нет побочных эффектов. Можно заказать 10 раз салат оливье, и все порции будут одинаковые на вкус. Для того чтобы избежать побочных эффектов (изменения вкуса салата), необходимо не просто сделать заказ, а перечислить все ингредиенты, которые потребуются для приготовления. То есть функция каждый раз возвращает новый объект, поэтому побочного эффекта не возникает.
Если вы начинающий или опытный специалист по AI, ML, Big Data, Data Science и хотите вместе с командой создавать уникальные программы с искусственным интеллектом, то наш проект «Цифровой прорыв. Сезон: искусственный интеллект» будет полезен для вас.