Czy Groovy odchodzi? [Zamknięte]

30

Jestem pewien, że to pytanie zostało zadane wiele razy. Chciałbym jednak o to zapytać ponownie z myślą o przyszłości tych języków.

Po raz pierwszy zapoznałem się z Groovy i bardzo mi się podobało. Czułem, że składnia jest prostsza i była znacznie bliższa Javie i mogłem szybko nauczyć się Grails .

Potem była Scala , a ramka internetowa działała Lift . Wciąż uczę się Scali i czasami wydaje mi się, że składnia jest bardzo trudna.

Nadal jednak zastanawiam się, jaka jest przyszłość Groovy. Kiedy autor Groovy mówi , że nigdy nie stworzyłby groovy, gdyby wiedział o Scali, wtedy zastanawiam się, czy w ogóle jest przyszłość. Oczywiście Groovy przeszedł długą drogę, a Grails jest dziś używany przez wiele dużych firm.

Gdyby dziś spojrzeć na Grails vs Lift, Grails byłby wyraźnym zwycięzcą. Korzysta z niego więcej firm. Ale biorąc pod uwagę wszystko, co powiedziałem do tej pory, jestem ciekawy, czy należy zainwestować w Groovy? Czy Groovy odchodzi, a Scala to lepszy wybór? Gdyby dyrektor generalny BMW powiedział, że jeździ mercedesem, można by się zastanawiać, dlaczego wszyscy nie powinniśmy jeździć mercedesem, prawda?

(Rozumiem, czy to pytanie jest naprawdę szerokie i może zostać zamknięte. Mam jednak nadzieję, że będzie to otwarta Wiki dla innych).

Amir Raminfar
źródło
1
Gdyby dziś spojrzeć na Grails vs Lift, Grails byłby wyraźnym zwycięzcą. Mówi kto?
Mahmoud Hossam,
Po prostu robiłem według popularności. Grails ma x1000 obserwujących, a Lift ma tylko x200ish na przepełnieniu stosu.
Amir Raminfar
Może podnoszenie jest łatwiejsze? ma lepszą dokumentację? a może Grails istnieje już dłużej niż winda?
Mahmoud Hossam,
3
Bardziej sprawiedliwe byłoby porównanie Grails ze Scala + Play Framework. Play Framework może być również używany z Javą i jest inspirowany Ruby on Rails.
Jonas
3
„Gdyby dzisiaj spojrzeć na Grails vs Lift, Grails byłby wyraźnym zwycięzcą” , powiedziałeś 2 lata temu, ale graj! 2 z łatwością zastąpił Lift jako wiodącą platformę internetową opartą na Scali i wyprzedza Grails (IMHO).
Vorg van Geir

Odpowiedzi:

23

Nie sądzę, że Groovy zniknie, teraz jest samowystarczalną istotą. Grails jest oparty na języku Groovy, co jest dobrym powodem do pozostania przy życiu. Groovy otrzymał aplikację zabójcy.

Nie twierdzę, że Grails to jedyny ważny projekt Groovy, Gradle jest również całkiem niezły. GORM jest naprawdę przydatny. Gant to miła poprawa w stosunku do Anta.

Nie wspominając, że Groovy / Grails są teraz pod parasolem SpringSource i są zobowiązani do obu.

Gdyby dyrektor generalny BMW powiedział, że jeździ mercedesem, można by się zastanawiać, dlaczego wszyscy nie powinniśmy jeździć mercedesem, prawda?

Zgadnij, co wybrał James Gosling?

Chiron
źródło
Gradle nie jest już open source! _!
Ant
1
To, co naprawdę się liczy, to podstawowy język i podstawowe biblioteki. Nie możesz zrobić nic lepszego niż Groovy. Język podstawowy jest łatwy i dynamiczny, szybki, a biblioteki Java takie jak Apache itp. Są lepsze niż w innych językach. To najlepszy język na świecie i dlatego nie znika. Wtyczki i Grails nie mają znaczenia - świat dynamicznych języków, takich jak PHP, już wie, co się liczy (tak jak powiedziałem). I jest kocur i jboss. A teraz idź i sprawdź Ruby, to żart! Jest gorzej niż .net! Teraz przejdź do Pythona i dowiedz się, jak radzić sobie z błędami w kodzie sieciowym.
Andrew Smith,
Masz rację .. Gradle staje się coraz bardziej popularny, który korzysta ze skryptów Groovy ..
The Coder
6

Jak również komentarze @The Legend of 1982:

Groovy nadal będzie się zachowywał, ponieważ jest to dynamiczna alternatywa dla Javy ze składnią wystarczająco zbliżoną do Javy, aby umożliwić wielu programistom dokonanie zmiany (lub przynajmniej manipulowanie nią).

  • Grails jest ciągle w 2 najlepszych frameworkach, ilekroć Matt Raible wykonuje swoje ogromne tabele / analizy porównawcze frameworków JVM. Jest to prawdopodobnie najbardziej kompletna analiza.

  • GPars to nowa biblioteka współbieżności lib / API, dzięki której Groovy bardzo podnosi możliwości Scali.

Z czasem problem prędkości ulegnie poprawie, gdy Groovy wymyśli, jak używać wywoływanych dynamicznych i innych sztuczek kompilatora.

Martijn Verburg
źródło
„Grails jest ciągle w 2 najlepszych frameworkach”, ale backendy oparte na PHP nie są uważane za „framework”, nawet jeśli większość firm nadal z nich korzysta.
Vorg van Geir
3

Groovy jest bardzo miłym i niedocenianym językiem (nawet przez własnego twórcę, jak wspomniałeś). Jeśli chodzi o mnie, jego rola w ekosystemie Java jest jak rola Lui w ekosystemie światowym C / C ++. Tak, to nie jest tak szybkie, ale jednak.

Będę bardzo smutny, jeśli groovy umrze, ale ta mapa mówi nam, że nie jest tak źle.

W rzeczywistości Groovy to bardzo miły, schludny, wyrazisty język. Co do Scali, uważam, że Groovy i Scala znajdują się w różnych niszach.

shabunc
źródło
3

Nie powalić ogólnej doskonałości Groovy, a nawet Ruby, ale ponad 90% ruchu w sieci dotyczy stron napisanych w PHP lub niektórych ramach Java.

Nie wiem, skąd masz „Grails jest używany przez wiele dużych firm”, to prawie tak, jakby powiedzieć „wszystkie fortuny 500 firm używają Pythona”, co jest prawdą, ale nie używają Pythona do niczego, co ma kluczowe znaczenie dla biznesu.

Mają rację, że nie używają Grails, Railsów itp. Świetnie nadają się do małych, schludnych stron, ale nie skalują się dobrze. Również większość dużych firm ma misternie wzajemnie połączone systemy, a głównym wyzwaniem podczas budowania aplikacji internetowych jest połączenie się ze wszystkimi innymi systemami, które dostarczają lub zużywają dane - kodowanie umowne po prostu nie działa w tej przestrzeni.

Groovy głównym konkurentem języka jest w rzeczywistości JPython, który działa w przestrzeni sames (Skrypty na JVM) i jest używany do tego samego rodzaju rzeczy (testy automatyczne, automatyczne kompilacje itp.).

James Anderson
źródło
1
Rozglądając się wokół, nikt, kogo znam, obecnie używa Groovy i nie ma żadnych ofert pracy Groovy w mojej okolicy. Więc na pewno nie wygląda dobrze. Jestem pewien, że jest w użyciu, ale tutaj nie jest to technologia głównego nurtu.
Brian Knoblauch,
1
@Brian Groovy to wciąż jedyny możliwy wybór, jeśli potrzebujesz Grails. (Trzeba przyznać, że Grails jest coraz częściej wypierany przez czystszych zwolenników, takich jak Play! 2.)
Vorg van Geir
@James Nie zapomnij Eclipse jako groovy-killera dla skryptów JVM, automatycznych testów i kompilacji itp.
Vorg van Geir
Natknąłem się teraz na lokalny sklep za pomocą Groovy! Jednak wciąż nie spotkałem nikogo, kto używa Grails.
Brian Knoblauch,
2

Wydajność Groovy 2.0 stawia Groovy w lidze bardzo zbliżonej do Javy, patrz http://java.dzone.com/articles/groovy-20-performance-compared Test porównawczy w tym artykule jest bardzo szorstki, ale ja pracuje teraz nad nowym testem porównawczym dla Groovy 2.1 na podstawie Roberta Hundta (https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf) stworzonym w celu porównania wydajności Google Go z innymi językami. Potrzebuję 2-3 tygodni, zanim skończę pisać artykuł, ale pomiary do tej pory wyglądają bardzo dobrze. Groovy2.1 z @CompileStatic i JDK7 ma mniej więcej taką samą wydajność jak Java z JDK6 (!).

Myślę, że Groovy będzie bardziej konkurował z Kotlinem i może Ceylonem niż ze Scalą. Scala jest bardziej naukowym językiem badawczym (aczkolwiek bardzo interesującym), a nie językiem, w którym można wykonywać prace jako Groovy i Kotlin. Jeśli po prostu brakuje Ci miksów, metod rozszerzenia, prawdziwych zamknięć i innych rzeczy w Javie, to duży krok, który musisz zrobić, aby to osiągnąć. Składnia Groovy jest bardzo zbliżona do Javy, co wydaje się być prawdziwą zaletą w porównaniu do Kotlina.

OlliP
źródło
4
Błagam, że Scala nie jest naukowcem. Jest tak naprawdę bardzo produktywny i pomocny, a obecnie jest używany w wielu instytucjach finansowych, na LinkedIn, Twitterze i tak dalej. Próbowałem zarówno Scali, jak i Groovy tutaj, gdzie pracuję, i nigdy nie wybrałbym Groovy dla projektów przekraczających łagodny próg złożoności.
Andrea,
1
W zeszłym tygodniu pojawił się poważny błąd w statycznie skompilowanym trybie Groovy 2.1 . Możesz uzyskać prędkość dzięki błędom (np. Statyczny Groovy) lub możesz uzyskać niezawodność, ale zwolnij (tj. Dynamicznie skompilowany Groovy), ale nie możesz uzyskać zarówno prędkości ORAZ niezawodności. Języki programowania z efektem kwantowym nikomu się nie przydają.
Vorg van Geir
1
Groovy to język dodany do Javy (tj. Dodaje pewne funkcje do Javy). Dość złożone systemy zostały zbudowane w Javie. Więc nie sądzę, że potrzebujesz zaawansowanego języka do pisania skomplikowanych aplikacji. Dodałem kilka błędów kompilatora Groovy do bazy błędów Groovy i uważam, że Scala ma kompilator lepszej jakości. Ale nie sądzę, że potrzebujesz Scali, ponieważ aplikacja jest wymagająca. Rozwiązaniem jest projektowanie i wiedza specjalistyczna w dziedzinie problemów, nie tyle w języku.
OlliP