Найти тему

Язык программирования Clojure

Оглавление

Клиенты и другие заинтересованные стороны, делающие значительные инвестиционные вложения, часто довольны производительностью, безопасностью и стабильностью таких платформ как Java Virtual Machine. В то время, как разработчики Java могут позавидовать лаконичности, гибкости производительности динамических языков программирования.

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

Логотип языка программирования Clojure
Логотип языка программирования Clojure

Пара слов о Clojure

Clojure – функциональный и динамичный язык программирования общего назначения, который работает на основе виртуальной машины JVM (Java Virtual Machine). Он стремится быть языком общего назначения, подходящим в тех областях, где подходит Java.

Clojure сочетает в себе много интересных возможностей: доступность, горячая замена кода, разработка многопоточных программ. Clojure будет особенно интересен программистам, пишущим на Java или смотрящим в сторону функциональных языков.

Язык программирования Clojure – достаточно молодой, но он уже успел удивить многих своей функциональностью: он активно используется в production, клиент сайтах, backend, браузерных интерфейсах. Его используют для анализа данных, machinelearning, управления ресурсами и задачами.

Clojure разработали всего 6 лет назад в компании Cognitect. Несмотря на то, что это компилируемый язык, он остается полностью динамичным. Clojure обеспечивает легкий доступ к платформе Java с дополнительным выведением типа и подсказками для избежания отражения вызовов Java.

Преимущества

Clojure обладает рядом преимуществ перед другими языками программирования. Мы перечислим некоторые из них:

· язык ориентирован на работу с данными. Данные вынесены в основу концепции Clojure. У него есть все средства для работы с ними, а также удобная библиотека. Язык заменяет данными классы, иерархии, объекты, что позволяет разработчику легко работать и писать на Clojure;

· Clojure – очень динамический язык программирования. У него есть возможность запускать команды в консоли и тут же просматривать результат, не затрачивая лишнего времени. Также есть возможность горячей подмены кода, позволяющая не инициализировать программу заново при каждом изменении в коде;

· язык очень компактен. Например, размер кода, написанного на Clojure, будет от 3 до 10 раз меньше, чем у Java.

Первая версия языка программирования Clojure существовала в виде языка компилируемого в JVM байт-код. Сейчас это основное направление развития Clojure.

Минусом Clojure можно назвать стоимость разработки на этом языке программирования. Разработчиков, пишущих на Clojure, значительно меньше.

Пример кода на Clojure
Пример кода на Clojure

Возможности

Clojure – диалект Lisp, разделяющий с ним мощную макросистему и философию «код-как-данные», когда у кода и данных общий синтаксис. В язык программирования Clojure по сравнению с другими языками, основанными на Lisp, введен дополнительный синтаксис: кроме стандартных символов, строк, чисел, списков он отражает такие объекты первого класса как векторы, отображения (maps) и множества (sets).

Еще одна не менее важная возможность Clojure заключается в том, что написанный на этом языке код можно легко компилировать в JavaScript.

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

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

Clojure достигает своих целей путем:

· внедрения отраслевого стандарта, открытой платформы - JVM;

· модернизации языка программирования Lisp;

· содействия функциональному программированию с неизменяемыми постоянными структурами данных;

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

Результат программирования на Clojure всегда быстрый, практичный и мощный.