¿Quien soy yo?
● Madrileño de nacimiento y sevillano de
adopción, ex deportista.
● Desarrollador, es lo que me gusta.
● Empecé con Delphi antes del 2000.
● Desarrollador grooscript y plugin.
● Actualmente trabajo en Osoco.
● Inglish master.
Esto no es una presentación.
Es una “compartición”.
Espero vuestras ideas, comentarios,
sugerencias, críticas, quejas, …
Agenda
● Introducción
● ¿Cómo surge el proyecto?
● Como arranca
● Detalles técnicos
● Ejemplos realizados
● En desarrollo
● Ideas
● Futuro
¿Qué es GrooScript?
● Pequeño framework para convertir código
Groovy a JavaScript
● Necesita un fichero .js para ejecutar el código
convertido.
● Apache 2.0
● Integración con Grails a través de plugin
● Versión actual 0.2.4
● Web / Limitaciones
¿Cómo surge el proyecto?
● Ganas de usar Groovy desde Spring IO 2011
● Hacer algo opensource, recomendado.
● Idea: framework para construir aplicaciones de
escritorio y web a la vez. MVP.
● Idea necesitaba javascript, pero quería utilizar
lógica con Groovy.
● Guillaume Laforge
Como arranca
● Verano con mucho tiempo libre
● Como cojones hago tests
● Todo es empezar
● Github, Idea, Gradle, Kanbanflow
● Mucho Google
● Darle a las teclas
● Recomendado :)
Detalles técnicos
● Groovy 2.0.8 Javascript ECMAScript 5
● Se obtiene el árbol AST del código Groovy
● Semantic Analysis fase
● Anotaciones en esa fase se incluyen
● Se va procesando el árbol y se va generando
código javascript
● Incluir metaprogramación genera código .js
horrible, los accesos son capturados.
● La clase que hace toda la transformación es
enorme (Mixins?)
● Pruebo el código javascript con Node
● Los tests de spock prueban que el código
Groovy, en ficheros, hace lo mismo que el
código que se convierte, con asserts.
● Funciones / variables globales en el código
javascript (?)
● Relación nombres de funciones para futuros
cambios / compresión (?)
Grails Plugin
● Basado en archivos, utlizando demonio
realizado con Gpars
● Vert.x para envío de eventos / Java 7
● Recarga de páginas
● Ideas taglib, convertir directamente código,
realizar plantillas / templates activas en cliente,
eventos desde / hacia el servidor (?)
● Ideas / demo
Ejemplos realizados
● Robots - Dsl
● Películas – MVP Test JQuery
● Meteor – Vertx GORM en cliente
● ¿Algo en mente? Node.js
Tests con spock – Experimento PhantomJs
En desarrollo
● Hacia la versión 0.3
● Pruebas y estabilización
● ¿Alguna necesidad?
● Plugin de Grails, documentación, nuevos tags
● Lento avance, ¿a alguien le apetece hacer
algo?
Ideas
● Integración librerías javascript. Jquery?,
canvas?, local storage?, ...
● Grails como servidor de datos, páginas
estáticas. Eventos al cliente desde grails?
● Grails es pesado, ¿usar frameworks más
ligeros? Java o Js
● Gorm en el cliente.
● Compile static, incluso dsl's.
● Ideas? Ponedlas en práctica.
Futuro
● Actualmente un solo desarrollador, con poco
tiempo. Pocas colaboraciones.
● El tiempo y el uso decidirán. En lo que va de
año, 1440 visitantes únicos, 5100 páginas, más
de la mitad yanquis. Más de 400 motiClicks.
● Mejor integración con Grails.
● Cosas similares / opiniones? Mejor usar
javascript?