SlideShare una empresa de Scribd logo
GrooScript
¿Logo?
http://grooscript.org
grooscript@gmail.com
Jorge Franco
@jfrancoleza
jorge.franco.leza@gmail.com
¿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?
Muchísimas gracias por
vuestro tiempo.

Más contenido relacionado

La actualidad más candente

Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con Docker
Ernesto Crespo
 
Grails en Expo FISI 2011
Grails en Expo FISI 2011Grails en Expo FISI 2011
Grails en Expo FISI 2011
jose diaz
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agiles
Jobsket
 
Taller Grails
Taller GrailsTaller Grails
Taller Grails
Dani Latorre
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Micael Gallego
 
Creación de Plataformas
Creación de PlataformasCreación de Plataformas
Creación de Plataformas
Jose Juan R. Zuñiga
 
Eleva tu capacidad con Groovy
Eleva tu capacidad con GroovyEleva tu capacidad con Groovy
Eleva tu capacidad con Groovy
Domingo Suarez Torres
 
Jobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket Spring 2GX Madrid
Jobsket Spring 2GX Madrid
Jobsket
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019
Micael Gallego
 
Curso node.js
Curso node.js Curso node.js
Curso node.js
Redradix
 
Cocoapods
CocoapodsCocoapods
Cocoapods
NSCoder Mexico
 
Node para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoNode para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigo
Micael Gallego
 
Java poliglota
Java poliglotaJava poliglota
Java poliglota
Domingo Suarez Torres
 
grails.org.mx Primera Reunion
grails.org.mx Primera Reuniongrails.org.mx Primera Reunion
grails.org.mx Primera Reunion
Domingo Suarez Torres
 
De 0 a 100 con Magento 2
De 0 a 100 con Magento 2De 0 a 100 con Magento 2
De 0 a 100 con Magento 2
Óscar Recio Soria
 
Magento 2 Code Generation Tools
Magento 2 Code Generation ToolsMagento 2 Code Generation Tools
Magento 2 Code Generation Tools
Óscar Recio Soria
 
Introducción a Go
Introducción a GoIntroducción a Go
15a. Reunion de SpringHispano.org y grails.org.mx
15a. Reunion de SpringHispano.org y grails.org.mx15a. Reunion de SpringHispano.org y grails.org.mx
15a. Reunion de SpringHispano.org y grails.org.mx
Jose Juan R. Zuñiga
 
Dia1
Dia1Dia1

La actualidad más candente (20)

Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con Docker
 
Grails en Expo FISI 2011
Grails en Expo FISI 2011Grails en Expo FISI 2011
Grails en Expo FISI 2011
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agiles
 
Taller Grails
Taller GrailsTaller Grails
Taller Grails
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
 
Creación de Plataformas
Creación de PlataformasCreación de Plataformas
Creación de Plataformas
 
Eleva tu capacidad con Groovy
Eleva tu capacidad con GroovyEleva tu capacidad con Groovy
Eleva tu capacidad con Groovy
 
Jobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket Spring 2GX Madrid
Jobsket Spring 2GX Madrid
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019
 
Curso node.js
Curso node.js Curso node.js
Curso node.js
 
Cocoapods
CocoapodsCocoapods
Cocoapods
 
Node para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoNode para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigo
 
Java poliglota
Java poliglotaJava poliglota
Java poliglota
 
Etiquetas en JSP
Etiquetas en JSPEtiquetas en JSP
Etiquetas en JSP
 
grails.org.mx Primera Reunion
grails.org.mx Primera Reuniongrails.org.mx Primera Reunion
grails.org.mx Primera Reunion
 
De 0 a 100 con Magento 2
De 0 a 100 con Magento 2De 0 a 100 con Magento 2
De 0 a 100 con Magento 2
 
Magento 2 Code Generation Tools
Magento 2 Code Generation ToolsMagento 2 Code Generation Tools
Magento 2 Code Generation Tools
 
Introducción a Go
Introducción a GoIntroducción a Go
Introducción a Go
 
15a. Reunion de SpringHispano.org y grails.org.mx
15a. Reunion de SpringHispano.org y grails.org.mx15a. Reunion de SpringHispano.org y grails.org.mx
15a. Reunion de SpringHispano.org y grails.org.mx
 
Dia1
Dia1Dia1
Dia1
 

Similar a Sobre GrooScript

202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy
Manuel de la Peña Peña
 
Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológico
Finizens
 
No quiero vuestra basura en Android
No quiero vuestra basura en AndroidNo quiero vuestra basura en Android
No quiero vuestra basura en Android
Antonio Nicolás Pina
 
Desarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_sourceDesarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_sourceMario IC
 
Codemotion Madrid 2023 - Testcontainers y Spring Boot
Codemotion Madrid 2023 - Testcontainers y Spring BootCodemotion Madrid 2023 - Testcontainers y Spring Boot
Codemotion Madrid 2023 - Testcontainers y Spring Boot
Iván López Martín
 
Webinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaWebinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador Java
Domingo Suarez Torres
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
Micael Gallego
 
Del free style al mvp
Del free style al mvpDel free style al mvp
Del free style al mvp
Juanjo Marti
 
proyecto.final.frontend.g2.pptx
proyecto.final.frontend.g2.pptxproyecto.final.frontend.g2.pptx
proyecto.final.frontend.g2.pptx
LuisGarcia499382
 
Introducción a CoffeeScript
Introducción a CoffeeScriptIntroducción a CoffeeScript
Introducción a CoffeeScript
Javier Ferrer González
 
Introduccion meteor.js
Introduccion meteor.jsIntroduccion meteor.js
Introduccion meteor.jsIcalia Labs
 
Introducción a WebGL
Introducción a WebGLIntroducción a WebGL
Introducción a WebGL
Ángel Brasero Moreno
 
VMware - Testcontainers y Spring Boot
VMware - Testcontainers y Spring BootVMware - Testcontainers y Spring Boot
VMware - Testcontainers y Spring Boot
Iván López Martín
 
Cloud para tu juego en una tarde
Cloud para tu juego en una tardeCloud para tu juego en una tarde
Cloud para tu juego en una tarde
Ignacio Segura
 
Frontend Developer
Frontend DeveloperFrontend Developer
Frontend Developer
★ Ander Conal Fuertes
 
JQuery + React js
JQuery + React js JQuery + React js
JQuery + React js
Alexys Hegmann
 
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
Iván López Martín
 
Swift sin hype y su importancia en el 2017
 Swift sin hype y su importancia en el 2017  Swift sin hype y su importancia en el 2017
Swift sin hype y su importancia en el 2017
Software Guru
 
Grails y EC2 - De cero a multinacional
Grails y EC2 - De cero a multinacionalGrails y EC2 - De cero a multinacional
Grails y EC2 - De cero a multinacional
Gailen Tecnologías
 

Similar a Sobre GrooScript (20)

202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy
 
Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológico
 
No quiero vuestra basura en Android
No quiero vuestra basura en AndroidNo quiero vuestra basura en Android
No quiero vuestra basura en Android
 
Desarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_sourceDesarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_source
 
Codemotion Madrid 2023 - Testcontainers y Spring Boot
Codemotion Madrid 2023 - Testcontainers y Spring BootCodemotion Madrid 2023 - Testcontainers y Spring Boot
Codemotion Madrid 2023 - Testcontainers y Spring Boot
 
Webinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaWebinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador Java
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
Del free style al mvp
Del free style al mvpDel free style al mvp
Del free style al mvp
 
proyecto.final.frontend.g2.pptx
proyecto.final.frontend.g2.pptxproyecto.final.frontend.g2.pptx
proyecto.final.frontend.g2.pptx
 
Introducción a CoffeeScript
Introducción a CoffeeScriptIntroducción a CoffeeScript
Introducción a CoffeeScript
 
Grails en SG08
Grails en SG08Grails en SG08
Grails en SG08
 
Introduccion meteor.js
Introduccion meteor.jsIntroduccion meteor.js
Introduccion meteor.js
 
Introducción a WebGL
Introducción a WebGLIntroducción a WebGL
Introducción a WebGL
 
VMware - Testcontainers y Spring Boot
VMware - Testcontainers y Spring BootVMware - Testcontainers y Spring Boot
VMware - Testcontainers y Spring Boot
 
Cloud para tu juego en una tarde
Cloud para tu juego en una tardeCloud para tu juego en una tarde
Cloud para tu juego en una tarde
 
Frontend Developer
Frontend DeveloperFrontend Developer
Frontend Developer
 
JQuery + React js
JQuery + React js JQuery + React js
JQuery + React js
 
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
 
Swift sin hype y su importancia en el 2017
 Swift sin hype y su importancia en el 2017  Swift sin hype y su importancia en el 2017
Swift sin hype y su importancia en el 2017
 
Grails y EC2 - De cero a multinacional
Grails y EC2 - De cero a multinacionalGrails y EC2 - De cero a multinacional
Grails y EC2 - De cero a multinacional
 

Más de Jorge Franco Leza

¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?
Jorge Franco Leza
 
Grooscript and Grails 3
Grooscript and Grails 3Grooscript and Grails 3
Grooscript and Grails 3
Jorge Franco Leza
 
Grooscript in Action SpringOne2gx 2015
Grooscript in Action SpringOne2gx 2015Grooscript in Action SpringOne2gx 2015
Grooscript in Action SpringOne2gx 2015
Jorge Franco Leza
 
Grooscript gr8conf 2015
Grooscript gr8conf 2015Grooscript gr8conf 2015
Grooscript gr8conf 2015
Jorge Franco Leza
 
Grooscript greach 2015
Grooscript greach 2015Grooscript greach 2015
Grooscript greach 2015
Jorge Franco Leza
 
Grooscript greach
Grooscript greachGrooscript greach
Grooscript greach
Jorge Franco Leza
 

Más de Jorge Franco Leza (6)

¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?
 
Grooscript and Grails 3
Grooscript and Grails 3Grooscript and Grails 3
Grooscript and Grails 3
 
Grooscript in Action SpringOne2gx 2015
Grooscript in Action SpringOne2gx 2015Grooscript in Action SpringOne2gx 2015
Grooscript in Action SpringOne2gx 2015
 
Grooscript gr8conf 2015
Grooscript gr8conf 2015Grooscript gr8conf 2015
Grooscript gr8conf 2015
 
Grooscript greach 2015
Grooscript greach 2015Grooscript greach 2015
Grooscript greach 2015
 
Grooscript greach
Grooscript greachGrooscript greach
Grooscript greach
 

Último

Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
JuanAlvarez413513
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
SofiaCollazos
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
aljitagallego
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 

Último (20)

Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 

Sobre GrooScript

  • 2. ¿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.
  • 3. Esto no es una presentación. Es una “compartición”. Espero vuestras ideas, comentarios, sugerencias, críticas, quejas, …
  • 4. Agenda ● Introducción ● ¿Cómo surge el proyecto? ● Como arranca ● Detalles técnicos ● Ejemplos realizados ● En desarrollo ● Ideas ● Futuro
  • 5. ¿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
  • 6. ¿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
  • 7. 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 :)
  • 8. 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.
  • 9. ● 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 (?)
  • 10.
  • 11. 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
  • 12.
  • 13. Ejemplos realizados ● Robots - Dsl ● Películas – MVP Test JQuery ● Meteor – Vertx GORM en cliente ● ¿Algo en mente? Node.js Tests con spock – Experimento PhantomJs
  • 14. 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?
  • 15. 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.
  • 16. 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?