miércoles
ene222014
Groovy sobrepasan los 3 millones de descargas al año
Guillaume Laforge ha publicado un post en su blog describiendo la evolución de las descargas de Groovy durante el último año. Durante 2012 Groovy tuvo 1.7 millones de descargas. Pero en 2013 estas descargas sean casi duplicado, sobrepasando los 3 millones de descargas. Este gráfico muestra las descargas mensuales de Groovy desde Codehaus y desde Maven Central.
Otro dato interesante que ha publicado es las versiones de Groovy que están siendo descargadas. Aquí tenéis una evolución de las versiones de Groovy descargadas durante 2012 y 2013:
¡Enhorabuena para Groovy!.
Reader Comments (4)
Aun así todavía está muy lejos de la ubicuidad de Java. De momento no creo que ningún nuevo lenguaje consiga el nivel de ubicuidad de Java. La ubicuidad es una característica muy importante que sólo unos pocos lenguajes pueden conseguir. Para empezar, la ubicuidad hace más legible el código, simplemente porque hay mas gente que lo entiende. La ubicuidad hace que haya más programadores, herramientas, librerías, etc.
Si tuvieses que aprender un nuevo idioma, ¿qué estudiarías? ¿inglés o italiano? Aunque la sintaxis y gramática del italiano fuera más elegante y bonita la mayoría de nosotros estudiaría inglés, porque es ubicuo.
Personalmente cuando programo en Groovy lo que me pone los pelos de punta es que las pruebas automáticas me sacan errores que con Java me los hubiera sacado el compilador. Con Groovy tengo que escribir más pruebas automáticas, es decir escribir más código, para obtener una aplicación más frágil. Eso, y que el IDE no autocompleta bien y el def hace el código ilegible.
El problema de los lenguajes modernos es que ninguno de ellos representa realmente un nuevo paradigma, son puros "remakes" de los 80s. Es decir, Groovy no añade nada nuevo a Smalltalk, por ejemplo. Los lenguajes dinámicos y funcionales ya demonastraron su limitada utilidad hace muchos tiempo.
Cualquiera que sepa java es capaz de leer código groovy muy facilmente, lo mismo para escribirlo, necesitas un poco más de tiempo para aprovechar las características de groovy, pero vamos, es facilito, facilito. Vamos que precisamente la ubicuidad de java es una de las mayores ventajas de groovy.
No entiendo porque tienes más pruebas con groovy que con java, yo hago las mismas, las pruebas son la definición del QUE espero que haga mi código, y eso no cambia use lo que use para implementarlo.y si hablamos de escribir más o menos código, en groovy en general siempre vas a tener bastante menos código que en java para hacer lo mismo. De todos modos, aún programando en java, una buena cosa sería usar spock para codificar las pruebas, si de lo que hablamos es de legibilidad y de escribir especificaciones en forma de pruebas automáticas spock es mucho mejor que JUnit.
Precisamente esta es para mi la mayor virtud de groovy, que el código es mucho más facil de leer (obviamente si esta bien escrito), es relativamente sencillo construir DSL's, en general la flexibilidad que te da te permite jugar más con el lenguaje y escribir código más semantico. En java hay que hacer muchas cosas para satisfacer al sistema de tipos, por ejemplo los genéricos que hacen farragoso a más no poder el código, que en un lenguaje donde usas duck typing son totalmente innecesarios
Y sobre el IDE, es cierto que no te ofrece casi nada cuando trabajas con groovy, yo el autocompletar me da más o menos lo mismo lo que si echaba en falta eran algunas refactorizaciones que un buen IDE java ofrece y en groovy tienes que hacerlas by hand. La parte positiva es que como un IDE no te da gran cosa acabas sin IDE (sublime text usábamos nosotros) y cuando te acostumbras a la velocidad de trabajar con un entorno LIGERO el día que tienes que volver a abrir un eclipse se te ponen los pelos de punta.
En lo que si te doy la razón es que ni groovy, ni scala, ni clojure descubren ningun paradigma ni suponen un avance de ordenes de magnitud, son un alivio y un soplo de aire fresco eso si. Y eso de que los lenguajes dinamicos y funcionales han demostrado su limitada utilidad... eso es mucho decir, fuera del mundo java hay mucha gente que lleva muchos años tan contenta con python, ruby, lisp o erlang.
Hola Alfredo,
Ja, ja, ja. Eso es como si sube la gasolina y dices "a mi me da igual yo sigo echando 20 euros".
Todo lo contrario. Si haces la misma aplicación con Java y Groovy sin ninguna prueba automática, ¿cuál será más robusta? Sin duda la de Java, por el compilador, por el tipado estático. Para tener el mismo nivel de robustez has de escribir pruebas, por ende has de escribir más código.
Los genéricos hacen más robusto el código. La pena es que hasta Java 5 no hubiese genéricos, cuando lenguajes como C++ o Eiffel ya los tenían.
Siempre y cuando no utilice def, claro. El código que estás escribiendo siempre es fácil de leer, el problema es depurar el código de hace años que han escrito otros.
A mi no, porque tengo que buscar las API de las librerías que uso, y eso me hace perder tiempo.
Sin IDE y con línea de ordenes. No gracias, no quiero volver a los 80s. Prefiero seguir con Eclipse (es decir, quedarme en los 90s).
Y bueno, tengo que admitir que Groovy tiene muchas cosas que me gustan mucho y por eso lo uso, pero como no soy un "creyente" me puedo permitir el lujo de criticarlo.
Venga va, acepto que un app sin pruebas es "más robusta" en java, aunque no usaría la palabra robusto en referencia a una app sin pruebas. Personalmente cualquier app sin pruebas automáticas me parece inaceptable (el nivel de "robustez" que proporciona el compilador esta a años luz de ser aceptable), por tanto si, para hacer aplicaciones de calidad inaceptable en java las haces con menos lineas, si hablamos de construir software de calidad aceptable, con groovy escribes menos lineas.
Los genéricos son meta-información para el compilador (los de java al menos), no los vas ha echar de menos en un lenguaje dinamico. Y sobre la facilidad para leer código legado, pues en realidad va a depender en un 99% del programador que lo escribiera y en un 1% del lenguaje, simplemente groovy te da muchas herramientas para hacer código expresivo, claro que estas mismas herramientas también se pueden usar para hacer código ilegible, milagros no hace groovy.
Lo del IDE y tal, las cosas van y vienen, lo mismo es el momento de volver a los 80, personalmente me siento mucho más productivo con un buen editor de texto y una linea de comandos que con un IDE. Cada cual que elija sus herramientas, en esto no me meto. Eso si, en java no puedo elegir, uso un IDE porque es un lenguaje demasiado verboso para escribirlo sin ayuda.
Dos años y pico programando en groovy y ahora estoy de nuevo en java, PEREZA me esta dando que no te puedes hacer una idea.