Viendo el título no me extraña que digan que a los informáticos no se nos entiende cuando hablamos
Uno de los problemas ante los que nos encontramos al desarrollar aplicaciones con el lenguaje de programación Groovy o con su framework web Grails es la elección del entorno de desarrollo que vamos a utilizar. Los que programamos con Java estamos quizá bastante “mal acostumbrados” a tener entornos que nos facilitan mucho las cosas, ya que en ellos las tareas como el autocompletado, la refactorización, la generación de código, la navegación entre clases, etc. están muy al alcance de la mano.
Sin embargo todas estas facilidades son relativamente nuevas. Hace algunos años, cuando tenias que escribir código Java tenias que usar un editor de texto normal, tipo bloc de notas. Más adelante salieron los entornos que te marcaban con distintos colores las palabras clave, lo cual ya era un avance importante porque te facilitaba el entendimiento de código más fácilmente, y últimamente tenemos entornos para Java que hacen un montón de cosas por nosotros y que nos sirven de ayuda en muchas otras.
De este modo, podríamos clasificar los entornos en 3 generaciones:
- Generación 0: es un entorno que no nos ayuda en nada (un editor de texto).
- Generación 1: es un entorno que nos remarca la sintaxis.
- Generación 2: es un entorno que, además de remarcarnos la sintaxis, nos permite generar código, refactorizar, autocompletar, etc.
Pero claro, ¿qué ocurre cuando un desarrollador Java, “mal acostumbrado” a sus entornos de generación 2, quiere utilizar otros lenguajes como Groovy?. Bueno, pues ocurren dos cosas:
- Que tiene que renunciar a las facilidades que el entorno le ofrecía a la hora de programar. Los lenguajes son diferentes, y aunque el entorno sabe refactorizar, autocompletar o navegar en Java no sabe refactorizar, autocompletar o navegar en Groovy.
- Que tiende a usar los mismos entornos que usaba para programar en Java. Si antes usaba Eclipse para programar en Java usará Eclipse con el plugin para Groovy. Si usaba Netbeans, seguirá con Netbeans, etc. Estos entornos, al menos, reconocen la sintaxis de Groovy y la remarcan.
Lo entornos Java están haciendo progresos para poder dar soporte completo para Groovy, pero este todavía no ha llegado, y es en este punto donde yo me planteo lo siguiente. Si utilizando un entorno de generación 2 no puedo ir más lejos que con un entorno de generación 1, ¿por qué seguir utilizando un entorno de generación 2 para Java en mis desarrollos de Groovy?
Los entornos para Java son lentos y “caros”, ya que consumen mucha CPU y mucha RAM. Si programamos en Java con ellos está claro que obtendremos ventajas, pero si no, ¿para qué seguir usándolos?, ¿por qué no buscar una alternativa de generación 1, algo que también se limite a remarcar la sintaxis y que no consuma muchos recursos de nuestro ordenador?
Llegados a este punto descubrí TextMate.
TextMate es un editor de textos “vitaminado” que permite hacer muchas mas cosas que simplemente editar texto plano, y que entre sus características tiene la de remarcar código fuente escrito en diversos lenguajes: php, c, perl, ruby, html, css, javascript, latex, sql … pero no Groovy.
Esto lo podemos solucionar fácilmente añadiendo el soporte para Groovy en TextMate con las indicaciones de este blog:
Getting Groovy with TextMate
Básicamente lo que debemos hacer es:
1- Descargar este fichero y descomprimirlo
2- Copiar los dos ficheros que hay dentro (Groovy.tmbundle y Grails.tmbundle) en vuestro directorio principal, dentro de ‘Librería/Application Support/TextMate/Bundles’
Tras reiniciar TextMate veremos que tenemos dentro del menú ‘Bundles’ un apartado para Groovy y otro para Grails, y aparte nos reconocerá la sintaxis de los ficheros escritos con Groovy.
Y no sólo eso. Si habeis programado alguna vez con Grails sabreis que al crear un proyecto se crea una estructura de directorios y se generan una serie de ficheros. Pues bien, dentro de esos ficheros vereis uno con extensión ‘.tmproj’, que significa ‘textmate project’. Si hacemos doble click sobre él veremos que TextMate nos abre nuestro proyecto Grails en un panel a la izquierda.
¿Esto significa que debemos dejar nuestros entornos Java, los cuales llevamos usando años, para desarrollar nuestras aplicaciones hechas en Groovy con TextMate?. No, en absoluto. Si te sientes cómodo con tu entorno Java y quieres seguir usándolo a pesar del consumo de memoria y de CPU adelante, pero si quieres probar algo nuevo y rápido mientras los entornos Java ofrecen mayores facilidades para Groovy, aquí tienes una alternativa.
2 respuestas a Groovy/Grails con TextMate en OSX
Javi
31 de Octubre de 2009 a las 23:22
Me ha gustado bastante la entrada… y eso que no soy programador.
Lo que me ha gustado es la línea de pensamiento. De hecho una de las labores de la divulgación consiste en estimular este tipo de “sentido común práctico” (que no materialista), este pensamiento ordenado, que es una de las “marcas de estilo” de la ciencia cuando se hace honestamente.
Un abrazo y a seguir tan fino.
Raúl Expósito
1 de Noviembre de 2009 a las 3:14
Muchas gracias Javi,
Por suerte o por desgracia vivo rodeado de tecnologías con las que poder crear software, y viendo la innecesaria complejidad ante la que me encuentro a menudo suelo acordarme de lo que decían en Asterix:
- “Están locos estos romanos”
Hacer una aplicación o un software que haga tal o cual cosa, y además hacerlo bien, es a menudo más fácil de lo que mucha gente cree si se usan las herramientas adecuadas. Lo que pasa es que, centrándonos únicamente en la parte técnica, muchas veces se añade una complejidad, una sobreingeniería y un uso de recursos que al final juegan en el equipo contrario en vez de en el nuestro. Tú lo explicas muy bien aunque aplicado a otro campo en tu primer libro y, si no te importa, te cito:
“¿Cuántas veces hemos oído una explicación de un científico y nos hemos quedado “enredados” en siglas, números, formulas…? Es curioso que creamos mas inteligentes a los que menos se les entiende”
Creo que hay que romper con toda la complejidad innecesaria, plantearnos por qué hacemos lo que hacemos, cómo podríamos hacerlo de un modo más sencillo y, finalmente, simplificar. Además no es algo difícil, simplemente hay que utilizar ese sentido común práctico que mencionas y, como en ciencia, no tenerle miedo al cambio. Lo que podemos razonadamente dar hoy como válido quizá mañana no lo sea y pasado vuelva a cambiar.
Un abrazo