domingo, 10 de junio de 2012

GRIFFON Framework: "La pesadilla tras las aplicaciones de escritorio en java terminó"

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0-FiLh5fDFmrKul7Sca3H2nviosxlYr8E3niAz7o98gSvMaPtuGJa2pIdSqpMCfKYgxuhuSTjkPIi6ymBZqF5tw_L0vTlgwhd5-I_7Ar4aBYTaGYYFx6aMM_qLwRPl7knP4HF02ngZqBh/s400/worst-computer-viruses-1.jpg

"Todo en la vida tiene ventajas y desventajas" es una frase que he visto cumplirse con una rigurosidad casi demoníaca, y la tecnología no es la excepción a ésto:.Net por ejemplo tiene bases sólidas para afirmar que tanto la curva de aprendizaje como el tiempo que emplean los programadores desarrollando software usando ésta tecnología es mucho menor que el que se requeriría en java, pero ¿a qué costo? ¡La Robustez!; de ahí que al momento de desarrollar aplicaciones empresariales de gran escala, Java defintivamente gana la contienda, y por citar un ejemplo, la mayoría de aplicaciones bancarias a nivel mundial usan Java, por la fiabilidad, robustez y estabilidad que ésta plataforma brinda, PERO, si hablamos de aplicaciones de escritorio desarrolladas en java, pese a ser robustas, el mantenimiento y tiempo de desarrollo en sí de las mismas es para desanimar a cualquier desarrollador, de hecho no conozco a nadie que me haya dicho: "!Qué bién tengo que desarrollar una aplicación de escritorio en Java...yuuuju!!!" jejeje.

Claro está que en la actualidad, se ha hecho común el "desarrollo rápido" y por tal motivo han emergido tecnologías aluscinantes que hacen que la experiencia de desarrollar software sea tremendamente productiva -y divertida-; Ruby On Rails es un gran ejemplo que revolucionó la industria dando un giro completamente radical al cómo los desarrolladores estabamos a costumbrados a hacer software, recuerdo que cuando aprendí Ruby On Rails me di cuenta que no solo era más productivo sino que la sonrisa no se iba de mi rostro; es más, en aquel entonces, entre quienes me preguntaban sobre Ruby popularicé la frase "Ruby On rails es una de las tecnologías más divertidas que he usado en mi vida", pues el paradigma de desarrollo que usa Ruby on Rails esta enfocado en la productividad desde el primer momento.
Tiempo después bajo esta misma concepción emergió Grails como una solución de desarrollo rápido pero en ambiente Java, y de Grails no puedo sino hablar maravillas, pues sigue la misma línea productivo/divertido de Ruby On Rails pero usando por atrás tecnologías poderosísimas como: Spring, Hibernate, SiteMesh, etc. y al contar con un sin número de plugins, ha hecho del desarrollo de una aplicación web Java un día de fiesta.

Pero ¿qué ha pasado con las aplicaciones de escritorio en Java? ¿existe alguna solución que aminore el tiempo de desarrollo y por ende la frustración de los desarrolladores? Respuesta: existen frameworks como OpenSwing que tratan de hacer del desarrollo de las mismas una tarea más simple, pero, la brecha grandisima entre Desarrollo de Aplicaciones de Escritorio en Java y Desarrollo Rápido seguía existiendo... Pero traigo buenas noticias: ¡Nació Griffon!.



Griffon es un framework creado precisamente por gente del proyecto Groovy que al ver esta brecha grande en las aplicaciones de escritorio java, crearon una solución que basada en el mismo paradigma de Grails (pero para aplicaciones de escritorio), en otras palabras desarrollo ultra rápido para crear Desktop Aplications en Java; de hecho, a Griffon podemos verlo como un "Grails para aplicaciones de escritorio", pues lleva consigo los mismos conceptos de convención sobre configuración, DRY (optimizando, eliminando código repetitivo), e incluso lleva inherente el patrón MVC que habiamos visto en ambiente web pero ahora presente en aplicaciones de escritorio; una palabra: wow!

Griffon por ende usa el lenguaje Groovy (un lenguaje dinámico para la máquina virtual Java), lo cual podría generar ciertos desacuerdos entre aquellos puristas de la JVM que están preocupados por rendimiento, pero como lo dije inicialmente todo lleva ventajas y desventajas, pero, bajo mi perspectiva, si hablamos de rendimiento, no creo que el impacto en el rendimiento de un lenguaje dinámico sea el mismo en un ambiente web que en una aplicacion de escritorio (más aún con el hardware cada vez más potente que va apareciendo), sin embargo, animo a que sobre la mesa de opciones para su próximo proyecto de escritorio ya no solo estén: Swing, AWT, SWT... sino que Griffon sea tomado también en cuenta como una poderosísima alternativa pues puede ser una solución muy interesante cuando exista urgencia en el tiempo de desarrollo.

NOTA: (Tomada de un comentario en twitter de @aalmiray -lider del proyecto Griffon-) "Griffon soporta JavaFX también, así como 8 distintos lenguajes de la JVM, no solo Groovy"

Como ferviente admirador del proyecto Grails, afirmo sin temor a equivocarme, que si la misma gente que creó Groovy está tras el proyecto Griffon, hay toda certeza que será una maravilla absoluta, motivo por el cual me fue imposible el no escribir sobre Griffon hoy.

De igual manera como en Grails, cada día aparecen más plugins que amplían el rango de acción de Griffon: Para interaccion con bases de datos, programación 3D, Networking, Testing, Charts, Gráficos, Look & Feel, etc.

La verdad, Griffon me ha parecido extremadamnte poderoso, así que este post sin duda no será el único que escriba acerca de él, planeo posteriores posts sobre Griffon pero desde una visión más práctica ;)

Literatura recomendada: Griffon in Action ;)

Incluyo una muy interesante charla acerca de Griffon dictada en México, por @aalmiray

9 comentarios:

Andres Almiray dijo...

Gracias por la mención Santiago. El equipo Griffon esta muy contento por la reciente liberación de Griffon 1.0.0, la cual confiamos será del agrado de los desarrolladores que deseen crear aplicaciones de escritorio en la JVM.

Saludos desde Basilea :D

Anónimo dijo...

yo conoci griffon a principios de año y me enamore de el. realmente es muy bueno. facilita el trabajo, tu codigo que mas limpio separando la logica usando el patron mvc.

Santiago Tapia dijo...

Andres, gracias por leer el post de Griffon, ha sido un microscópico aporte de difusión del proyecto pues en lo personal me parece aluscinante y defintivamente me voy a adentrar en Griffon ;) Saludos desde Ecuador (south america)

Santiago Tapia dijo...

"Anónimo", totalmente de acuerdo contigo, Griffon me parece extremadamente poderoso, una maravilla en definitva ;)

Unknown dijo...

Que tal santiago saludos soy car arlos saludos desde oaxaca, curiosamente cuando empezaba a usar grails me encontre con griffon, y me llamo mucho la atencion por que es un framework orientado para realizar aplicaciones de escritorio. Por otra parte sigue tambien los patrones de diseño MVC que usamos en grails. Interesante lo que esta realizando el equipo de griffon por la comunidad y los alcances que esta teniendo el lenguaje Groovy no solamente al desarrollo ágil web, sino tambien en aplicaciones Desktop. Me imagino Santiago como has de estar emocionado por estas tecnologias me da mucho gusto gracias por el correo. Saludos desde Oaxaca

Unknown dijo...

Escuché griffon alguna vez y con este blog me ha interesado, ya lo instalé y realicé mi primera aplicación :). Muy buen post Santiago, gracias por tus aportes :).

Santiago Tapia dijo...

Saludos Carlos, qué grato saber de ti y claro, no podía dejar de compartir la novedad de Griffon, que sin duda es un proyecto requete interesante y productivo. Saludos y estamos en contacto.

Andres Almiray dijo...

Les comparto con un par de ligas de videos sobre Groovy y Griffon

http://vimeo.com/32827954
http://vimeo.com/33671705

Saludos :-)

Santiago Tapia dijo...

Genial Andrés. Gracias el dato. ;)