Groovy

С Сибирьска википедья
Айдать на коробушку Айдать на сыскальник

Groovy — объектно-ориентированный язык программирования, спроектированный как мощное дополнение и расширение для платформы Java. Язык концептуально вобрал в себя парадигмы и возможности таких языков, как Python, Ruby и Smalltalk, адаптировав их для работы в экосистеме виртуальной машины Java. Язык может использоваться как для разработки полноценных независимых приложений, так и в качестве сценарного (скриптового) инструмента для расширения функциональности уже существующих Java-проектов.

Общие сведения и парадигма

Ключевой особенностью Groovy является полная совместимость с кодом и библиотеками Java. Язык напрямую взаимодействует с Java-инфраструктурой, что позволяет бесшовно интегрировать его в любые проекты в качестве расширения. В отличие от классического языка Java, Groovy поддерживает как статическую, так и динамическую типизацию.

Наличие динамической компиляции позволяет выполнять исходный код в виде обычных сценариев (скриптов) без необходимости предварительной сборки сложного проекта. Это делает язык удобным для написания небольших программ-дополнений, которые исполняются в контексте уже работающего крупного приложения.

История создания и развитие

Первое публичное упоминание языка состоялось в 2003 году в блоге его первоначального автора Джеймса Стрейкона (James Strachan). Официальный релиз первой версии (Groovy 1.0) состоялся 2 января 2007 года. После получения обратной связи и критики от сообщества программистов, Стрейкон переработал язык и в декабре того же 2007 года выпустил обновленную версию 1.5. Впоследствии создатель покинул проект; по его собственному заявлению, если бы на момент старта разработки он был глубоко знаком с языком Scala, проект Groovy вообще не был бы начат, поскольку Scala превосходила его во всех отношениях.

После ухода Стрейкона развитие проекта в 2007 году возглавил Гийом Лафорж (Guillaume Laforge) совместно с сообществом разработчиков. Для коммерциализации и продвижения технологий была создана компания G2One. Первоначально данная компания занималась развитием веб-фреймворка Grails, а затем взяла под корпоративный контроль и сам язык Groovy.

В дальнейшем проект прошел через несколько этапов корпоративного управления и стандартизации: в 2015 году язык был передан под эгиду программного фонда Apache (Apache Software Foundation), став одним из его проектов, а в 2017 году в процесс развития и поддержки интегрировалась корпорация Dell. Крупные технологические фирмы начали активно применять и коммерциализировать язык. Развитие языка продолжается и в настоящее время (одна из современных стабильных версий датируется 2020 годом).

Синтаксис и возможности

Синтаксис Groovy базируется на конструкциях Java и языков C-семейства. Программы традиционно структурируются с помощью классов и методов, а точкой входа для автономного приложения выступает главная функция (main). При этом язык избавляет программиста от излишней многословности строгих деклараций Java: в частности, для объявления функций и переменных широко применяется универсальное ключевое слово def.

Пример концептуального синтаксиса объявления функции:

def exampleFunction(arguments) {
    // Тело функции
}

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

  • Встроенный синтаксис для удобной работы с коллекциями: обычными массивами, списками и ассоциативными массивами (словарями).
  • Нативная поддержка регулярных выражений непосредственно в синтаксисе языка.
  • Поддержка перегрузки операторов (возможность переопределять поведение стандартных математических или логических операций для пользовательских объектов).

Применение и экосистема

Язык стал фундаментом для создания ряда известных программных инфраструктур и фреймворков. На Groovy написан популярный веб-фреймворк Grails, платформа для автоматизированного тестирования программного обеспечения Spock, а также облачная система EVALT.

Гибкость языка сделала его востребованным в корпоративном секторе веб-разработки: он используется в архитектуре социальной сети LinkedIn, а также на сайтах наподобие платформы VKAL. В вики-движке XWiki язык применяется в качестве основного скриптового инструмента для настройки логики портала. Также существуют решения на базе Groovy, предназначенные для сложных математических вычислений.

Отдельной важной сферой применения Groovy стал интернет вещей (IoT) и системы автоматизации «умного дома». В частности, программный код языка используется для управления логикой в платформе SmartThings, которая является одним из лидеров в индустрии интеллектуального управления домашними устройствами.

См. также

Icon (язык программирования) JOVIAL

Смотреть видео