LINUX.ORG.RU

Groovy++ догоняет Java по скорости

 , , , ,


0

0

Осенью открылся проект по разработке статического компилятора с Groovy, называемый Groovy 1.8 или Groovy++ code.google.com/p/groovypptest/

Тесты, проведенные Nick Wiedenbrueck, показывают что производительность получаемого Groovy++ байткода лишь незначительно (в ~1,5раза) уступает байткоду, получаемому javac

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

Ответ на: комментарий от tia

1,5 раза? Незначительно?


Для динамического языка это действительно очень небольшое отставание. Если это действительно так, Groovy теперь должен сильно обгонять по производительности Python и Ruby.

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

Это первый тест. Там есть followup

Karapuz ★★★★★
() автор топика

АААА!!! Я ждал этой новости каждый день!

Раньше только необычайная тормознутось останавливала от использования. Но теперь ее нет.

Те кто читал о этом языке и смотрел примеры с кодом поняли, что следует ждать нескольких больших «языко-капецов» ))) Учитывая что Groovy не надо учить. Java код почти всегда - правильный Groovy. Пишешь на Java в файлах *.groovy, учишь Groovy, по мере роста знаний вставляешь синтаксические вкусности.

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

И еще почти все остальное тормознее кроме C, C++, hand-tuned assembly, Objective-C, Fortran.

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

> Раньше только необычайная тормознутось останавливала от использования.

И зависимость от пухленькой платформы.

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

> Для динамического языка это действительно очень небольшое отставание.

Ты по ссылке сходи - где ты там динамическую типизацию видишь?

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

От мощнейшей платформы. Это ни за что не останавливало

vertexua ★★★★★
()
Ответ на: комментарий от tailgunner
"mySong = new Song(length:90, name:"Burning Down the House")
myBook = new Book(name:"One Duck Stuck", author:"Phyllis Root")

doSomething(mySong) //prints Burning Down the House
doSomething(myBook) //prints One Duck Stuck

anotherSomething = doSomething

anotherSomething(myBook) //prints One Duck Stuck

http://www.ibm.com/developerworks/java/library/j-alj08034.html

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

Дело в том, что при динамической типизации производительность не может быть очень высокой. Это Groovy.

Статья о Groovy++, что есть статический Groovy, тоесть вышеназваный без использования динамической типизации

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

Ты хоть прочитал то, что я написал? Вот код на Groovy++:

   1. @Typed  
   2. package test  
   3.   
   4. def swap(int[] a, int i, int j) {  
   5.     def temp = a[i]  
   6.     a[i] = a[j]  
   7.     a[j] = temp  
   8. }  
   9.   
  10. def quicksort(int[] a, int L, int R) {  
  11.     int m = a[((L+R)/2).intValue()]  
  12.     int i=L  
  13.     int j=R  
  14.     while (i<=j) {  
  15.         while (a[i]<m) i++  
  16.         while (a[j]>m) j--  
  17.         if (i<=j) {  
  18.             swap(a, i, j)  
  19.             i++  
  20.             j--  
  21.         }  
  22.     }  
  23.     if (L<j) quicksort(a,L,j)  
  24.     if (R>i) quicksort(a,i,R)  
  25. }  
  26. def quicksort(int[] a) {  
  27.     quicksort(a, 0, a.length-1)  
  28. }  
  29.   
  30. // Sample data  
  31. int[] a = new int[100000]  
  32. a.eachWithIndex {int x, int i ->  
  33.     a[i] = i*3/2+1  
  34.     if (i%3==0) a[i] = -a[i]  
  35. }  
  36.   
  37. int t1 = System.currentTimeMillis()  
  38. quicksort(a)  
  39. int t2 = System.currentTimeMillis()  
  40. println t2-t1   

а свою ссылку... ну ты понЕл.

tailgunner ★★★★★
()

>называемый Groovy 1.8 или Groovy++

ээ.. он называется только Groovy++, на Groovy 1.8 он просто базируется

thevery ★★★★
()

также стоило написать, что G++ - это не отдельный язык, а дополнение к компилятору groovy, и в одном классе вполне можно использовать полностью динамические groovy-методы и статически компилируемые g++-методы

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

Честно говоря я более склоняюсь в варианту что языки _с_ динамической типизацией не дают никакого выигрыша, зато приносят тормоза и ошибки.

Мне нужен Groovy (тем более ++), так как он совместим с Java и имеет горы синтаксического сахара. По мере изучения Scala вопрос снимается, так как замечаю что это в разы более серьезная разработка. Но вот выходят такие новости, что тормоза пропали и есть статический Groovy, и сразу интерес растет осень быстро

vertexua ★★★★★
()

Очень хорошо. А то неадекваты в рассылке опенждк с ужасом который они изобретают как жава7 задрали. Такое впечатление что они не заметили последние 15 лет и думают что сейчас до сих пор 95 год.

PS: Автор груви сказал, что если бы он знал про скалу в свое время - то он не писал бы груви.

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

>Честно говоря я более склоняюсь в варианту что языки _с_ динамической типизацией не дают никакого выигрыша, зато приносят тормоза и ошибки.

Просто почти никто не умеет их готовить. А так область у них вполне есть. prototype-языки, динамически построенные прокси, прозрачные биндинги к чему-либо и т.д.

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

> прозрачные биндинги к чему-либо и т.д.

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

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

> Для динамического языка это действительно очень небольшое отставание.

Что-то я не понял. Компилятор статический, а язык динамический?

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

>тут, собственно, пишут о похожих вещах - у g++ больше шансов стать java.next языком, чем у scala:

Чудаки которые пишут это:

I don't think its mixing of imperative and functional styles along with its weird, clearly academically experimental syntax will win out.


в качестве экспертного менния не канают.

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

Scala - самостоятельный язык, он не похож на Java. Он разработан как для самостоянельной разработки, так и в паре с Java в одном проекте. Он не может стать next Java, так как не наследует ее.

Groovy - полигон фич для Java на будущее, ИМХО

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

>Он разработан как для самостоянельной разработки, так и в паре с Java в одном проекте.

Скоро год как - полет нормальный.

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

>Scala - самостоятельный язык, он не похож на Java [...]

я как бы в курсе, но это не меняет того факта, что некоторые проекты пишут только на scala, без java в явном виде.

Groovy - полигон фич для Java на будущее, ИМХО


ну разработчики groovy сейчас имеют мало отношения к разработчикам java, да и groovy в плане синтаксического сахара и фич уже очень далеко от java ушёл.

thevery ★★★★
()

но вот руби они этим конечно яйца отрезали по самое горло. У руби по идее один выход - загнаться под llvm на перспективу - иначе придется тихо стагнируя умирать.

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

> да и groovy в плане синтаксического сахара и фич уже очень далеко от java ушёл.

смотрите ссылки которые я запостил выше. это маленькие примеры

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

а как это влияет-то? Groovy же уже давно быстрее ruby...

Headius, кстати, уже давно пилит Duby - статическая версия JRuby

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

>смотрите ссылки которые я запостил выше. это маленькие примеры

ээ.. я-то как бы groovy давным-давно уже использую и про эти примеры знаю...

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

>Перепиши Eclipse на C++ — ощутишь.
Не как о должном говорить о своих убогих попытках писать на C++ зафейленных из-за нехватки мозга, ок?

anotheranonymous
()

писькомерство уже задолбало

все зависит от задачи и сколько времени есть на ее решение (считай бабла), а что там использовать... да пофиг по большому счету, главное чтобы задача была решена и она удовлетворяла ожижаниям заказчика.

p.s. да asm быстрее и C быстрее жабы, но при дрпустимых латенси, скорость написания на той же жабе будет в разы (если не в 10ки разов) быстрее. если прилада удовлетворяет требованиям да поКер на чем писать, всегда ваш K.O.

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

> Перепиши Eclipse на C++ — ощутишь.

что да, то да - тот же Visual 2008 по сравнению с эклипсом как истребитель против улитки.

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

>прогрессивным человечеством :)
Ну тогда такое человечество не нужно.

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