С развитием человечества стали появляться различные технологии для облегчения обыденной жизни. Так возникла техника. Армия создала компьютеры, но со временем и эти устройства стали «общепринятыми». С момента их возникновения появилось и так называемое декларативное программирование. И не только оно.
Но что соответствующий элемент собой представляет, не совсем понятно обычному пользователю. В действительности все проще, чем кажется. Главное начинать упомянутую тематику с самого начала.
О языках: понятие
Первый вопрос, с которым сталкивается каждый юзер – что такое языки программирования. Не сложно дать грамотное определение.
Так называется некий набор правил формального характера, который используется для создания программ. Привычный «человеческий» язык необходим населению для общения между собой. А язык программирования – для «диалога» с соответствующей техникой.
Каждый вариант имеет собственную лексику – слова, функции и операторы. Руководствуясь правилами синтаксиса, специально обученный человек составляет выражения со строго определенным смыслом. Называется он семантикой.
Задумываясь, что такое языки программирования, можно просто уяснить – это то, что компьютер использует для «разговора» с пользователем и программным обеспечением. Своеобразный машинный код.
Отличие от алгоритмов
Приложения требуются для того, чтобы устройство умело выполнять различные функции. Без строго определенного порядка действий реализация поставленной задачи оказывается невозможной. Так называются алгоритмы.
Они работают подобно навигатору, указывая «маршруты». Алгоритм обычно одинаковый, а вот используемые для активации тех или иных операций языки программирования – разные.
Важно: любое приложение на устройстве непосредственно начинается с алгоритмов.
Виды – основная классификация
Задумываясь, что такое языки программирования, программирующий человек должен понимать – существует их классификация. Все то же самое, как в обычном мире – у каждого народа свой способ общения. Аналогичным образом ситуация обстоит и с машинами.
Общепринятые случаи позволяют разбить все programming languages на два больших раздела:
- процедурные;
- непроцедурные.
Каждый «класс» имеет свои собственные нюансы, о которых программисту (как текущему, так и будущему) придется знать в обязательном порядке.
О процедурных языках
Процедурная программа также называется алгоритмической. Представлена системой формальных предписаний, нацеленных на разрешение конкретных задач, обрабатываемых ЭВМ. Противоположна разработке, при которой цель компьютеру устанавливается общего представления, без формализованных алгоритмов. Этот вопрос отдается конкретной машине на «усмотрение».
Что такое процедурные языки программирования, понятно. Разделяются на два класса:
- низкого уровня (машинно-ориентированные);
- высокого уровня.
Соответствующие категории существенно отличаются друг от друга.
Низкоуровневые
Ориентированы на конкретные операционные системы (архитектуры), принимают во внимание их особенности. Это – некая «эволюция» машинного кода. Следуют низкоуровневые языки строго поставленным задачам, исходящим от процессора. Для человека весьма трудны в освоении, зато программа, созданная подобным образом, занимает мало места на жестком диске. Чаще всего представлены системными приложениями и драйверами. Отличаются высокой скоростью функционирования.
Высокоуровневые
Лучше распознаются человеком. Такой language быстрее осваивается программистами. Особенности конкретных процессоров не будут учитываться. Это значит, что можно с легкостью переносить софт с одной ОС на другую.
Важно: для реализации поставленной задачи принято задействовать утилиты под названием «трансляторы».
О непроцедурных языках
Все чаще пользователи задумываются над тем, что такое непроцедурные языки программирования. По названию понятно, что с «процедурами» как с таковыми работать не придется.
Разделяются на две крупные категории. Каждая из них отличается собственными ключевыми моментами, достойными внимания:
- декларативные;
- объектно-ориентированные.
Представляют собой более совершенные языки, которые получили широкое распространение в современном мире.
Императивный код
Существует так называемой императивное программирование. Это – некая парадигма, в которой для получения конечного результата прописывается цепочка действий. Использует в своей работе разнообразные операторы присваивания, переменные тех или иных типов, составные выражения.
Начался еще в 1949 году с некого Ассемблера. По мере развития технологий продолжился в самых популярных сегодня языках программирования: Java, C, C++. Сюда можно отнести объектно-ориентированные интерпретации.
У императивного программирования наблюдаются следующие характерные черты:
- исходный код софта – это некие инструкции (команды);
- выполнение осуществляется последовательно;
- данные, которые записала программа, могут прочитываться из памяти при помощи очередных инструкций;
- информация, получаемая программи вследствие выполнения алгоритма, доступна для сохранения.
Можно сказать, это – некие приказы в повелительном наклонении. Структура четко определена. Нарушение последовательностей приводит к сбою в работе утилиты. Обрабатываются команды исключительно процессором.
Изучая, что такое объектно-ориентированные языки программирования, можно заметить – это ряд независимых «частиц», работающих обособлено друг от друга. Некие «отдельные компьютеры». Соответствующие элементы способствуют разрешению тех или иных задач без особого внимания в принципы их работы. То есть, пользователь будет программировать на язы, используя разнообразные объекты на экране – линии, ломаные, кнопки и так далее.
Декларативный код
У декларативного программирования используется принцип спецификации решения поставленных задач. Пользователь описывает проблему, а также то, какой результат хочется получить на выходе. Алгоритм не имеет четкого определения.
Структура в таком варианте исключает присваивание и переменные. Задействуются в основном ссылочные кодификации. По Тьюрингу считаются неполными из-за того, что обрабатываемый код не всегда может работать согласно такой интерпретации.
Условно разделяются на два семейства:
- функциональные;
- логические.
В первом случае осуществляется формулировка задачи в качестве совокупности тех или иных функций. Во втором – описываются факты и формулы, которые компьютер решает посредством логических выводов в ходе обработки.
Об отличии языков простыми словами
Что такое языки программирования, понятно. Условно они разделяются на императивные и декларативные. Но обычному человеку, далекому от машинного кода, бывает проблематично понять разницу. Поэтому стоит рассмотреть ее на наглядном примере.
В императи задача представлена своеобразным «рецептом». Изобразить ее можно следующим образом:
- Включи плиту.
- Поставь средний огонь.
- Поставь сковородку на зажженную конфорку.
- Возьми два куриных яйца.
- Ударь по каждому ножом.
- Вылей содержимой в разогретую сковороду.
- Выкинь скорлупу.
- Возьми нож.
- Возьми батон колбасы.
- Порежь ножом колбасу на кружочки.
- Положи каждый кусок к яйцам в сковороду.
- Жарь.
- Сними при образовании золотистой корочки.
Хотя это императивное представление, декларативные нотки в нем есть.
Если же речь идет о «второй» категории языка, задача будет выглядеть так: Приготовь яичницу с колбасой. Каким именно образом действовать, «повар» должен решить самостоятельно. И сколько шагов предпринимать для реализации поставленной задачи – тоже.
На этих примерах можно заметить, как отличается структура в том или ином случае. Но результат и при одном, и при другом раскладе остается неизменным.
Внимание: при программировании пользоваться необходимо тем «способом общения к ПК», который кажется наиболее удобным. Можно попробовать то или вное представление и решить, как действовать предпочтительнее.
Самые популярные мировые языки – ТОП-10
После того, как стало понятно, что такое языки программирования, чем они отличаются друг от друга, стоит изучить обзор самых популярных мировых «способов общения с ПК». Все предложенные варианты излюблены настоящими профессионалами программных кодификаций. Они в той или иной степени относятся к императивным языкам программирования или декларативным.
C++ (Си плюс-плюс)
Один из основных вариантов, существующих с давнейших времен. Профессионалы считают, что освоение C++ является основой всех основ. Это – то, что чего стоит начать изучение рования. Спокойное владение этим вариантом указывает на истинных профессионализм при постоянном использовании на практике.
Раньше существовала только одна его интерпретация. С течением времени она начала обновляться и проходить стандартизации. По сей день остается актуальным вариантом.
Плюсы и минусы:
- Универсальность. Пользователи могут написать на нем все, что угодно.
- Простота использования и освоения. Если пользователь уже имел дело с другими языками, с C++ справиться ему будет намного проще. Правило действует и в обратную сторону.
- Неудобный синтаксис – не всегда комфортно прописывать команды.
- Огромные длинные программные кодификации.
Больше 30 лет программи рование на C++ пользуется спросом по всему миру.
Visual Basic
Относится к объектно-ориентированному виду. Трудно представить пользователя, который ни разу не слышал о подобном программировании. Дело все в том, что к нему относятся продукты Microsoft. Компания написала немало утилит при помощи VB. Прост в освоении, многофункционален, идеален для прототипов.
Способствует разработке пользовательского интерфейса в том или ином софте, а также предлагает широкий спектр возможностей для создания кодификаций. Работники Microsoft активируют его, когда создают таблицы данных.
К недостаткам относят:
- низкий уровень доступа к памяти задействованного устройства;
- отсутствие комментариев;
- относительно медленная скорость работы.
Visual Basic используется только с MacOS и Windows.
Python (Питон)
Каждый уважающий себя программист должен освоить Python. Изначально создавался для упрощения процесса написания сложного софта. Основывается на ранних разработках, включая в себя все соответствующие достижения. Регулярно обновляется и дорабатывается, становясь более совершенным.
Прост и многофункционален. Не отличается быстрой скоростью обработки операций. Некоторые отмечают, что программные коды здесь не совсем понятные, содержат большое количество ошибок.
PHP
Верный друг веб-мастера, когда необходимо создать строение сайта. Разобравшись, что такое языки программирования, всегда можно выбрать, чем именно пользоваться. PHP пользуется спросом у интернет-провайдеров. Является многоплатформенным и быстрым, удобным и одновременно с тем простым.
Недостатки:
- несовместимость версий друг с другом;
- отсутствие возможности создания софта многопотокового типа.
Является разновидностью императивной кодификации.
Delphi
Объектно-ориентированный вариант «общения» по типу компьютер-программист, основанный на Object Pascal. Имеет высокий уровень популярности, благодаря своей функциональности, наличию диалектов и компиляторов.
Делфи каждый опытный программист назвал бы универсальным. На нем пишут все, что захотят – от плееров до мессенджеров и файловых менеджеров. Наличие диалектов – это и плюс, и минус. Часто утилиты, написанные на одном из его типов, не открываются на иных версиях.
Java
Сразу можно отметить у Java мультиплатфоременность, благодаря которой язык стал пользоваться колоссальным успехом. Утилиты, написанные на нем, сгодятся для запуска практически на любой ОС. Большинство крупных приложений требуют наличия Java-модулей для нормальной стабильной работы.
Написанный софт не слишком быстро справляется с поставленными задачами. «Ест» слишком много места и оперативной памяти.
Важно: имеет различные модификации с собственными библиотеками, используемыми для спецзадач.
JavaScript
Простой, оснащенный большим количеством функций. Используется при написании различных программ, особенно браузеров. Способствует приданию веб-ресурсам большей интерактивности, упрощая юзеру взаимодействие с контентом.
На JavaScript делают плагины, прикладное ПО, серверные и офисные утилиты. Библиотеки высокоабстрактного характера лишь добавили популярности.
Но данный вариант не слишком безопасен. Софт, написанный на нем, часто сталкивается с ошибками. Но без javaScript на сегодняшний день интернет-обозреватели попросту перестанут функционировать.
Ruby
Если нужно изучить универсальный язык «общения» с компьютерами, стоит обратить внимание на Ruby. Является кроссплатформенным и относится к скриптовым. Относят к объектно-ориентированному.
Преимущества:
- простой и понятный синтаксис;
- кроссплатформенность;
- функциональность;
- динамичность;
- сбалансированность.
Ruby находится в свободном доступе. Его можно использовать, корректировать, копировать и даже распространять. Имеет немало библиотек с регулярным обновлением.
ActionScript
Разобравшись с тем, что такое языки программирования, важно определиться, на чем писать код. ActionScript, являясь мультимедийным и скриптовым, используется преимущественно для Flash-утилит.
Заточен под выполнение определенных целей. Это как плюс, так и минус. При использовании Flash отличается функциональностью. Признан гибким языком. Решение поставленных задач допускается различными и нестандартными путями. Их способен понять лишь тот, кто решился сделать соответствующую утилиту.
Важно: в кодификации легко запутаться.
Nemerle
Понятно, что такое языки программирования, какими они бывают. Но есть уникальные способы «общения» с компьютером – гибридным способом. Для этого отлично подходит Nemerle. Включает в себя объектно-ориентированные и функциональные нотки. Один из новых языков, позволяющих делать метапрограммы.
В данном случае вырабатываются алгоритмы, которые начнут создавать сценарии. Использование соответствующих текстов поможет образовывать исполняемые документы.
Это – симбиоз лучших качеств и полезных черт всех предыдущих языковых интерпретаций. Признан универсальным.
А что с декларативом?
Что такое языки программирования, ясно. Но в предложенном ТОПе почти не встречаются декларативные варианты. Это связано с их небольшой популярностью на фоне «аналогов». Имеются несколько наиболее влиятельных его вариантов, которые все еще встречаются в реальной жизни.
Lisp
Появился, благодаря некому Джону Маккарти. Старый высокоуровневый, активно используемый по сей день. Записи создаются при помощи систем линейных символьных списков. Встречается в промышленном программировании и веб-приложений массового применения.
SQL
Размышляя, что такое языки современного программирования, кажется, что это – нечто трудное и непонятное. К декларативному виду можно дополнительно отнести «язык баз данных». Речь идет об SQL.
Понятен юзеру и довольно прост в освоении. Подходов к написанию кодов не слишком много, так как SQL использует ограниченный набор команд и их сочетаний. Имеет несколько диалектов:
- T-SQL;
- PL/SQL;
- PL/pgSQL;
- MySQL.
Это – наиболее популярные варианты. Но ими диалекты не ограничиваются.
HTLM
Еще один вариант «общения» с компьютером – это HTML. Изучая, что такое языки программирования, стало ясно – они подходят для написания веб-страниц. HTML относятся к «разметочному».
При помощи данного варианта пишутся сайты. Преобладает использование тегов. Умеет:
- форматировать текст;
- редактировать текстовые блоки, создавая заголовки разных уровней, абзацы и так далее;
- работать с таблицами;
- вставлять объекты (звуковые и графические в том числе);
- контактировать с гиперссылками.
Но полноценное форматирование контента при помощи HTLM невозможно. Приходится подключать таблички стилей CSS.
Данная статья познакомила пользователей с основами способов «общения с ПК». Теперь ясно, что такое декларативное программирование, а также какие языки к нему относят. Но в обыденной жизни спросом пользуются другие программные разновидности. Были рассмотрены наиболее популярные из них.
<!DOCTYPE html>
<html dir="ltr" lang="ru-RU">
<head>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="profile" href="http://gmpg.org/xfn/11" />
<title>Виды программирования в современности. Основы декларативного языка OTUS</title>
<!-- All in One SEO 4.5.2.1 - aioseo.com -->
<meta name="description" content="С развитием человечества стали появляться различные технологии для облегчения обыденной жизни. Так возникла техника. Армия создала компьютеры, но со временем и эти устройства стали «общепринятыми». С момента их возникновения появилось и так называемое декларативное программирование. И не только оно. Но что соответствующий элемент собой представляет, не совсем понятно обычному пользователю. В действительности все проще, чем" />
<meta name="robots" content="max-image-preview:large" />
<link rel="canonical" href="https://otus.ru/journal/vidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka/" />
<meta name="generator" content="All in One SEO (AIOSEO) 4.5.2.1" />
<script type="application/ld+json" class="aioseo-schema">
{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/otus.ru\/journal\/vidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka\/#article","name":"\u0412\u0438\u0434\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0441\u0442\u0438. \u041e\u0441\u043d\u043e\u0432\u044b \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 OTUS","headline":"\u0412\u0438\u0434\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0441\u0442\u0438. \u041e\u0441\u043d\u043e\u0432\u044b \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430","author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2021\/08\/oj-1080x720-2.png","width":1080,"height":720},"datePublished":"2021-08-06T19:01:07+00:00","dateModified":"2021-08-07T10:13:59+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/otus.ru\/journal\/vidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka\/#webpage"},"isPartOf":{"@id":"https:\/\/otus.ru\/journal\/vidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka\/#webpage"},"articleSection":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u044f\u0437\u044b\u043a\u0438, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435"},{"@type":"BreadcrumbList","@id":"https:\/\/otus.ru\/journal\/vidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/#listItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/otus.ru\/journal\/","nextItem":"https:\/\/otus.ru\/journal\/vidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka\/#listItem"},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/vidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka\/#listItem","position":2,"name":"\u0412\u0438\u0434\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0441\u0442\u0438. \u041e\u0441\u043d\u043e\u0432\u044b \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430","previousItem":"https:\/\/otus.ru\/journal\/#listItem"}]},{"@type":"Organization","@id":"https:\/\/otus.ru\/journal\/#organization","name":"\u041e\u0442\u0443\u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","url":"https:\/\/otus.ru\/journal\/","sameAs":["https:\/\/www.youtube.com\/channel\/UCetgtvy93o3i3CvyGXKFU3g"],"contactPoint":{"@type":"ContactPoint","telephone":"+74999389202","contactType":"Customer Support"}},{"@type":"Person","@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author","url":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/","name":"A. Pavlenko","image":{"@type":"ImageObject","@id":"https:\/\/otus.ru\/journal\/vidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d4c499a104d7c2522fa41f89e6819499?s=96&d=mm&r=g","width":96,"height":96,"caption":"A. Pavlenko"}},{"@type":"WebPage","@id":"https:\/\/otus.ru\/journal\/vidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka\/#webpage","url":"https:\/\/otus.ru\/journal\/vidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka\/","name":"\u0412\u0438\u0434\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0441\u0442\u0438. \u041e\u0441\u043d\u043e\u0432\u044b \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 OTUS","description":"\u0421 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0442\u0430\u043b\u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0434\u043b\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u0438\u044f \u043e\u0431\u044b\u0434\u0435\u043d\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438. \u0422\u0430\u043a \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0442\u0435\u0445\u043d\u0438\u043a\u0430. \u0410\u0440\u043c\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043b\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b, \u043d\u043e \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0438 \u044d\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u0442\u0430\u043b\u0438 \u00ab\u043e\u0431\u0449\u0435\u043f\u0440\u0438\u043d\u044f\u0442\u044b\u043c\u0438\u00bb. \u0421 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0438\u0445 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0438 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0435 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u0418 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043d\u043e. \u041d\u043e \u0447\u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043e\u0431\u043e\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442, \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e. \u0412 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0449\u0435, \u0447\u0435\u043c","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/otus.ru\/journal\/#website"},"breadcrumb":{"@id":"https:\/\/otus.ru\/journal\/vidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka\/#breadcrumblist"},"author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"creator":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2021\/08\/oj-1080x720-2.png","@id":"https:\/\/otus.ru\/journal\/vidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka\/#mainImage","width":1080,"height":720},"primaryImageOfPage":{"@id":"https:\/\/otus.ru\/journal\/vidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka\/#mainImage"},"datePublished":"2021-08-06T19:01:07+00:00","dateModified":"2021-08-07T10:13:59+00:00"},{"@type":"WebSite","@id":"https:\/\/otus.ru\/journal\/#website","url":"https:\/\/otus.ru\/journal\/","name":"OTUS JOURNAL","description":"Blog about IT","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"}}]}
</script>
<!-- All in One SEO -->
<link rel='dns-prefetch' href='//otus.ru' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='stylesheet' id='wp-block-library-css' href='https://otus.ru/journal/wp-includes/css/dist/block-library/style.min.css?ver=6.4.7' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
.wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
.wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='wbcr-comments-plus-url-span-css' href='https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/css/url-span.css?ver=2.2.0' type='text/css' media='all' />
<link rel='stylesheet' id='wpel-style-css' href='https://otus.ru/journal/wp-content/plugins/wp-external-links/public/css/wpel.css?ver=2.59' type='text/css' media='all' />
<link rel='stylesheet' id='ez-toc-css' href='https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=2.0.61' type='text/css' media='all' />
<style id='ez-toc-inline-css' type='text/css'>
div#ez-toc-container .ez-toc-title {font-size: 120%;}div#ez-toc-container .ez-toc-title {font-weight: 500;}div#ez-toc-container ul li {font-size: 95%;}div#ez-toc-container nav ul ul li {font-size: 90%;}
.ez-toc-container-direction {direction: ltr;}.ez-toc-counter ul{counter-reset: item ;}.ez-toc-counter nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }.ez-toc-widget-direction {direction: ltr;}.ez-toc-widget-container ul{counter-reset: item ;}.ez-toc-widget-container nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }
</style>
<link rel='stylesheet' id='contentberg-fonts-css' href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C500%2C700%7CPT+Serif%3A400%2C400i%2C600%7CIBM+Plex+Serif%3A500' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-core-css' href='https://otus.ru/journal/wp-content/themes/contentberg/style.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-lightbox-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/lightbox.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/fontawesome/css/font-awesome.min.css?ver=1.8.3' type='text/css' media='all' />
<script type="text/javascript" id="breeze-prefetch-js-extra">
/* <![CDATA[ */
var breeze_prefetch = {"local_url":"https:\/\/otus.ru\/journal","ignore_remote_prefetch":"1","ignore_list":["\/wp-admin\/"]};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js" id="breeze-prefetch-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/lazysizes.js" id="lazysizes-js"></script>
<link rel="https://api.w.org/" href="https://otus.ru/journal/wp-json/" /><link rel="alternate" type="application/json" href="https://otus.ru/journal/wp-json/wp/v2/posts/1692" /><link rel='shortlink' href='https://otus.ru/journal/?p=1692' />
<link rel="alternate" type="application/json+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fvidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka%2F" />
<link rel="alternate" type="text/xml+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fvidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka%2F&format=xml" />
<script>var Sphere_Plugin = {"ajaxurl":"https:\/\/otus.ru\/journal\/wp-admin\/admin-ajax.php"};</script><link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-32x32.png" sizes="32x32" />
<link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-180x180.png" />
<meta name="msapplication-TileImage" content="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-270x270.png" />
<style type="text/css" id="wp-custom-css">
#menu-item-10406 .wpel-icon {
display: none;
}
#menu-item-10407 .wpel-icon {
display: none;
}
.otus-login-site a .wpel-icon {
display: none;
}
.menu-menju-navykov-container a .wpel-icon {
display: none;
}
.otus-login-site a
{
background: #ffd709;
border-radius: 12px;
color: #0f0f10;
font-size: 14px;
font-weight: 700;
line-height: 20px;
display: block;
text-align: center;
padding: 8px 25px;
}
.main-footer.dark {
background: linear-gradient(90deg, #a64fc5, #4f54e6);
border-color: transparent;
}
.main-footer.bold .copyright {
color: #fff;
}
.main-footer.bold .to-top i {
color: #fff;
}
.main-footer.bold .back-to-top {
color: #fff;
}
.nav__scroll {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.scrollable-menu .menu {
display: flex;
}
.nav__scroll
{
background: linear-gradient(90deg, #a64fc5, #4f54e6);
}
.scrollable-menu .menu .menu-item {
flex: 0 0 auto;
padding: 15px 15px;
}
.scrollable-menu .menu .menu-item a {
color: #fff;
}
.nav__scroll::-webkit-scrollbar{background-color:#fff;height:5px;}
.nav__scroll::-webkit-scrollbar-thumb{background-color:#dcdcdc;}
.nav__scroll::-webkit-scrollbar-track{-webkit-border-radius:0;border-radius:0;background-color:#fff;}/
body {
min-width: 320px;
}
.banner-click img {
margin: 0 auto;
display: block;
}
.banner-click {
cursor: pointer;
}
.banner-footer-area {
margin-bottom: 20px;
}
.banner-left-area {
margin-top: 40px;
} </style>
<!--Start VDZ Yandex Metrika Plugin-->
<!-- Yandex.Metrika counter --><script type="text/javascript" >(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");ym(34531570, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true, ecommerce:"dataLayer"});</script>
<noscript><div><img src="https://mc.yandex.ru/watch/34531570" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter --><!--START ADD EVENTS FROM CF7--><script type='text/javascript'>document.addEventListener( 'wpcf7submit', function( event ) {
//event.detail.contactFormId;
if(ym){
//console.log(event.detail);
ym(34531570, 'reachGoal', 'VDZ_SEND_CONTACT_FORM_7');
ym(34531570, 'params', {
page_url: window.location.href,
status: event.detail.status,
locale: event.detail.contactFormLocale,
form_id: event.detail.contactFormId,
});
}
}, false );
</script><!--END ADD EVENTS FROM CF7-->
<!--End VDZ Yandex Metrika Plugin-->
</head>
<body class="post-template-default single single-post postid-1692 single-format-standard right-sidebar lazy-normal has-lb">
<div class="main-wrap">
<header id="main-head" class="main-head head-nav-below has-search-modal simple simple-boxed">
<div class="inner inner-head" data-sticky-bar="0">
<div class="wrap cf wrap-head">
<div class="left-contain">
<span class="mobile-nav"><i class="fa fa-bars"></i></span>
<div class="title">
<a href="https://otus.ru/journal/" title="OTUS JOURNAL" rel="home" data-wpel-link="internal">
<span class="text-logo"><img src="/journal/wp-content/themes/contentberg/img/logo_site.svg" alt="OTUS JOURNAL"></span>
</a>
</div>
</div>
<div class="navigation-wrap inline">
<nav class="navigation inline simple light" data-sticky-bar="0">
<div class="menu-rubriki-container"><ul id="menu-rubriki" class="menu"><li id="menu-item-109" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-1 menu-item-109"><a href="https://otus.ru/journal/category/pro-it/" data-wpel-link="internal"><span>Про IT</span></a></li>
<li id="menu-item-113" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-cat-4 menu-item-113"><a href="https://otus.ru/journal/category/polza/" data-wpel-link="internal"><span>Полезное</span></a></li>
<li id="menu-item-114" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-3 menu-item-114"><a href="https://otus.ru/journal/category/lifestyle/" data-wpel-link="internal"><span>Лайфстайл</span></a></li>
<li id="menu-item-10406" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10406"><a href="https://otus.ru/catalog/courses" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Обучение</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10407" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10407"><a href="https://otus.ru/about" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Информация</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </nav>
</div>
<div class="actions">
<div class="otus-login-site">
<a href="https://otus.ru/login/" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Войти<span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
<a href="#" title="Search" class="search-link"><i class="fa fa-search"></i></a>
</div>
</div>
</div>
</header> <!-- .main-head -->
<div class="nav nav_disable nav_colored nav_transparent course-categories__nav nav__scroll ">
<div class="container wrap">
<div class="links inline simple light scrollable-menu">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov" class="menu"><li id="menu-item-10413" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10414" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10415" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10416" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10417" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10418" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10419" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10420" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10421" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
</div>
</div>
<div class="main wrap">
<div class="ts-row cf">
<div class="col-8 main-content cf">
<article id="post-1692" class="the-post post-1692 post type-post status-publish format-standard has-post-thumbnail category-polza tag-deklarativnye-yazyki tag-programmirovanie">
<header class="post-header the-post-header cf">
<div class="post-meta the-post-meta">
<span class="post-cat">
<a href="https://otus.ru/journal/category/polza/" class="category" data-wpel-link="internal">Полезное</a>
</span>
<h1 class="post-title">
Виды программирования в современности. Основы декларативного языка
</h1>
<a href="https://otus.ru/journal/vidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka/" class="date-link" data-wpel-link="internal"><time class="post-date">6 августа, 2021</time></a>
</div>
<div class="featured">
<a href="https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-2.png" class="image-link" data-wpel-link="internal"><img width="770" height="515" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20770%20515%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-contentberg-main size-contentberg-main lazyload wp-post-image" alt="Виды программирования в современности. Основы декларативного языка" title="Виды программирования в современности. Основы декларативного языка" decoding="async" fetchpriority="high" data-srcset="https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-2-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-2-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-2-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-2-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-2-270x180.png 270w" data-src="https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-2-770x515.png" data-sizes="(max-width: 770px) 100vw, 770px" /> </a>
</div>
</header><!-- .post-header -->
<div class="post-content description cf entry-content content-normal">
<div id="ez-toc-container" class="ez-toc-v2_0_61 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction">
<div class="ez-toc-title-container">
<p class="ez-toc-title " >Содержание</p>
<span class="ez-toc-title-toggle"><a href="#" class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle" aria-label="Toggle Table of Content"><span class="ez-toc-js-icon-con"><span class=""><span class="eztoc-hide" style="display:none;">Toggle</span><span class="ez-toc-icon-toggle-span"><svg style="fill: #999;color:#999" xmlns="http://www.w3.org/2000/svg" class="list-377408" width="20px" height="20px" viewBox="0 0 24 24" fill="none"><path d="M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z" fill="currentColor"></path></svg><svg style="fill: #999;color:#999" class="arrow-unsorted-368013" xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" viewBox="0 0 24 24" version="1.2" baseProfile="tiny"><path d="M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z"/></svg></span></span></span></a></span></div>
<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-1" href="#%D0%9E_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0%D1%85_%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D0%B5" title="О языках: понятие">О языках: понятие</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-2" href="#%D0%9E%D1%82%D0%BB%D0%B8%D1%87%D0%B8%D0%B5_%D0%BE%D1%82_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%BE%D0%B2" title="Отличие от алгоритмов">Отличие от алгоритмов</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-3" href="#%D0%92%D0%B8%D0%B4%D1%8B_%E2%80%93_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0%D1%8F_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F" title="Виды – основная классификация">Виды – основная классификация</a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-4" href="#%D0%9E_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D0%B4%D1%83%D1%80%D0%BD%D1%8B%D1%85_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0%D1%85" title="О процедурных языках">О процедурных языках</a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class="ez-toc-link ez-toc-heading-5" href="#%D0%9D%D0%B8%D0%B7%D0%BA%D0%BE%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5%D0%B2%D1%8B%D0%B5" title="Низкоуровневые">Низкоуровневые</a></li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class="ez-toc-link ez-toc-heading-6" href="#%D0%92%D1%8B%D1%81%D0%BE%D0%BA%D0%BE%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5%D0%B2%D1%8B%D0%B5" title="Высокоуровневые">Высокоуровневые</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-7" href="#%D0%9E_%D0%BD%D0%B5%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D0%B4%D1%83%D1%80%D0%BD%D1%8B%D1%85_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0%D1%85" title="О непроцедурных языках">О непроцедурных языках</a></li></ul></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-8" href="#%D0%98%D0%BC%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4" title="Императивный код">Императивный код</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-9" href="#%D0%94%D0%B5%D0%BA%D0%BB%D0%B0%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4" title="Декларативный код">Декларативный код</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-10" href="#%D0%9E%D0%B1_%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B8%D0%B8_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%8B%D0%BC%D0%B8_%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D0%BC%D0%B8" title="Об отличии языков простыми словами">Об отличии языков простыми словами</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-11" href="#%D0%A1%D0%B0%D0%BC%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BF%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D1%8B%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B8_%E2%80%93_%D0%A2%D0%9E%D0%9F-10" title="Самые популярные мировые языки – ТОП-10">Самые популярные мировые языки – ТОП-10</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-12" href="#C_%D0%A1%D0%B8_%D0%BF%D0%BB%D1%8E%D1%81-%D0%BF%D0%BB%D1%8E%D1%81" title="C++ (Си плюс-плюс)">C++ (Си плюс-плюс)</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-13" href="#Visual_Basic" title="Visual Basic">Visual Basic</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-14" href="#Python_%D0%9F%D0%B8%D1%82%D0%BE%D0%BD" title="Python (Питон)">Python (Питон)</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-15" href="#PHP" title="PHP">PHP</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-16" href="#Delphi" title="Delphi">Delphi</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-17" href="#Java" title="Java">Java</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-18" href="#JavaScript" title="JavaScript">JavaScript</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-19" href="#Ruby" title="Ruby">Ruby</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-20" href="#ActionScript" title="ActionScript">ActionScript</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-21" href="#Nemerle" title="Nemerle">Nemerle</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-22" href="#%D0%90_%D1%87%D1%82%D0%BE_%D1%81_%D0%B4%D0%B5%D0%BA%D0%BB%D0%B0%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BE%D0%BC" title="А что с декларативом?">А что с декларативом?</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-23" href="#Lisp" title="Lisp">Lisp</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-24" href="#SQL" title="SQL">SQL</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-25" href="#HTLM" title="HTLM">HTLM</a></li></ul></li></ul></nav></div>
<p>С развитием человечества стали появляться различные технологии для облегчения обыденной жизни. Так возникла техника. Армия создала компьютеры, но со временем и эти устройства стали «общепринятыми». С момента их возникновения появилось и так называемое декларативное программирование. И не только оно.</p>
<p>Но что соответствующий элемент собой представляет, не совсем понятно обычному пользователю. В действительности все проще, чем кажется. Главное начинать упомянутую тематику с самого начала.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0%D1%85_%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D0%B5"></span>О языках: понятие<span class="ez-toc-section-end"></span></h2>
<p>Первый вопрос, с которым сталкивается каждый юзер – что такое языки программирования. Не сложно дать грамотное определение.</p>
<p>Так называется некий набор правил формального характера, который используется для создания программ. Привычный «человеческий» язык необходим населению для общения между собой. А язык программирования – для «диалога» с соответствующей техникой.</p>
<p>Каждый вариант имеет собственную лексику – слова, функции и операторы. Руководствуясь правилами синтаксиса, специально обученный человек составляет выражения со строго определенным смыслом. Называется он семантикой.</p>
<p>Задумываясь, что такое языки программирования, можно просто уяснить – это то, что компьютер использует для «разговора» с пользователем и программным обеспечением. Своеобразный машинный код.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D1%82%D0%BB%D0%B8%D1%87%D0%B8%D0%B5_%D0%BE%D1%82_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%BE%D0%B2"></span>Отличие от алгоритмов<span class="ez-toc-section-end"></span></h3>
<p>Приложения требуются для того, чтобы устройство умело выполнять различные функции. Без строго определенного порядка действий реализация поставленной задачи оказывается невозможной. Так называются алгоритмы.</p>
<p>Они работают подобно навигатору, указывая «маршруты». Алгоритм обычно одинаковый, а вот используемые для активации тех или иных операций языки программирования – разные.</p>
<p>Важно: любое приложение на устройстве непосредственно начинается с алгоритмов.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%92%D0%B8%D0%B4%D1%8B_%E2%80%93_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0%D1%8F_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F"></span>Виды – основная классификация<span class="ez-toc-section-end"></span></h2>
<p>Задумываясь, что такое языки программирования, программирующий человек должен понимать – существует их классификация. Все то же самое, как в обычном мире – у каждого народа свой способ общения. Аналогичным образом ситуация обстоит и с машинами.</p>
<p>Общепринятые случаи позволяют разбить все programming languages на два больших раздела:</p>
<ul><li>процедурные;</li><li>непроцедурные.</li></ul>
<p>Каждый «класс» имеет свои собственные нюансы, о которых программисту (как текущему, так и будущему) придется знать в обязательном порядке.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D0%B4%D1%83%D1%80%D0%BD%D1%8B%D1%85_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0%D1%85"></span>О процедурных языках<span class="ez-toc-section-end"></span></h4>
<p>Процедурная программа также называется алгоритмической. Представлена системой формальных предписаний, нацеленных на разрешение конкретных задач, обрабатываемых ЭВМ. Противоположна разработке, при которой цель компьютеру устанавливается общего представления, без формализованных алгоритмов. Этот вопрос отдается конкретной машине на «усмотрение».</p>
<p>Что такое процедурные языки программирования, понятно. Разделяются на два класса:</p>
<ul><li>низкого уровня (машинно-ориентированные);</li><li>высокого уровня.</li></ul>
<p>Соответствующие категории существенно отличаются друг от друга.</p>
<h5 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9D%D0%B8%D0%B7%D0%BA%D0%BE%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5%D0%B2%D1%8B%D0%B5"></span>Низкоуровневые<span class="ez-toc-section-end"></span></h5>
<p>Ориентированы на конкретные операционные системы (архитектуры), принимают во внимание их особенности. Это – некая «эволюция» машинного кода. Следуют низкоуровневые языки строго поставленным задачам, исходящим от процессора. Для человека весьма трудны в освоении, зато программа, созданная подобным образом, занимает мало места на жестком диске. Чаще всего представлены системными приложениями и драйверами. Отличаются высокой скоростью функционирования.</p>
<h5 class="wp-block-heading"><span class="ez-toc-section" id="%D0%92%D1%8B%D1%81%D0%BE%D0%BA%D0%BE%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5%D0%B2%D1%8B%D0%B5"></span>Высокоуровневые<span class="ez-toc-section-end"></span></h5>
<p>Лучше распознаются человеком. Такой language быстрее осваивается программистами. Особенности конкретных процессоров не будут учитываться. Это значит, что можно с легкостью переносить софт с одной ОС на другую.</p>
<p>Важно: для реализации поставленной задачи принято задействовать утилиты под названием «трансляторы».</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E_%D0%BD%D0%B5%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D0%B4%D1%83%D1%80%D0%BD%D1%8B%D1%85_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0%D1%85"></span>О непроцедурных языках<span class="ez-toc-section-end"></span></h4>
<p>Все чаще пользователи задумываются над тем, что такое непроцедурные языки программирования. По названию понятно, что с «процедурами» как с таковыми работать не придется.</p>
<p>Разделяются на две крупные категории. Каждая из них отличается собственными ключевыми моментами, достойными внимания:</p>
<ul><li>декларативные;</li><li>объектно-ориентированные.</li></ul>
<p>Представляют собой более совершенные языки, которые получили широкое распространение в современном мире.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%98%D0%BC%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4"></span>Императивный код<span class="ez-toc-section-end"></span></h2>
<p>Существует так называемой императивное программирование. Это – некая парадигма, в которой для получения конечного результата прописывается цепочка действий. Использует в своей работе разнообразные операторы присваивания, переменные тех или иных типов, составные выражения.</p>
<p>Начался еще в 1949 году с некого Ассемблера. По мере развития технологий продолжился в самых популярных сегодня языках программирования: Java, C, C++. Сюда можно отнести объектно-ориентированные интерпретации.</p>
<p>У императивного программирования наблюдаются следующие характерные черты:</p>
<ul><li>исходный код софта – это некие инструкции (команды);</li><li>выполнение осуществляется последовательно;</li><li>данные, которые записала программа, могут прочитываться из памяти при помощи очередных инструкций;</li><li>информация, получаемая программи вследствие выполнения алгоритма, доступна для сохранения.</li></ul>
<p>Можно сказать, это – некие приказы в повелительном наклонении. Структура четко определена. Нарушение последовательностей приводит к сбою в работе утилиты. Обрабатываются команды исключительно процессором.</p>
<p>Изучая, что такое объектно-ориентированные языки программирования, можно заметить – это ряд независимых «частиц», работающих обособлено друг от друга. Некие «отдельные компьютеры». Соответствующие элементы способствуют разрешению тех или иных задач без особого внимания в принципы их работы. То есть, пользователь будет программировать на язы, используя разнообразные объекты на экране – линии, ломаные, кнопки и так далее.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%94%D0%B5%D0%BA%D0%BB%D0%B0%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4"></span>Декларативный код<span class="ez-toc-section-end"></span></h2>
<p>У декларативного программирования используется принцип спецификации решения поставленных задач. Пользователь описывает проблему, а также то, какой результат хочется получить на выходе. Алгоритм не имеет четкого определения.</p>
<p>Структура в таком варианте исключает присваивание и переменные. Задействуются в основном ссылочные кодификации. По Тьюрингу считаются неполными из-за того, что обрабатываемый код не всегда может работать согласно такой интерпретации.</p>
<p>Условно разделяются на два семейства:</p>
<ul><li>функциональные;</li><li>логические.</li></ul>
<p>В первом случае осуществляется формулировка задачи в качестве совокупности тех или иных функций. Во втором – описываются факты и формулы, которые компьютер решает посредством логических выводов в ходе обработки.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D0%B1_%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B8%D0%B8_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%8B%D0%BC%D0%B8_%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D0%BC%D0%B8"></span>Об отличии языков простыми словами<span class="ez-toc-section-end"></span></h2>
<p>Что такое языки программирования, понятно. Условно они разделяются на императивные и декларативные. Но обычному человеку, далекому от машинного кода, бывает проблематично понять разницу. Поэтому стоит рассмотреть ее на наглядном примере.</p>
<p>В императи задача представлена своеобразным «рецептом». Изобразить ее можно следующим образом:</p>
<ol type="1"><li>Включи плиту.</li><li>Поставь средний огонь.</li><li>Поставь сковородку на зажженную конфорку.</li><li>Возьми два куриных яйца.</li><li>Ударь по каждому ножом.</li><li>Вылей содержимой в разогретую сковороду.</li><li>Выкинь скорлупу.</li><li>Возьми нож.</li><li>Возьми батон колбасы.</li><li>Порежь ножом колбасу на кружочки.</li><li>Положи каждый кусок к яйцам в сковороду.</li><li>Жарь.</li><li>Сними при образовании золотистой корочки.</li></ol>
<p>Хотя это императивное представление, декларативные нотки в нем есть.</p>
<p>Если же речь идет о «второй» категории языка, задача будет выглядеть так: Приготовь яичницу с колбасой. Каким именно образом действовать, «повар» должен решить самостоятельно. И сколько шагов предпринимать для реализации поставленной задачи – тоже.</p>
<p>На этих примерах можно заметить, как отличается структура в том или ином случае. Но результат и при одном, и при другом раскладе остается неизменным.</p>
<p>Внимание: при программировании пользоваться необходимо тем «способом общения к ПК», который кажется наиболее удобным. Можно попробовать то или вное представление и решить, как действовать предпочтительнее.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D0%B0%D0%BC%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BF%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D1%8B%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B8_%E2%80%93_%D0%A2%D0%9E%D0%9F-10"></span>Самые популярные мировые языки – ТОП-10<span class="ez-toc-section-end"></span></h2>
<p>После того, как стало понятно, что такое языки программирования, чем они отличаются друг от друга, стоит изучить обзор самых популярных мировых «способов общения с ПК». Все предложенные варианты излюблены настоящими профессионалами программных кодификаций. Они в той или иной степени относятся к императивным языкам программирования или декларативным.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="C_%D0%A1%D0%B8_%D0%BF%D0%BB%D1%8E%D1%81-%D0%BF%D0%BB%D1%8E%D1%81"></span>C++ (Си плюс-плюс)<span class="ez-toc-section-end"></span></h3>
<p>Один из основных вариантов, существующих с давнейших времен. Профессионалы считают, что освоение C++ является основой всех основ. Это – то, что чего стоит начать изучение рования. Спокойное владение этим вариантом указывает на истинных профессионализм при постоянном использовании на практике.</p>
<p>Раньше существовала только одна его интерпретация. С течением времени она начала обновляться и проходить стандартизации. По сей день остается актуальным вариантом.</p>
<p>Плюсы и минусы:</p>
<ol type="1"><li>Универсальность. Пользователи могут написать на нем все, что угодно.</li><li>Простота использования и освоения. Если пользователь уже имел дело с другими языками, с C++ справиться ему будет намного проще. Правило действует и в обратную сторону.</li><li>Неудобный синтаксис – не всегда комфортно прописывать команды.</li><li>Огромные длинные программные кодификации.</li></ol>
<p>Больше 30 лет программи рование на C++ пользуется спросом по всему миру.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Visual_Basic"></span>Visual Basic<span class="ez-toc-section-end"></span></h3>
<p>Относится к объектно-ориентированному виду. Трудно представить пользователя, который ни разу не слышал о подобном программировании. Дело все в том, что к нему относятся продукты Microsoft. Компания написала немало утилит при помощи VB. Прост в освоении, многофункционален, идеален для прототипов.</p>
<p>Способствует разработке пользовательского интерфейса в том или ином софте, а также предлагает широкий спектр возможностей для создания кодификаций. Работники Microsoft активируют его, когда создают таблицы данных.</p>
<p>К недостаткам относят:</p>
<ul><li>низкий уровень доступа к памяти задействованного устройства;</li><li>отсутствие комментариев;</li><li>относительно медленная скорость работы.</li></ul>
<p>Visual Basic используется только с MacOS и Windows.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Python_%D0%9F%D0%B8%D1%82%D0%BE%D0%BD"></span>Python (Питон)<span class="ez-toc-section-end"></span></h3>
<p>Каждый уважающий себя программист должен освоить Python. Изначально создавался для упрощения процесса написания сложного софта. Основывается на ранних разработках, включая в себя все соответствующие достижения. Регулярно обновляется и дорабатывается, становясь более совершенным.</p>
<p>Прост и многофункционален. Не отличается быстрой скоростью обработки операций. Некоторые отмечают, что программные коды здесь не совсем понятные, содержат большое количество ошибок.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="PHP"></span>PHP<span class="ez-toc-section-end"></span></h3>
<p>Верный друг веб-мастера, когда необходимо создать строение сайта. Разобравшись, что такое языки программирования, всегда можно выбрать, чем именно пользоваться. PHP пользуется спросом у интернет-провайдеров. Является многоплатформенным и быстрым, удобным и одновременно с тем простым.</p>
<p>Недостатки:</p>
<ul><li>несовместимость версий друг с другом;</li><li>отсутствие возможности создания софта многопотокового типа.</li></ul>
<p>Является разновидностью императивной кодификации.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Delphi"></span>Delphi<span class="ez-toc-section-end"></span></h3>
<p>Объектно-ориентированный вариант «общения» по типу компьютер-программист, основанный на Object Pascal. Имеет высокий уровень популярности, благодаря своей функциональности, наличию диалектов и компиляторов.</p>
<p>Делфи каждый опытный программист назвал бы универсальным. На нем пишут все, что захотят – от плееров до мессенджеров и файловых менеджеров. Наличие диалектов – это и плюс, и минус. Часто утилиты, написанные на одном из его типов, не открываются на иных версиях.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Java"></span>Java<span class="ez-toc-section-end"></span></h3>
<p>Сразу можно отметить у Java мультиплатфоременность, благодаря которой язык стал пользоваться колоссальным успехом. Утилиты, написанные на нем, сгодятся для запуска практически на любой ОС. Большинство крупных приложений требуют наличия Java-модулей для нормальной стабильной работы.</p>
<p>Написанный софт не слишком быстро справляется с поставленными задачами. «Ест» слишком много места и оперативной памяти.</p>
<p>Важно: имеет различные модификации с собственными библиотеками, используемыми для спецзадач.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="JavaScript"></span>JavaScript<span class="ez-toc-section-end"></span></h3>
<p>Простой, оснащенный большим количеством функций. Используется при написании различных программ, особенно браузеров. Способствует приданию веб-ресурсам большей интерактивности, упрощая юзеру взаимодействие с контентом.</p>
<p>На JavaScript делают плагины, прикладное ПО, серверные и офисные утилиты. Библиотеки высокоабстрактного характера лишь добавили популярности.</p>
<p>Но данный вариант не слишком безопасен. Софт, написанный на нем, часто сталкивается с ошибками. Но без javaScript на сегодняшний день интернет-обозреватели попросту перестанут функционировать.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Ruby"></span>Ruby<span class="ez-toc-section-end"></span></h3>
<p>Если нужно изучить универсальный язык «общения» с компьютерами, стоит обратить внимание на Ruby. Является кроссплатформенным и относится к скриптовым. Относят к объектно-ориентированному.</p>
<p>Преимущества:</p>
<ul><li>простой и понятный синтаксис;</li><li>кроссплатформенность;</li><li>функциональность;</li><li>динамичность;</li><li>сбалансированность.</li></ul>
<p>Ruby находится в свободном доступе. Его можно использовать, корректировать, копировать и даже распространять. Имеет немало библиотек с регулярным обновлением.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="ActionScript"></span>ActionScript<span class="ez-toc-section-end"></span></h3>
<p>Разобравшись с тем, что такое языки программирования, важно определиться, на чем писать код. ActionScript, являясь мультимедийным и скриптовым, используется преимущественно для Flash-утилит.</p>
<p>Заточен под выполнение определенных целей. Это как плюс, так и минус. При использовании Flash отличается функциональностью. Признан гибким языком. Решение поставленных задач допускается различными и нестандартными путями. Их способен понять лишь тот, кто решился сделать соответствующую утилиту.</p>
<p>Важно: в кодификации легко запутаться.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Nemerle"></span>Nemerle<span class="ez-toc-section-end"></span></h3>
<p>Понятно, что такое языки программирования, какими они бывают. Но есть уникальные способы «общения» с компьютером – гибридным способом. Для этого отлично подходит Nemerle. Включает в себя объектно-ориентированные и функциональные нотки. Один из новых языков, позволяющих делать метапрограммы.</p>
<p>В данном случае вырабатываются алгоритмы, которые начнут создавать сценарии. Использование соответствующих текстов поможет образовывать исполняемые документы.</p>
<p>Это – симбиоз лучших качеств и полезных черт всех предыдущих языковых интерпретаций. Признан универсальным.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%90_%D1%87%D1%82%D0%BE_%D1%81_%D0%B4%D0%B5%D0%BA%D0%BB%D0%B0%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BE%D0%BC"></span>А что с декларативом?<span class="ez-toc-section-end"></span></h2>
<p>Что такое языки программирования, ясно. Но в предложенном ТОПе почти не встречаются декларативные варианты. Это связано с их небольшой популярностью на фоне «аналогов». Имеются несколько наиболее влиятельных его вариантов, которые все еще встречаются в реальной жизни.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Lisp"></span>Lisp<span class="ez-toc-section-end"></span></h3>
<p>Появился, благодаря некому Джону Маккарти. Старый высокоуровневый, активно используемый по сей день. Записи создаются при помощи систем линейных символьных списков. Встречается в промышленном программировании и веб-приложений массового применения.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="SQL"></span>SQL<span class="ez-toc-section-end"></span></h3>
<p>Размышляя, что такое языки современного программирования, кажется, что это – нечто трудное и непонятное. К декларативному виду можно дополнительно отнести «язык баз данных». Речь идет об SQL.</p>
<p>Понятен юзеру и довольно прост в освоении. Подходов к написанию кодов не слишком много, так как SQL использует ограниченный набор команд и их сочетаний. Имеет несколько диалектов:</p>
<ul><li>T-SQL;</li><li>PL/SQL;</li><li>PL/pgSQL;</li><li>MySQL.</li></ul>
<p>Это – наиболее популярные варианты. Но ими диалекты не ограничиваются.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="HTLM"></span>HTLM<span class="ez-toc-section-end"></span></h3>
<p>Еще один вариант «общения» с компьютером – это HTML. Изучая, что такое языки программирования, стало ясно – они подходят для написания веб-страниц. HTML относятся к «разметочному».</p>
<p>При помощи данного варианта пишутся сайты. Преобладает использование тегов. Умеет:</p>
<ul><li>форматировать текст;</li><li>редактировать текстовые блоки, создавая заголовки разных уровней, абзацы и так далее;</li><li>работать с таблицами;</li><li>вставлять объекты (звуковые и графические в том числе);</li><li>контактировать с гиперссылками.</li></ul>
<p>Но полноценное форматирование контента при помощи HTLM невозможно. Приходится подключать таблички стилей CSS.</p>
<p>Данная статья познакомила пользователей с основами способов «общения с ПК». Теперь ясно, что такое декларативное программирование, а также какие языки к нему относят. Но в обыденной жизни спросом пользуются другие программные разновидности. Были рассмотрены наиболее популярные из них.</p>
<figure class="wp-block-image size-large"><a href="https://otus.ru/lessons/java-professional/?utm_source=oj&utm_medium=affilate&utm_campaign=java" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><img decoding="async" width="970" height="90" src="https://otus.ru/journal/wp-content/uploads/2021/08/Java_970x90.png" alt="Виды программирования в современности. Основы декларативного языка" class="wp-image-1694" srcset="https://otus.ru/journal/wp-content/uploads/2021/08/Java_970x90.png 970w, https://otus.ru/journal/wp-content/uploads/2021/08/Java_970x90-300x28.png 300w, https://otus.ru/journal/wp-content/uploads/2021/08/Java_970x90-150x14.png 150w, https://otus.ru/journal/wp-content/uploads/2021/08/Java_970x90-768x71.png 768w" sizes="(max-width: 970px) 100vw, 970px" /></a></figure>
<figure class="wp-block-image size-large"><a href="https://otus.ru/lessons/javascript-professional/?utm_source=oj&utm_medium=affilate&utm_campaign=js" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><img decoding="async" width="970" height="90" src="https://otus.ru/journal/wp-content/uploads/2021/08/JS_970x90.jpg" alt="Виды программирования в современности. Основы декларативного языка" class="wp-image-1695" srcset="https://otus.ru/journal/wp-content/uploads/2021/08/JS_970x90.jpg 970w, https://otus.ru/journal/wp-content/uploads/2021/08/JS_970x90-300x28.jpg 300w, https://otus.ru/journal/wp-content/uploads/2021/08/JS_970x90-150x14.jpg 150w, https://otus.ru/journal/wp-content/uploads/2021/08/JS_970x90-768x71.jpg 768w" sizes="(max-width: 970px) 100vw, 970px" /></a></figure>
<figure class="wp-block-image size-large"><a href="https://otus.ru/lessons/python-professional/?utm_source=oj&utm_medium=affilate&utm_campaign=python" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><img loading="lazy" decoding="async" width="970" height="90" src="https://otus.ru/journal/wp-content/uploads/2021/08/Python_970x90-20219-8b1a8e.png" alt="Виды программирования в современности. Основы декларативного языка" class="wp-image-1697" srcset="https://otus.ru/journal/wp-content/uploads/2021/08/Python_970x90-20219-8b1a8e.png 970w, https://otus.ru/journal/wp-content/uploads/2021/08/Python_970x90-20219-8b1a8e-300x28.png 300w, https://otus.ru/journal/wp-content/uploads/2021/08/Python_970x90-20219-8b1a8e-150x14.png 150w, https://otus.ru/journal/wp-content/uploads/2021/08/Python_970x90-20219-8b1a8e-768x71.png 768w" sizes="(max-width: 970px) 100vw, 970px" /></a></figure>
<p></p>
</div><!-- .post-content -->
<div class="the-post-foot cf">
<div class="tag-share cf">
<div class="post-tags"><a href="https://otus.ru/journal/tag/deklarativnye-yazyki/" rel="tag" data-wpel-link="internal">декларативные языки</a><a href="https://otus.ru/journal/tag/programmirovanie/" rel="tag" data-wpel-link="internal">программирование</a></div>
<div class="post-share">
<div class="post-share-icons cf">
<span class="counters">
</span>
<a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fotus.ru%2Fjournal%2Fvidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka%2F" class="link facebook wpel-icon-right" target="_blank" title="Share on Facebook" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-facebook"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fvidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka%2F&text=%D0%92%D0%B8%D0%B4%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%B2%20%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8.%20%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B%20%D0%B4%D0%B5%D0%BA%D0%BB%D0%B0%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0" class="link twitter wpel-icon-right" target="_blank" title="Share on Twitter" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-twitter"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fotus.ru%2Fjournal%2Fvidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka%2F" class="link linkedin wpel-icon-right" target="_blank" title="LinkedIn" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-linkedin"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fvidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka%2F&media=https%3A%2F%2Fotus.ru%2Fjournal%2Fwp-content%2Fuploads%2F2021%2F08%2Foj-1080x720-2.png&description=%D0%92%D0%B8%D0%B4%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%B2%20%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8.%20%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B%20%D0%B4%D0%B5%D0%BA%D0%BB%D0%B0%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0" class="link pinterest wpel-icon-right" target="_blank" title="Pinterest" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-pinterest-p"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
</div>
</div>
</div>
<div class="post-nav">
<div class="post previous cf">
<a href="https://otus.ru/journal/zaprosy-v-yazyke-i-dialektah-structured-language-osnovnaya-informaciya/" title="Prev Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-left"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/zaprosy-v-yazyke-i-dialektah-structured-language-osnovnaya-informaciya/" class="image-link" rel="previous" data-wpel-link="internal">
<img width="150" height="100" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20100%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Запросы в языке и диалектах Structured Language: основная информация" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-1-1-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-1-1-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-1-1-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-1-1-768x512.png 768w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-1-1-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-1-1-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-1-1-370x245.png 370w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-1-1.png 1080w" data-src="https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-1-1-150x100.png" data-sizes="(max-width: 150px) 100vw, 150px" title="Запросы в языке и диалектах Structured Language: основная информация" /> </a>
<div class="post-meta">
<span class="label">Prev Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/zaprosy-v-yazyke-i-dialektah-structured-language-osnovnaya-informaciya/" data-wpel-link="internal">Запросы в языке и диалектах Structured Language: основная информация</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/zaprosy-v-yazyke-i-dialektah-structured-language-osnovnaya-informaciya/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2021-08-06T18:49:17+00:00">6 августа, 2021</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">8 Mins Read</span>
</div>
</div> </div>
</span>
</div>
<div class="post next cf">
<a href="https://otus.ru/journal/java-i-ego-spiski-poleznaya-i-vazhnaya-informaciya/" title="Next Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-right"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/java-i-ego-spiski-poleznaya-i-vazhnaya-informaciya/" class="image-link" rel="next" data-wpel-link="internal">
<img width="150" height="100" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20100%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Java и его списки: полезная и важная информация" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-3-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-3-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-3-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-3-768x512.png 768w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-3-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-3-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-3-370x245.png 370w, https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-3.png 1080w" data-src="https://otus.ru/journal/wp-content/uploads/2021/08/oj-1080x720-3-150x100.png" data-sizes="(max-width: 150px) 100vw, 150px" title="Java и его списки: полезная и важная информация" /> </a>
<div class="post-meta">
<span class="label">Next Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/java-i-ego-spiski-poleznaya-i-vazhnaya-informaciya/" data-wpel-link="internal">Java и его списки: полезная и важная информация</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/java-i-ego-spiski-poleznaya-i-vazhnaya-informaciya/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2021-08-09T18:05:17+00:00">9 августа, 2021</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">9 Mins Read</span>
</div>
</div> </div>
</span>
</div>
</div>
<section class="related-posts grid-3">
<h4 class="section-head"><span class="title">Читать ещё</span></h4>
<div class="ts-row posts cf">
<article class="post col-4">
<a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" title="Уровень готовности CTO к 2026" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Уровень готовности CTO к 2026" title="Уровень готовности CTO к 2026" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" class="post-link" data-wpel-link="internal">Уровень готовности CTO к 2026</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-16T19:50:59+00:00">16 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" title="Новые уроки ноября: только топ-темы по программированию" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Новые уроки ноября: только топ-темы по программированию" title="Новые уроки ноября: только топ-темы по программированию" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" class="post-link" data-wpel-link="internal">Новые уроки ноября: только топ-темы по программированию</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-09T23:24:11+00:00">9 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/schjot-idjot-na-chasy/" title="Счёт идёт на часы" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Счёт идёт на часы" title="Счёт идёт на часы" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-370x245.png 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/schjot-idjot-na-chasy/" class="post-link" data-wpel-link="internal">Счёт идёт на часы</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-10-30T15:04:59+00:00">30 октября, 2025</time>
</div>
</div>
</article >
</div>
</section>
</article> <!-- .the-post -->
</div>
<aside class="col-4 sidebar">
<div class="inner">
<ul>
<li id="search-2" class="widget widget_search"><h5 class="widget-title"><span>Поиск по блогу</span></h5>
<form method="get" class="search-form" action="https://otus.ru/journal/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Введите запрос и нажмите Enter" value="" name="s" title="Search for:" />
</label>
<button type="submit" class="search-submit"><i class="fa fa-search"></i></button>
</form>
</li>
<li id="tag_cloud-5" class="widget widget_tag_cloud"><h5 class="widget-title"><span>Метки</span></h5><div class="tagcloud"><a href="https://otus.ru/journal/tag/android-2/" class="tag-cloud-link tag-link-74 tag-link-position-1" style="font-size: 12.472222222222pt;" aria-label="Android (34 элемента)" data-wpel-link="internal">Android</a>
<a href="https://otus.ru/journal/tag/c-3/" class="tag-cloud-link tag-link-91 tag-link-position-2" style="font-size: 10.916666666667pt;" aria-label="C (23 элемента)" data-wpel-link="internal">C</a>
<a href="https://otus.ru/journal/tag/c-2/" class="tag-cloud-link tag-link-81 tag-link-position-3" style="font-size: 12.666666666667pt;" aria-label="C# (35 элементов)" data-wpel-link="internal">C#</a>
<a href="https://otus.ru/journal/tag/c/" class="tag-cloud-link tag-link-20 tag-link-position-4" style="font-size: 12.472222222222pt;" aria-label="c++ (34 элемента)" data-wpel-link="internal">c++</a>
<a href="https://otus.ru/journal/tag/computer-science/" class="tag-cloud-link tag-link-209 tag-link-position-5" style="font-size: 15.972222222222pt;" aria-label="computer science (78 элементов)" data-wpel-link="internal">computer science</a>
<a href="https://otus.ru/journal/tag/css/" class="tag-cloud-link tag-link-288 tag-link-position-6" style="font-size: 8.6805555555556pt;" aria-label="CSS (13 элементов)" data-wpel-link="internal">CSS</a>
<a href="https://otus.ru/journal/tag/data-science/" class="tag-cloud-link tag-link-151 tag-link-position-7" style="font-size: 8pt;" aria-label="Data Science (11 элементов)" data-wpel-link="internal">Data Science</a>
<a href="https://otus.ru/journal/tag/devops/" class="tag-cloud-link tag-link-98 tag-link-position-8" style="font-size: 10.138888888889pt;" aria-label="devops (19 элементов)" data-wpel-link="internal">devops</a>
<a href="https://otus.ru/journal/tag/docker/" class="tag-cloud-link tag-link-143 tag-link-position-9" style="font-size: 8.2916666666667pt;" aria-label="Docker (12 элементов)" data-wpel-link="internal">Docker</a>
<a href="https://otus.ru/journal/tag/gamedev/" class="tag-cloud-link tag-link-25 tag-link-position-10" style="font-size: 11.694444444444pt;" aria-label="gamedev (28 элементов)" data-wpel-link="internal">gamedev</a>
<a href="https://otus.ru/journal/tag/hr/" class="tag-cloud-link tag-link-103 tag-link-position-11" style="font-size: 8pt;" aria-label="hr (11 элементов)" data-wpel-link="internal">hr</a>
<a href="https://otus.ru/journal/tag/html/" class="tag-cloud-link tag-link-217 tag-link-position-12" style="font-size: 11.208333333333pt;" aria-label="HTML (25 элементов)" data-wpel-link="internal">HTML</a>
<a href="https://otus.ru/journal/tag/ios/" class="tag-cloud-link tag-link-101 tag-link-position-13" style="font-size: 8.9722222222222pt;" aria-label="iOS (14 элементов)" data-wpel-link="internal">iOS</a>
<a href="https://otus.ru/journal/tag/it/" class="tag-cloud-link tag-link-50 tag-link-position-14" style="font-size: 10.527777777778pt;" aria-label="IT (21 элемент)" data-wpel-link="internal">IT</a>
<a href="https://otus.ru/journal/tag/java/" class="tag-cloud-link tag-link-75 tag-link-position-15" style="font-size: 15.680555555556pt;" aria-label="Java (73 элемента)" data-wpel-link="internal">Java</a>
<a href="https://otus.ru/journal/tag/javascript/" class="tag-cloud-link tag-link-83 tag-link-position-16" style="font-size: 14.319444444444pt;" aria-label="JavaScript (53 элемента)" data-wpel-link="internal">JavaScript</a>
<a href="https://otus.ru/journal/tag/linux/" class="tag-cloud-link tag-link-141 tag-link-position-17" style="font-size: 11.888888888889pt;" aria-label="Linux (29 элементов)" data-wpel-link="internal">Linux</a>
<a href="https://otus.ru/journal/tag/machine-learning/" class="tag-cloud-link tag-link-167 tag-link-position-18" style="font-size: 8.6805555555556pt;" aria-label="Machine Learning (13 элементов)" data-wpel-link="internal">Machine Learning</a>
<a href="https://otus.ru/journal/tag/otus-book/" class="tag-cloud-link tag-link-261 tag-link-position-19" style="font-size: 9.9444444444444pt;" aria-label="otus book (18 элементов)" data-wpel-link="internal">otus book</a>
<a href="https://otus.ru/journal/tag/php/" class="tag-cloud-link tag-link-45 tag-link-position-20" style="font-size: 10.527777777778pt;" aria-label="PHP (21 элемент)" data-wpel-link="internal">PHP</a>
<a href="https://otus.ru/journal/tag/python/" class="tag-cloud-link tag-link-27 tag-link-position-21" style="font-size: 16.944444444444pt;" aria-label="Python (99 элементов)" data-wpel-link="internal">Python</a>
<a href="https://otus.ru/journal/tag/qa/" class="tag-cloud-link tag-link-155 tag-link-position-22" style="font-size: 11.402777777778pt;" aria-label="qa (26 элементов)" data-wpel-link="internal">qa</a>
<a href="https://otus.ru/journal/tag/sql/" class="tag-cloud-link tag-link-38 tag-link-position-23" style="font-size: 12.861111111111pt;" aria-label="SQL (37 элементов)" data-wpel-link="internal">SQL</a>
<a href="https://otus.ru/journal/tag/team-lead/" class="tag-cloud-link tag-link-364 tag-link-position-24" style="font-size: 9.9444444444444pt;" aria-label="team lead (18 элементов)" data-wpel-link="internal">team lead</a>
<a href="https://otus.ru/journal/tag/unity/" class="tag-cloud-link tag-link-24 tag-link-position-25" style="font-size: 8pt;" aria-label="unity (11 элементов)" data-wpel-link="internal">unity</a>
<a href="https://otus.ru/journal/tag/algoritmy/" class="tag-cloud-link tag-link-30 tag-link-position-26" style="font-size: 9.9444444444444pt;" aria-label="Алгоритмы (18 элементов)" data-wpel-link="internal">Алгоритмы</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh/" class="tag-cloud-link tag-link-40 tag-link-position-27" style="font-size: 10.138888888889pt;" aria-label="Базы данных (19 элементов)" data-wpel-link="internal">Базы данных</a>
<a href="https://otus.ru/journal/tag/matematika/" class="tag-cloud-link tag-link-44 tag-link-position-28" style="font-size: 10.916666666667pt;" aria-label="Математика (23 элемента)" data-wpel-link="internal">Математика</a>
<a href="https://otus.ru/journal/tag/arhitektura-po/" class="tag-cloud-link tag-link-10 tag-link-position-29" style="font-size: 9.4583333333333pt;" aria-label="архитектура ПО (16 элементов)" data-wpel-link="internal">архитектура ПО</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh-2/" class="tag-cloud-link tag-link-251 tag-link-position-30" style="font-size: 10.138888888889pt;" aria-label="базы данных (19 элементов)" data-wpel-link="internal">базы данных</a>
<a href="https://otus.ru/journal/tag/vebinar/" class="tag-cloud-link tag-link-201 tag-link-position-31" style="font-size: 13.930555555556pt;" aria-label="вебинар (48 элементов)" data-wpel-link="internal">вебинар</a>
<a href="https://otus.ru/journal/tag/dajdzhest/" class="tag-cloud-link tag-link-308 tag-link-position-32" style="font-size: 10.722222222222pt;" aria-label="дайджест (22 элемента)" data-wpel-link="internal">дайджест</a>
<a href="https://otus.ru/journal/tag/zapis-vebinara/" class="tag-cloud-link tag-link-226 tag-link-position-33" style="font-size: 14.902777777778pt;" aria-label="запись вебинара (61 элемент)" data-wpel-link="internal">запись вебинара</a>
<a href="https://otus.ru/journal/tag/zapis-uroka/" class="tag-cloud-link tag-link-272 tag-link-position-34" style="font-size: 16.069444444444pt;" aria-label="запись урока (80 элементов)" data-wpel-link="internal">запись урока</a>
<a href="https://otus.ru/journal/tag/informacionnaya-bezopasnost/" class="tag-cloud-link tag-link-232 tag-link-position-35" style="font-size: 10.138888888889pt;" aria-label="информационная безопасность (19 элементов)" data-wpel-link="internal">информационная безопасность</a>
<a href="https://otus.ru/journal/tag/karera-v-it/" class="tag-cloud-link tag-link-292 tag-link-position-36" style="font-size: 9.9444444444444pt;" aria-label="карьера в IT (18 элементов)" data-wpel-link="internal">карьера в IT</a>
<a href="https://otus.ru/journal/tag/podborka/" class="tag-cloud-link tag-link-7 tag-link-position-37" style="font-size: 12.666666666667pt;" aria-label="подборка (35 элементов)" data-wpel-link="internal">подборка</a>
<a href="https://otus.ru/journal/tag/podborka-statej/" class="tag-cloud-link tag-link-219 tag-link-position-38" style="font-size: 15.777777777778pt;" aria-label="подборка статей (75 элементов)" data-wpel-link="internal">подборка статей</a>
<a href="https://otus.ru/journal/tag/programmirovanie/" class="tag-cloud-link tag-link-65 tag-link-position-39" style="font-size: 22pt;" aria-label="программирование (332 элемента)" data-wpel-link="internal">программирование</a>
<a href="https://otus.ru/journal/tag/proekt/" class="tag-cloud-link tag-link-321 tag-link-position-40" style="font-size: 11.888888888889pt;" aria-label="проект (29 элементов)" data-wpel-link="internal">проект</a>
<a href="https://otus.ru/journal/tag/proektnaya-rabota/" class="tag-cloud-link tag-link-310 tag-link-position-41" style="font-size: 11.597222222222pt;" aria-label="проектная работа (27 элементов)" data-wpel-link="internal">проектная работа</a>
<a href="https://otus.ru/journal/tag/seti/" class="tag-cloud-link tag-link-181 tag-link-position-42" style="font-size: 12.958333333333pt;" aria-label="сети (38 элементов)" data-wpel-link="internal">сети</a>
<a href="https://otus.ru/journal/tag/testirovanie/" class="tag-cloud-link tag-link-69 tag-link-position-43" style="font-size: 13.930555555556pt;" aria-label="тестирование (48 элементов)" data-wpel-link="internal">тестирование</a>
<a href="https://otus.ru/journal/tag/upravlenie-komandoj/" class="tag-cloud-link tag-link-63 tag-link-position-44" style="font-size: 11.694444444444pt;" aria-label="управление командой (28 элементов)" data-wpel-link="internal">управление командой</a>
<a href="https://otus.ru/journal/tag/habr-2/" class="tag-cloud-link tag-link-203 tag-link-position-45" style="font-size: 13.930555555556pt;" aria-label="хабр (48 элементов)" data-wpel-link="internal">хабр</a></div>
</li>
</ul>
</div>
</aside>
</div> <!-- .ts-row -->
</div> <!-- .main -->
<footer class="main-footer dark bold">
<section class="lower-footer cf">
<div class="wrap">
<div class="links">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
<p class="copyright"> © 2015-2026 OTUS </p>
<div class="to-top">
<a href="#" class="back-to-top"><i class="fa fa-angle-up"></i> Top</a>
</div>
</div>
</section>
</footer>
</div> <!-- .main-wrap -->
<div class="mobile-menu-container off-canvas" id="mobile-menu">
<a href="#" class="close"><i class="fa fa-times"></i></a>
<div class="logo">
</div>
<ul class="mobile-menu"></ul>
</div>
<div class="search-modal-wrap">
<div class="search-modal-box" role="dialog" aria-modal="true">
<form method="get" class="search-form" action="https://otus.ru/journal/">
<input type="search" class="search-field" name="s" placeholder="Search..." value="" required />
<button type="submit" class="search-submit visuallyhidden">Submit</button>
<p class="message">
Type above and press <em>Enter</em> to search. Press <em>Esc</em> to cancel. </p>
</form>
</div>
</div>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/js/url-span.js" id="wbcr-comments-plus-url-span-js"></script>
<script type="text/javascript" id="ez-toc-scroll-scriptjs-js-extra">
/* <![CDATA[ */
var eztoc_smooth_local = {"scroll_offset":"30"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js" id="ez-toc-scroll-scriptjs-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js" id="ez-toc-js-cookie-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js" id="ez-toc-jquery-sticky-kit-js"></script>
<script type="text/javascript" id="ez-toc-js-js-extra">
/* <![CDATA[ */
var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js" id="ez-toc-js-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/custom-script.js" id="custom-script-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/magnific-popup.js" id="magnific-popup-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.fitvids.js" id="jquery-fitvids-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/imagesloaded.min.js" id="imagesloaded-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/object-fit-images.js" id="object-fit-images-js"></script>
<script type="text/javascript" id="contentberg-theme-js-extra">
/* <![CDATA[ */
var Bunyad = {"custom_ajax_url":"\/journal\/vidy-programmirovaniya-v-sovremennosti-osnovy-deklarativnogo-yazyka\/"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theme.js" id="contentberg-theme-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theia-sticky-sidebar.js" id="theia-sticky-sidebar-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.slick.js" id="jquery-slick-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jarallax.js" id="jarallax-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/masonry.min.js" id="masonry-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.masonry.min.js" id="jquery-masonry-js"></script>
</body>
</html>
<!-- Cache served by breeze CACHE - Last modified: Tue, 10 Mar 2026 15:25:33 GMT -->