Interested Article - Groovy

Groovy объектно-ориентированный язык программирования , разработанный для платформы Java как дополнение к языку Java с возможностями Python , Ruby и Smalltalk .

Использует java-подобный синтаксис с динамической компиляцией в JVM байт-код и напрямую работает с другим java-кодом и библиотеками . Язык может использоваться в любом java-проекте или как сценарный язык . Активно используется как Предметно-ориентированный язык для написания скриптов при работе в предметной области (от математики до обработки научных данных), а также сборки и тестирования приложений ( Gradle ).

Groovy завершил процесс стандартизации в Java Community Process (JSR 241).

Основные возможности языка, отличающие его от Java: как статическая , так и динамическая типизация ; встроенный синтаксис для списков , ассоциативных массивов , массивов и регулярных выражений ; перегрузка операций . Замыкания в Groovy появились задолго до Java.

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

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

Программирование на Groovy поддерживается в основных интегрированных средах разработки , в том числе IntelliJ IDEA (начиная с версии 7 или для более ранних версий с использованием JetGroovy Plugin), Eclipse (с использованием Groovy Eclipse), Netbeans (встроен), VS Code (через расширение), Vim (через расширение).

История

Первым упоминанием о языке было сообщение в блоге ( англ. ) от августа 2003 года. Позднее было выпущено несколько версий между 2004 и 2006 годами. После того, как начался процесс стандартизации JCP , нумерация версий была изменена, и версию называют «1.0». Версия «1.0» была выпущена 2 января 2007 года . В декабре 2007 года вышел Groovy 1.1, эта версия вскоре была перенумерована как «1.5» вследствие значительных изменений в языке.

Стрэкан покинул проект за год до выпуска Groovy 1.0 в 2007 году, а в июле 2009 года Стрэкан написал в своём блоге, что возможно не создал бы Groovy, если бы в 2003 году прочитал книгу Мартина Одерского с соавторами о программировании на языке Scala (вышедшую в 2007 году) .

Проект разработки языка и комитет JSR-241 с 2007 года возглавляет Гийом Лафорж ( Guillaume Laforge ). Компанию G2One, занимавшуюся развитием и коммерциализацией языка и фреймворка Grails, осенью 2008 года приобрела , в итоге через цепочку слияний и поглощений ( VMware , , EMC ) актив перешёл в 2017 году в корпорацию Dell . С 2015 года язык является проектом верхнего уровня фонда Apache .

В 2020 году вышла версия 3.0.0 с рядом значительных улучшений.

Скриншот Groovy Console

Примеры

Классический пример вывода на печать строки с приветствием:

// Comment
print("Hello world!")

Пример создания и использования функции с аргументами и возвращаемым значением:

def helloFunction(name) {
    println("Hello, ${name}")
}
helloFunction("Groovy!")
// В следующей функции вычисления суммы двух объектов
// последнее выражение является возвращаемым значением
def sum(a, b) {
    a + b // вернет результат сложения
}
print(sum(1, 2))
// Эта функция принимает параметры только числового типа
def subtraction(double a, double b) {
    return a - b
}
print(subtraction(6, 4))

Объявление класса, создание его экземпляра и вызов его методов в главной точке входа программы (статический метод main())

class Foo {
  def doSomething() {
    def data = ["name": "James", "location": "London"]
    for (e in data) {
      println("entry ${e.key} is ${e.value}")
    }
  }
  
  def closureExample(collection) {
    collection.each { println("value ${it}") }
  }
  
  static void main(args) {
    def values = [1, 2, 3, "abc"]
    def foo = new Foo()
    foo.closureExample(values)
    foo.doSomething()
  }
}

«;» — точка с запятой в конце строки не обязательна.

Некоторые особенности

Как и в Java (начиная с 11-й версии), исходный код Groovy может быть выполнен как обычный сценарий: для этого он должен содержать код вне определения класса или класс с методом main, или Runnable, или GroovyTestCase:

#!/usr/bin/env groovy
println "I can execute this script now!"

Строки в Groovy: Java Strings с одинарными кавычками и GStrings с двойными кавычками:

def javaStyleString = 'java String style'
def GStringsStyleString = "${javaStyleString}"
def j = '${javaStyleString}' 
def bigGroovyString = """
    ${javaStyleString}
    ${GStringsStyleString}
"""
println bigGroovyString

Передачу параметров в методы, замыкания или функции можно делать без скобок:

closureFunction 1,2

Примечания

  1. — 2023.
  2. .
  3. 4 февраля 2008 года. на 2 марта 2014 года.
  4. 5 апреля 2007 года.
  5. (6 июля 2009). Дата обращения: 7 января 2012. 10 февраля 2012 года. «I can honestly say if someone had shown me the Programming in Scala book by by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I’d probably have never created Groovy»

Ссылки

  • (англ.) . — домашняя страница проекта. Дата обращения: 5 июня 2006. 13 февраля 2012 года.
  • (англ.) . JSRs: Java Specification Requests . — домашняя страница проекта. Дата обращения: 5 июня 2006. 13 февраля 2012 года.
  • - Учебник по языку Groovy.
  • Хики, Скотт (19 сентября 2006). Дата обращения: 26 ноября 2006. 13 февраля 2012 года.
  • Эндрю, Гловер (1 ноября 2007). Дата обращения: 7 сентября 2008. 13 февраля 2012 года.
  • Эндрю, Гловер (12 октября 2007). Дата обращения: 7 сентября 2008. 13 февраля 2012 года.
  • Эндрю, Гловер (9 января 2008). Дата обращения: 7 сентября 2008. 13 февраля 2012 года.
  • Эндрю, Гловер (14 февраля 2008). Дата обращения: 7 сентября 2008. 13 февраля 2012 года.
  • Эндрю, Гловер (25 декабря 2007). Дата обращения: 7 сентября 2008. 13 февраля 2012 года.
  • Эндрю, Гловер (21 января 2008). Дата обращения: 7 сентября 2008. 13 февраля 2012 года.
  • Эндрю, Гловер (12 декабря 2007). Дата обращения: 7 сентября 2008. 13 февраля 2012 года.
  • Эндрю, Гловер (30 января 2008). Дата обращения: 7 сентября 2008. 13 февраля 2012 года.
  • Чэд, Медоуз (30 августа 2007). Дата обращения: 7 сентября 2008. 13 февраля 2012 года.
  • Эндрю, Гловер (6 февраля 2008). Дата обращения: 7 сентября 2008. 13 февраля 2012 года.
  • Эндрю, Гловер (4 сентября 2008). Дата обращения: 7 сентября 2008. 13 февраля 2012 года.
  • (англ.) . Дата обращения: 7 сентября 2008. 13 февраля 2012 года.
  • (англ.) . Дата обращения: 7 сентября 2008. 13 февраля 2012 года.
  • для IDE IntelliJ IDEA


Источник —

Same as Groovy