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).
Odpowiedzi:
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.
Zgadnij, co wybrał James Gosling?
źródło
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.
źródło
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.
źródło
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.).
źródło
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.
źródło