Начало 2007 года ознаменовалось событием, которое ждали и готовили давно: вышла первая релизная версия 1.0 нового скриптового ООЯП Groovy, использующего виртуальную машину JVM.
За создание новых скриптовых языков надо надо руки отрывать. Итак уже зоопарк целый: чтобы прогу поставить, изволь стянуть к ней виртуальную машину, десятка два библиотек и еще пару пакетов, к которым все это биндится... Ужос...
> Помесь перла, паскаля, васика и велосипеда. Ужас.
Внимательно посмотри на свой аватар и повтори. Там Руби с уклоном под Яву(фигурные скобки вместо ду-энд) плюс некоторые нереализованные фишки(синтаксис словарей как в Питоне и сокращенный синтаксис для лямбды), которые будут во второй версии.
Вобщем ХЗ. Библиотека используется Явовская. Наверное хорошо подойдет тем, кто использует Яву и хочет легкий Руби-подобный язык. Хотя если Руби будет быстро бегать под Ява-машиной надобность в нем отпадет.
отличная и очень интересная штука среди скриптовых языков для JVM вероятно самый быстрый и самый удобный по взаимодействию с java-кодом синтаксис - ближе всего к ruby, но java-like - решение вполне понятное ну и собственно это какой-то JSR
> Помесь перла, паскаля, васика и велосипеда. Ужас. Я так понимаю вы в жизни видели только перл, паскаль, васик и велосипед. Действительно ужас. 8/
> Внимательно посмотри на свой аватар и повтори. Там Руби с уклоном под Яву(фигурные скобки вместо ду-энд) В руби тоже есть фигурные скобки ими обзначается однострочный блок
Вообще согласен, больше всего напоминает руби (если не вдаваться в тот момент что руби сам по себе компиляция фич из разных языков и нового особо не несет)
>но, скажите пожалуйста мне каково назначение сего ЯП?
Быстрое прототипирование с последующим переносом кода на Java, или только критических к скорости мест, быстрая склейка (glue-code http://en.wikipedia.org/wiki/Glue_code) Java-классов, быстрое аля RoR создание веб-сайтов, веб-морд, написание скриптов, одинаково хорошо работающих под любой ОС за счет универсальной JVM
неа не на С :), в принципе идея ясна, не флейма ради: если допустим с переносом кода на java, прототипированием и glue-code еще более менее понятно потому как для етого нужен именно такой ЯП(именно для жабы), то с
>быстрое аля RoR создание веб-сайтов, веб-морд, написание скриптов, одинаково хорошо работающих под любой ОС за счет универсальной JVM
наверное не соглашусь потому как и питон и руби и тот же о ужас пых на всех платформах работают так же одинаково и без всяких JVM и еще как мне кажется для того чтоб оно работало нада еще какой нить фреймворк забубенить, тоесть ето еще один лисапед для веба?
>наверное не соглашусь потому как и питон и руби и тот же о ужас пых на всех платформах работают так же одинаково и без всяких JVM и еще как мне кажется для того чтоб оно работало нада еще какой нить фреймворк забубенить, тоесть ето еще один лисапед для веба?
Да, и именно поэтому стоит только произнести где-нибудь слово Руби, как господа которым все всегда не нравится начинают говорить противным голосом - "А библиотееееки?". Сделали jruby и груви, так что можно прозрачно цеплять либы явы коих есть куча для всего что придумали и нет и что ? Они теперь не менее противным голосом говорят "Жааааба" и "Лисапеееед" Прав был товарищ - всем не угодишь.
Ты не понял для чего он. На него не надо переходить. Вот я писал серверную прикладуху - там был плугинный API для крона и trigerred actions. Что страдать и писать это на java на каждый чих? Я привинтил туда рину - и теперь сисадмин или вообще кто хочет фигачит туда свои плугины на javascript.
> Мне напомнило смалталк. А вот за call для замыканий - руки бы надо пооторвать....
Ничего отрывать не нужно. И call в Руби сделан по техническим причинам. Без него из-за структуры синтаксиса нельзя. В Руби вызов метода можно сделать без круглых скобок. Из-за этой фичи замыкание невозможно как отдельная переменная в принципе. Потому что в Питоне(или Пыхе) ты пишешь переменная + () и понятно, что это вызов метода. В Руби же скобки необязательные и обращение к переменной(которая еще и лямбда) без скобок может значить получить ссылку на лямбду или выполнить лямбду - что есть неоднозначность...
Но для атрибутов объекта это легко обходится. Достаточно перехватить обращение к соответствующему геттеру и если это лямбда, сделать для нее call, а если строка - просто вернуть ее значение. А отдельные лямбды не такая и частая штука, чтобы париться из-за лишнего call-a.
круть, но ей для разгона две недели:
pi lorn:~ [15]% time JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun/ groovy -e "println 'hi'"
hi
JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun/ groovy -e "println 'hi'" 1,97s user 0,11s system 97% cpu 2,141 total
pi lorn:~ [16]% time ruby -e "puts 'hi'"
hi
ruby -e "puts 'hi'" 0,01s user 0,00s system 99% cpu 0,012 total