Groovy - язык, основанный на синтаксисе и принципах Java. Он использует объектно ориентированный подход к построению программ. Типизация данных в Груви может быть как статической, так и динамической. Для компиляции языка используется Java Virtual Machine.
История разработки
Джеймс Стрекан, создатель Groovy, впервые рассказал о своем детище в 2003 году через публикацию в своем блоге. Правда, официальная версия платформы была представлена только в январе 2007, и именно она получила префикс 1.0. Последняя на текущий момент итерация языка, под номером 3.0, вышла в 2020 году.
Сам Джеймс Стрекан покинул команду разработки еще до релиза Groovy 1.0. Позже он писал, что язык Scala, как и Груви представляющий собой надстройку над Java, показался ему более перспективным.
В настоящее время язык является собственностью корпорации Dell, а также поддерживается организацией-фондом Apache Software Foundation.
Особенности языка
В Groovy есть ряд “фишек”, отличающих его от Java и многих других ООП языков.
- Совмещение статической и динамической типизации.
Статическая типизация предполагает строгое указание типа переменной при ее объявлении. При динамическом подходе это действие не обязательно, компилятор определяет тип самостоятельно. Груви использует оба метода типизации, в отличие от Java, где доступна только статика. - Замыкания в коде.
Замыкания, или closure, это, по сути, функции встроенные в функций. Они могут взаимодействовать с локальными переменными внутри “родителя”. Замыкания связывают данные в единую цепочку и упрощают взаимодействия внутри программы. - Метапрограммирование.
Groovy использует runtime и compile time программирование. Это значит, что части исходного кода можно расширять не только во время компиляции, но и при исполнении программы. - Перегрузка операторов.
Перегрузка, или переопределение, операторов применяется для использования одинаковых функций и методов для различных типов данных в общей области видения. Например, извлечения корня как из вещественных, так и дробных или комплексных чисел. Groovy может перегружать стандартные операторы, а Java - нет. - Дополнительный тип строчных переменных.
В Груви есть строчный тип GString с двойными кавычками. Стандартные строки с одинарными кавычками, как в Java, тоже поддерживаются. - Оригинальный синтаксис массивов и списков.
Новый тип массивов в Groovy, под названием Maps, позволяет создавать группы из объединенных в пары элементов. Например, ExMap = [ 'x' : 1, 'y' : 2, ‘z : 3 ].
Range - это тип данных, представляющий собой промежуток значений с заданным началом и окончанием - ряд чисел, алфавитная последовательность и т. п. - Интеграция языков разметки.
Груви совместим с разметкой XML и HTML формата. Он может как парсить существующие документы, так и создавать новые через древовидную структуру данных.
Преимущества Groovy
Рассмотрим главные плюсы языка.
- Полная интеграция с Java.
Груви дополняет и улучшает код, написанный на Java. Программы. написанные на Groovy, без проблем считываются компилятором JVM. - Доступность в популярных IDE.
Рассматриваемый язык включают в себя большинство применяемых интегрированных сред разработки: NetBeans, Eclipse и др. - Простота освоения.
Особенно это актуально для программистов, знакомых с Java, Python и подобными языками. Им синтаксис Groovy покажется знакомым и привычным. - Параллельные и асинхронные вычисления.
Программы на Груви быстро выполняются за счет параллельного вычисления потоков. Благодаря этому свойству рассматриваемый язык часто применяется для разработки реактивных веб-приложений, где важна скорость ответа системы на действия пользователя. - Поддержка Apache Foundation.
Независимый фонд оказывает значительное влияние на развитие языка, улучшая его в лучшую сторону и повышая доверие сообщества к платформе.
Где применяется язык
Groove - язык программирования общего назначения. Он используется во многих сферах разработки.
- Веб приложения.
Grails, фреймворк Groovy, отлично подходит для создания быстрых, высоконагруженных сайтов и веб-систем с мгновенным ответом на пользовательские запросы. - Микросервисные платформы.
Фреймворк Micronaut позволяет разрабатывать приложения, основанные на микросервисах - изолированных фрагментах программы, взаимодействующих между собой через специальные команды. - Десктопные приложения.
ПО для компьютеров на Groovy пишется через фреймворк Griffon. - Сценарии тестирования.
Тесты для сайтов и браузерных приложений можно написать, используя приложение SoapUI. Фреймворк Geb также подойдет для этих целей. - Параллельные вычисления.
Распределительные системы на Groovy выполняются за счет встроенной системы Graps. - Программы для обработки данных.
Часто язык используется для написания кода, обрабатывающего большие массивы данных, например, для статистических и научных исследований.
Примеры кода
Для вывода на экран надписи понадобится всего одна команда.
print("Hello world!")
Рассмотрим также, как в Groovy устроены методы функций.
class Example {
static void mlp(int x,int y) {
int m = x*y;
println(m);
}
static void main(String[] args) {
mlp(3,4);
}
}
Заключение
Groovy - язык программирования, дополняющий Java и расширяющий его возможности. В нем есть динамическая типизация, обновленные типы данных, возможность прямой работы с XML и другие “фишки”. Благодаря фреймворкам и расширениям Груви используется фактически во всех сферах разработки - от веб-среды до проверочных тестов.