¿Se eliminará gradualmente el lenguaje de programación Groovy con la llegada de Scala y Clojure?

Me pregunto por qué pensaría que el desarrollo de un lenguaje en la JVM afectaría el desarrollo continuo de otro idioma en la JVM.

Últimamente hemos visto una gran explosión de idiomas en la JVM, incluidos Kotlin y Ceilán, así como puertos de otros idiomas para la JVM. Cada idioma satisface a una audiencia en particular y todos están siendo desarrollados independientemente.

En cuanto a Scala, Clojure y Groovy, son tres idiomas muy diferentes que atraerán a personas completamente diferentes por diferentes motivos. He construido sistemas de producción con los tres.

En mi empresa anterior, elegimos Groovy porque queríamos un lenguaje similar a Java que fuera menos detallado y a nuestro equipo le gustaban los lenguajes dinámicos de proyectos anteriores. Para nosotros fue un “mejor Java” y fue lo suficientemente rápido para nuestras necesidades, al crear un servicio back-end Spring / Hibernate (para una aplicación de escritorio que usaba Adobe AIR).

En mi empresa actual, inicialmente usamos Scala para un proyecto que requería mucha manipulación de XML y se beneficiaría de la capacidad de Scala para crear DSL (lenguajes específicos de dominio). También necesitábamos rendimiento, por lo que consideramos que sería preferible utilizar un lenguaje compilado estrictamente escrito. Scala encajaba perfectamente con ese proyecto.

Luego, comenzamos a usar Clojure para áreas donde un lenguaje dinámico tenía más sentido, al tratar con conjuntos de datos grandes y heterogéneos. No necesitábamos una tipificación estricta aquí y queríamos algo más puramente funcional en estilo que Scala.

Tres idiomas, tres objetivos diferentes, tres audiencias diferentes.

Creo que Groovy tiene suficiente tracción en el espacio de desarrollo y algunas herramientas agradables y maduras como Gradle y Grails. También en mi opinión, los idiomas como scala y clojure también son un poco difíciles para las personas que no tienen mucha experiencia en la sintaxis funcional (al menos para mí). Groovy, por otro lado, tiene mucho más fácil de leer y hacer girar la cabeza como sintaxis. Entonces, si bien creo que otros lenguajes JVM como Scala y clojure robarán algo de la mente de Groovy, pero creo que la comunidad Groovy es bastante activa y creará proyectos nuevos e interesantes para hacer que Groovy sea atractivo para la comunidad de desarrolladores.

No lo creo. Creo que todos estos idiomas tienen su propio espacio y continuarán existiendo en ellos.

Groovy seguirá existiendo como un lenguaje de scripting de propósito general. Se seguirá utilizando como lenguaje de scripting en Gradle, que es un sistema de construcción muy bueno. Además, me gusta el framework web Groovy on Grails. Le permite obtener un prototipo web en ningún momento. Creo que Groovy también tiene un poco de azúcar sintáctica que mejora la productividad del desarrollador, donde permite lograr cosas con menos líneas de código en comparación con Java. Por lo tanto, creo que es un buen ajuste para el lenguaje de scripting del nivel de habilitación web y se debe continuar utilizando en ese espacio.

Para trabajar en tareas que requieren más datos, Groovy no es una buena opción para algo así, ya que Groovy se escribe dinámicamente. Scala se ajusta mucho mejor, ya que tiene Inferencia de tipos y también se integra bien con los marcos de Big Data como Apache Spark.

Entonces, creo que Groovy continuará existiendo en los casos de uso en los que sea adecuado.