LINUX.ORG.RU

Groovy 1.5 Released!


0

0

G2One, Inc., Groovy&Grails и команда разработчиков Groovy с радостью объявляют о выпуске Groovy 1.5.

Groovy — это гибкий динамический язык программирования для Java Virtual Machine. Этот язык совмещает в себе концепции Smalltalk, Python и Ruby, является скриптовым языком сценариев в окружении Java API. Может использоваться в Web-приложениях Spring и Hibernate через фреймворк Grails, приспосабливая внешнюю бизнес-логику, языки предметной области (Domain-Specific Languages) и многое другое, чтобы упростить разработку.

Новый релиз объединяет функции, предлагаемых Java 5.0: аннотации, обобщённые типы (дженерики), статический импорт и перечисления (enums). Тем самым делая Groovy единственным из динамических языков для JVM, который позволяет использовать библиотеки Spring с аннотацией @Transactional и JBoss SEAM. Поддержка дженериков позволяет обрабатывать коллекции JPA и Hibernate.

Улучшения коснулись GroovyDoc.

Появились несколько плагинов для разных сред разработки, поддерживающих программирование на Groovy, прежде всего это касается IntelliJ IDEA, NetBeans, Eclipse.

InfoQ публикует статью с подробным новинки этой новой версии более подробно: http://www.infoq.com/articles/groovy-...

>>> Подробности

★★★★★

Проверено: Pi ()

Кстати, а какие скриптовые JVM-языки могут создавать на лету классы с заданными именами, которые потом по Reflection вызывать можно?

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>Кстати, а какие скриптовые JVM-языки могут создавать на лету классы с заданными именами, которые потом по Reflection вызывать можно?

Ассемблер, но не очень скриптовый, и не очень жабский.

anonymous
()

Быдлоязыков прибыло?

Я так рад. Как сидел на c++ до java и .нет так и сижу, и не надоело. Кому места в нашей вселенной не хватает милости прошу в альтернативные.

alx_me ★★☆
()

Да, забыл добавить, жду когда единым тыком для jmv можно будет написать программу с готовой бизнес логикой без глюков и полезную.

А то в VS всё обещали обещали, я даже фильмы смотрел на их дисках, тётка лихо календарик пяткой и мышкой сделала.

alx_me ★★☆
()
Ответ на: комментарий от KRoN73

> Кстати, а какие скриптовые JVM-языки могут создавать на лету классы с заданными именами, которые потом по Reflection вызывать можно? Мы вот пишем большой проект на Grails. Рефлексии здорово не хватает.

dr_jumba
()

А зачем это нужно? Очередной JSR (под номером 241), который никто в реальных проектах не применял, не применяет и не будет применять? Ну просто нанотехнологии!

Реальное развитие Джавы - это быстрые, легкие, хорошо спроектированные фреймворки, типа "Спринга". А остальное - "изобретение велосипеда из руды" (с). Зачем еще к Спрингу лепить Grails? "Бритва Оккама" уже отменена? В Джава-программировании выработались свои приемы проектирования, так что "мультипарадигменность" - это "игра в буриме" для теоретиков.

Bioreactor ★★★★★
()
Ответ на: комментарий от KRoN73

>Кстати, а какие скриптовые JVM-языки могут создавать на лету классы с заданными именами, которые потом по Reflection вызывать можно?

не совсем понятно. это типа

var s = "foo.Person";
car i = Class.forName(s);
i.name = "Foo";

так? вроже тот же javascript это умеет (см rhino)

Deady
()

А зачем оно нужнО, когда уже есть scala?

anonymous
()
Ответ на: комментарий от Bioreactor

Ну почему? Мы в своем довольно крупном проекте очень активно и вполне успешно применяем груви вместе j2ee и ораклом для кастомизации на лету тех участков логики, которые часто изменяются.

anonymous
()
Ответ на: комментарий от anonymous

> Ну почему?

Потому что Bioreactor своей бритвой Оккама постоянно порывается отрезать всем любые выступающие части тела ;)

sv75 ★★★★★
()
Ответ на: комментарий от KRoN73

> Кстати, а какие скриптовые JVM-языки могут создавать на лету классы с заданными именами, которые потом по Reflection вызывать можно?

JRuby?

dr_jumba
()
Ответ на: комментарий от anonymous

> В зоопарке пополнение?

Нет, 1.0 уже давно был.

sv75 ★★★★★
()
Ответ на: комментарий от alx_me

> Быдлоязыков прибыло? Я так рад. Как сидел на c++ до java и .нет так и сижу, и не надоело.

Вот молодец. Выбрал себе один быдлоязык и не паришься.

yk4ever
()

Собственно о новости.

С одной стороны, пост-питоновые ЯВУ - это круто и правильно. С другой стороны, жаба и её виртуальная машина - зло и втопку.

Граждане! Давайте лучше ждать D 2.0. А ещё лучше - скинемся дяде Уолтеру на бутылку, чтобы он заопенсорсил DMD. И тогда D сметёт все эти жабы, дотнеты, плюсплюсы, гобджекты, всё это унылое среднеуровневое говнище, и наступит окончательный коммунизм, будет только C для драйверов, D для массового софта и Python для прототипов, хобби-проектов и рапидной вебни...

(...н-да, хороший вермут разливают в Gallo Vienyards...)

yk4ever
()
Ответ на: комментарий от schakal

"Performance improvements

Along with new features, this new release of Groovy brings noticeable performance improvements as well as lower memory consumption, compared to previous versions. In our informal benchmarks measuring the duration of all our test suites, we noticed speed improvements between 15% to 45% compared with our beta versions of Groovy 1.5 - and certainly higher figures can be expected by comparing with the now old Groovy 1.0. More formal benchmarks have yet to be developed, but those figures have also been confirmed by developers from an insurance company that is using Groovy to write the business rules of their policy risk calculation engine, and from another company who ran several tests on highly parallel machines. Overall, Groovy 1.5 should be faster and leaner in most situations. Your mileage may vary depending on your own context of usage of Groovy."

schakal
()
Ответ на: комментарий от yk4ever

> Граждане! Давайте лучше ждать D 2.0. А ещё лучше - скинемся дяде Уолтеру на бутылку, чтобы он заопенсорсил DMD.

1. А что, gdc сильно остает?

2. А как же унылое среднеуровневое JEE? Еще раз писать это на D боюсь никто не станет :(

> (...н-да, хороший вермут разливают в Gallo Vienyards...)

Да уж.

sv75 ★★★★★
()
Ответ на: комментарий от sv75

> 1. А что, gdc сильно остает?

Ну там заявлено, что он поддерживает "почти все" фичи языка. А с учётом того, что в 2.0 многое переделывается, это "почти" наверняка разрастётся.

> 2. А как же унылое среднеуровневое JEE? Еще раз писать это на D боюсь никто не станет :(

Индусам, всё индусам...

yk4ever
()
Ответ на: комментарий от yk4ever

>Граждане! Давайте лучше ждать D 2.0. А ещё лучше - скинемся дяде Уолтеру на бутылку, чтобы он заопенсорсил DMD. И тогда D сметёт все эти жабы, дотнеты, плюсплюсы, гобджекты, всё это унылое среднеуровневое говнище, и наступит окончательный коммунизм, будет только C для драйверов, D для массового софта и Python для прототипов, хобби-проектов и рапидной вебни...

Давайте выбросим C и его бледную тень C++. Оставим тока ADA. Напишем на ней JVM и драйвера. Будем использовать JavaDesktop с Swing Look&Feel Nimbus. А в качестве шелла использовать Groovy.

Итак:
С ненужен,C++ ненужен (заменяются ADA),
bash ненужен, Python ненужен (заменяется Groovy),
vi ненужен (заменяется JEdit),
Ruby ненужен (заменяется JRuby),
PHP ненужен (заменяется JSP/JSF глобально надёжно),
Apache ненужен (заменчется на Tomcat и JBoss),
MySQL ненужна (заменяется JavaDB, Apache Derby),
KDE ненужна (заменяется на JavaDesktop)

Как вам такое будущее в светлых тонах?

iZEN ★★★★★
() автор топика
Ответ на: комментарий от yk4ever

> А ещё лучше - скинемся дяде Уолтеру на бутылку, чтобы он заопенсорсил DMD. И тогда D сметёт все эти жабы, дотнеты, плюсплюсы, гобджекты, всё это унылое среднеуровневое говнище, и наступит окончательный коммунизм, будет только C для драйверов, D для массового софта и Python для прототипов

> (...н-да, хороший вермут разливают в Gallo Vienyards...)

Но, как ни странно, ты прав o_O

tailgunner ★★★★★
()
Ответ на: комментарий от iZEN

> Как вам такое будущее в светлых тонах?

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

tailgunner ★★★★★
()
Ответ на: комментарий от Deady

>не совсем понятно. это типа

Нет. Это, типа, запускается программа, грузит скрипт, в котором, на, скажем:

class foo
...
...

И это класс становится (в рантайме) совершенно равноценным Java-классом.
Т.е. потом из Java через Reflection дёргаешь этот foo по имени.

В общем, чтобы к классам, написанным на скриптовом языке, был
доступ из Java нативными средствами без хуков.

KRoN73 ★★★★★
()
Ответ на: комментарий от tailgunner

>> Как вам такое будущее в светлых тонах?

>Мы рады, что такой вариант будущего еще менее вероятен, чем тот, который описал yk4ever.

Ещё забыл добавить: эпоха x86(-64) закончилась. Началась эпоха UltraSPARC с аппаратной акселерацией Java байткода.

iZEN ★★★★★
() автор топика
Ответ на: комментарий от iZEN

> Ещё забыл добавить: эпоха x86(-64) закончилась. Началась эпоха UltraSPARC с аппаратной акселерацией Java байткода.

Блин, на ЛОР есть не только машина времени, но и портал в параллельную Вселенную o_O

tailgunner ★★★★★
()
Ответ на: комментарий от KRoN73

> Кстати, а какие скриптовые JVM-языки могут создавать на лету классы
> с заданными именами, которые потом по Reflection вызывать можно?

Beanshell. Не поддерживает параметризацию (generics), а так очень классный язык. См. также jEdit.

guitarist ★★
()
Ответ на: комментарий от iZEN

> Как вам такое будущее в светлых тонах?

Я-то хоть вермут пью. А потребляемые тобой вещества - запрещены законом.

yk4ever
()
Ответ на: комментарий от KRoN73

> И это класс становится (в рантайме) совершенно равноценным Java-классом.

Как решите проблему, огласите результат? :)

sv75 ★★★★★
()
Ответ на: комментарий от yk4ever

а каким боком в быдлоязыки попал c++?

да приходится парится, когда пишут об очередном появлении мега-языка, для всего-всего. Думаешь, а неужто ИИ появился, телепатемы принимает и оптимизирует круче всех и ещё единым кликом программы пишутся. И каждый раз облом...

Одной только реализации языка нужно 10 лет устоятся, а тут их как горячие пирожки пекут. Или вы сторонник позиции что для каждой задачи свой язык?

alx_me ★★☆
()

Сногсшибательные нововведения, черт побери. Круто. Действительно круто.

anonymous
()
Ответ на: комментарий от alx_me

> Одной только реализации языка нужно 10 лет устоятся

Это зависит от сложности языка :D Для Си++ 10 лет оказалось мало 8)

tailgunner ★★★★★
()
Ответ на: комментарий от alx_me

> а каким боком в быдлоязыки попал c++?

Апатамушта [умиротворённо рыгнув мятной зубной пастой] ООП без автоматического управления памятью - это всё равно, что онанизм пассатижами. Неудобно и больно. Ну и синтаксис шаблонов ацтойный. И быдлопотоки - смех и разврат.

yk4ever
()
Ответ на: комментарий от yk4ever

> ООП без автоматического управления памятью - это всё равно, что онанизм пассатижами

Ну вот, опять понес чушь :D

tailgunner ★★★★★
()
Ответ на: комментарий от sv75

>Как решите проблему, огласите результат? :)

На JBForth2 так будет, когда руки дойдут. Но не верю, что аналогичного решения нет в уже имеющихся проектах.

KRoN73 ★★★★★
()
Ответ на: комментарий от tailgunner

Скорее это зависит от наглости разработчиков реализации. Сказать что реализация готова на все 100 можно при любом состоянии проекта и далее марекетологи убедят кого-угодно что всё работает как надо.

нужны простые языки у вас есть c. нужно что-то более гибкое: c++. Но если вы быдлопрограммист то никакой язык вас не спасёт, а тем более Java. Спрятав голову в песок жопу не спасти.

alx_me ★★☆
()
Ответ на: комментарий от yk4ever

И много гуру написал былопрограмм на c++?

[Уверенно поссав на комменты]

alx_me ★★☆
()
Ответ на: комментарий от alx_me

> а каким боком в быдлоязыки попал c++?

По target auditory. Планировался как подарок от корпораций индусам. VS/MFC, Builder, etc ;)

Ну и по результам воздействия на мозг. "С++ велик, остальное не нужно".

sv75 ★★★★★
()
Ответ на: комментарий от alx_me

> нужны простые языки у вас есть c. нужно что-то более гибкое: c++

Си++ уж точно не "более гибок", чем Си. И слишком сложен (я не виню Страуструпа в этом - так уж сложилась жизнь). Нужен не "более гибкий чем Си" язык, а более мощный, но не настолько сложный, как Си++. Ну и безопасности тоже хочется. сборки мусора... и чтобы она была управляемой и отключаемой :)

tailgunner ★★★★★
()
Ответ на: комментарий от sv75

>> а каким боком в быдлоязыки попал c++?

> По target auditory. Планировался как подарок от корпораций индусам.

И эти люди учат студентов :D Уважаемый, покурите историю создания Си++

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> Ну вот, опять понес чушь :D

Никуда я чушь не ношу, для этого есть специальные люди в униформах.

Автосборка памяти - это круто. И отключать её не надо, нет. Надо юзать профайлеры и не терять ссылки. Ручная память нужна только в системах реального времени - а где вы их сегодня видели, эти системы? Всюду тормоза и всё свопится. Нет уж, для прикладного софта - только GC. Если GC работает без слоноподобной виртмашины - он работает хорошо и весело, как зверушки в советских мультфильмах.

Всю власть Уолтеру Брайту! [и немедленно выпил]

yk4ever
()
Ответ на: комментарий от yk4ever

> Ручная память нужна только в системах реального времени - а где вы их сегодня видели, эти системы?

Ну, вокруг меня десятка полтора систем РВ. АПВС? 8) А вообще - РВ уже проникает за пределы индустриально-военно-встроенных систем в RW.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> По target auditory. Планировался как подарок от корпораций индусам.

> И эти люди учат студентов :D Уважаемый, покурите историю создания Си++

К счастью, я учу не историю C++. "In October 1985, the first commercial release of the language appeared" Ну вот, сразу комерция. Я лично помнбю только как Borland/Turbo C++ появился. А раз борланд подвязался - значит точно быдлоязык ;)

sv75 ★★★★★
()

>Может использоваться в Web-приложениях Spring и Hibernate через фреймворк Grails, приспосабливая внешнюю бизнес-логику, языки предметной области (Domain-Specific Languages) и многое другое, чтобы упростить разработку.

> Groovy can be used for various purposes, from adhoc shell scripting leveraging Java APIs, to full-blown web applications built on Spring and Hibernate through the Grails web framework. It can also be integrated very easily in your applications to externalize business logic, create Domain-Specific Languages, or to provide templating, XML parsing capabilities, and much more.

Груви может быть использован для различных задачь, от простого скриптования Java API, до толстых веб-приложений построенных на Спринге и Гибернейте посредством фреймворка Грайлс. Он также может быть легко интегрирован в приложение для выноса бизнес-логики, создания ДСЛей, создания шаблонов, разбора XML и многое др.

r ★★★★★
()
Ответ на: комментарий от yk4ever

Так что, спасибо, Groovy, за ещё один блестящий тормоз?

alx_me ★★☆
()
Ответ на: комментарий от Bioreactor

>это "игра в буриме" для теоретиков.

Не нравится - не ешь. У меня давно плуги для жабских програм на жабаскрипте пишутся.

Правда груви тут не помошник в том смысле что жабаскрипт ежам известен а груви только разве что себье скриптовать что-то.

r ★★★★★
()
Ответ на: комментарий от sv75

>А они предлагают использовать спринг и грейлc?

По ссылке - да. То что в новости не ясно - трудности перевода.

r ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.