SlideShare uma empresa Scribd logo
1 de 17
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.

Mais conteúdo relacionado

Mais procurados

Mais procurados (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
 

Semelhante a Sobre GrooScript

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ógicoFinizens
 
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 BootIvá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 JavaDomingo Suarez Torres
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Micael Gallego
 
Del free style al mvp
Del free style al mvpDel free style al mvp
Del free style al mvpJuanjo Marti
 
proyecto.final.frontend.g2.pptx
proyecto.final.frontend.g2.pptxproyecto.final.frontend.g2.pptx
proyecto.final.frontend.g2.pptxLuisGarcia499382
 
Introduccion meteor.js
Introduccion meteor.jsIntroduccion meteor.js
Introduccion meteor.jsIcalia Labs
 
VMware - Testcontainers y Spring Boot
VMware - Testcontainers y Spring BootVMware - Testcontainers y Spring Boot
VMware - Testcontainers y Spring BootIvá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 tardeIgnacio Segura
 
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 multinacionalGailen Tecnologías
 

Semelhante 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
 

Mais de Jorge Franco Leza

Mais 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

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 

Último (11)

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 

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?