Groovy

Groovy
Groovy
Groovy-logo.png
Появился в:

2003

Автор(ы):

Джеймс Стрэчен

Релиз:

2.0.5 (4 октября 2012 года)

Типизация данных:

статическая и динамическая

Испытал влияние:

Java, Ruby, Python, Perl, Smalltalk

Сайт:

http://groovy.codehaus.org

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

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

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

Возможности Groovy (отличающие его от Java):

Содержание

Пример

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()
  }
}

Особенности работы

Установка Groovy

Groovlets — возможность запускать скрипты на Groovy как сервлеты.

GroovyBeans — версия Groovy для JavaBeans.

В отличие от Java, в 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

Groovy неявно генерирует методы для доступа к переменным (setColor(String color) и getColor()):

class AGroovyBean {
  String color
}
 
def myGroovyBean = new AGroovyBean()
 
myGroovyBean.setColor('blue')
assert myGroovyBean.getColor() == 'blue'
 
myGroovyBean.color = 'green'
assert myGroovyBean.color == 'green'

Groovy предлагает простой и последовательный доступ к спискам, картам и массивам:

def myList = ['One', 'Two', 'Three']  //выглядит как массив, но это список
assert myList[2] == 'Three'
myList[3] = 'Four'  //добавляем элемент в список
assert myList.size() == 4
 
def monthMap = [ 'January' : 31, 'February' : 28, 'March' : 31 ]  //определяем карту
assert monthMap['March'] == 31  
monthMap['April'] = 30  //добавляем элемент в карту
assert monthMap.size() == 4

Closure (замыкание) — это анонимная функция и обьект в одном виде:

def closureFunction = {a, b ->
    println a
    println b
}
 
closureFunction(1, 2)

return в функции указывать не обязательно — по умолчанию будет возвращено значение последней упомянутой переменной.

Неизменяемые классы маркируются с помощью аннотации Immutable:

@Immutable
class ImmutableClass {
    String stringVariable
    Integer integerVariable
}
def newVariable = new ImmutableClass(stringVariable : "some string", integerVariable : 23)

История

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

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

Проект разработки языка и комитет JSR-241 с 2007 года возглавляет Гийом Лафорж (Guillaume Laforge).

Поддержка IDE

Программирование на Groovy поддерживается в основных интегрированных средах разработки программного обеспечения[3], в частности:

  • IntelliJ IDEA начиная с версии 7 или для более ранних версий с использованием JetGroovy Plugin;
  • Eclipse с использованием Groovy Eclipse;
  • Netbeans — встроен в NetBeans IDE.

Использование Groovy

Последние версии генератора отчётов iReport, основанного на java-библиотеке JasperReports, позволяют встраивать в отчёты выражения на Groovy и писать на нём дополнительную логику.

Система непрерывной интеграции Hudson позволяет использовать сценарии автоматизации, созданные на Groovy.

См. также

Примечания

  1. James Strachan. Groovy — the birth of a new dynamic language for the Java platform
  2. Scala as the long term replacement for java/javac? (July 6, 2009). Архивировано из первоисточника 10 февраля 2012. Проверено 7 января 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»
  3. Список поддерживаемых IDE на официальном сайте Groovy

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "Groovy" в других словарях:

  • Groovy — Basisdaten Paradigmen: objektorientiert, Skriptsprache, teilweise deklarativ Erscheinungsjahr …   Deutsch Wikipedia

  • Groovy — se puede referir a: Groovy, una novela de José María Carrascal. El lenguaje de programación orientado a objetos Groovy. Una forma de hacer música animada y bailable (Groove). Esta página de desambiguación cataloga artículos relacionados con el… …   Wikipedia Español

  • groovy — groov y (gr[=oo] v[y^]), a. Very pleasant or very enjoyable; marvelous; wonderful; excellent; expressing strong approval, usually of enjoyable experiences. [informal, 1960 s] [WordNet sense 1] Syn: bang up, bully, cool, corking, cracking, dandy,… …   The Collaborative International Dictionary of English

  • groovy — groovy(englausgesprochen)adj schwungvoll,unübertrefflich;lebenslustig,aufgeweckt.AusderangloamerikanJazzsprache.Halbw1960ff …   Wörterbuch der deutschen Umgangssprache

  • groovy — 1853 in literal sense of pertaining to a groove; 1937, Amer.Eng., in slang sense of “first rate, excellent;” from jazz slang phrase in the groove (1932) performing well (without grandstanding) + Y (Cf. y) (2). As teen slang for wonderful, it… …   Etymology dictionary

  • groovy — [adj] cool, wonderful boss*, chic, deep*, excellent, fabulous, fantastic, far out*, great, hip, neat*, nifty*, rad*, sensational, splendid, super, swell*, trendy, unorthodox, way out, wild, with it; concept 572 …   New thesaurus

  • groovy — ► ADJECTIVE (groovier, grooviest) informal, dated or humorous ▪ fashionable and exciting. DERIVATIVES groovily adverb grooviness noun …   English terms dictionary

  • groovy — ☆ groovy [gro͞o′vē ] adj. groovier, grooviest [< old slang in the groove, working effortlessly] Slang very pleasing or attractive …   English World dictionary

  • groovy — 1. mod. cool; pleasant. □ Man, this music is groovy. □ What a groovy day! 2. mod. drug intoxicated. (Drugs.) □ Three beers and he was a little groovy. □ …   Dictionary of American slang and colloquial expressions

  • Groovy — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Groovy est un langage de programmation orienté objet pour Java. Groovy est une chanson à la fin du dessin animé asiatique Cardcaptor Sakura. Groovy est un …   Wikipédia en Français


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»