SlideShare ist ein Scribd-Unternehmen logo
1 von 15
www.empoweragile.com
Sobre Mi
Nombre: Danijel Arsenovski
Experiencia: programador, desarrollador, arquitecto de
software, autor, consultor y «coach» ágil etc. Últimamente arqueología
Maya.
Blog:
http://blog.refactoringin.net
Sitio:
www.empoweragile.com
Correo electrónico:
danijel.arsenovski@empoweragile.com
LinkedIn:
http://cl.linkedin.com/in/danijelarsenovski
Facebook:
Danijel Arsenovski
Twitter:
@darsenovski
                         www.empoweragile.com
www.empoweragile.com
www.empoweragile.com
La ley de Moore
“El numero de transistores en un circuito
integrado se duplica cada 2 años (aprox.)”
Basado en la miniaturización
N° de transistores ≈ GHz o Gb
Conspiración: Ley Compensatoria de Moore
¿Otra burbuja más?


               www.empoweragile.com
…se esta acabando
Se estancara la industria de software, video
juegos, hardware etc.
Crisis en India, China
¿Guerra, cataclismo?




                www.empoweragile.com
Multinúcleo
¡Es posible mantener la tendencia!
En lugar de hacer las cosas mas
rápido, hagamos mas de una cosa a la
vez
Paralelismo a nivel de hilos
Para poder aprovechar esta capacidad
del procesador, hay que programar
pensado en el paralelismo


                 www.empoweragile.com
Programación paralela vs.
        Programación multi-hilo
Parecido, !=
Multi-hilo
  Asincronismo
  Capacidad de responder (hilo GUI y hilo en fondo)
  Aplicaciones en el servidor
Programación paralela
  cualquier tarea en paralelo
  ej. ordenar una lista.
Programación multi-hilo es compleja (“locks” ->
“deadlocks”)
Se necesitan: abstracciones nuevas y mas sencillas
                    www.empoweragile.com
Groovy y Grails
Groovy
  Lenguaje dinámico (≈ Python, Ruby etc.)
  Expresivo
  Corre sobre JVM y bastante compatible con Java
Grails
  Aplicaciones web Groovy sobre Hibernate y Spring
  “Convención por sobre configuración”
  Scaffolding (“andamiaje”) y inspirado por RoR
  Respaldados por Spring Source
                 www.empoweragile.com
Criticas
Rendimiento




              www.empoweragile.com
…Y en realidad
Micro-benchmarks:
“Java theory and practice: Anatomy of a
flawed microbenchmark”
  JVM –Server
  Compilación dinámica
  Optimizaciones de compilador
Aplicaciones I/O vs aplicaciones de computo
Groovy++
Java            www.empoweragile.com
GPars
Es la librería de programación concurrente en
Groovy (parte de la distribución)
Groovy permite escribir un código concurrente mas
expresivo que Java
GPars soporta múltiples modelos de programación
concurrente:
  Procesamiento de colecciones concurrente
  Actores
  Dataflow
  Fork/Joine
  Etc.             www.empoweragile.com
import groovyx.gpars.ParallelEnhancer
//lista con inferencia de tipos
def animals = ['dog', 'ant', 'cat', 'whale']
//en Java- ¿como?
ParallelEnhancer.enhanceInstance animals
animals.eachParallel{
       //it es variable implícita
       println(it)
}                    www.empoweragile.com
Comunidad Chile Ágil
http://www.chileagil.cl/
   ¡Día Ágil 2011!
   Blog
   Tutoriales: Desafío Kanban
http://groups.google.com/group/chileagil
   Foro
http://failfast.chileagil.cl/
   Preguntas y respuestas parecidas a Stackoverflow.com
@chileagil
   Twitter

                        www.empoweragile.com
Extreme Programming y Software Craftmanship
Desarrollo dirigido por pruebas (Test Driven Development)
Refactoring
Integración Continua
Diseño ágil y fundamentos de orientación a objetos
Diseño Dirigido por el Dominio (DDD) del problema a resolver

http://www.leansight.com/clinica-agil/


                     www.empoweragile.com

Weitere ähnliche Inhalte

Ähnlich wie El mundo se acaba en el 2012

Grails en Expo FISI 2011
Grails en Expo FISI 2011Grails en Expo FISI 2011
Grails en Expo FISI 2011jose diaz
 
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Jose Juan R. Zuñiga
 
Presentación estetoscopio
Presentación estetoscopioPresentación estetoscopio
Presentación estetoscopioJuan Rodríguez
 
Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013Carlos Camacho
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.jsINSIGNIA4U
 
Automated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTCAutomated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTCIrontec
 
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...VOIP2DAY
 
Java basico 2
Java basico 2Java basico 2
Java basico 2jtk1
 
Java basico 2
Java basico 2Java basico 2
Java basico 2jtk1
 
CommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
CommitConf 2019 - Micronaut y GraalVm: La combinación perfectaCommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
CommitConf 2019 - Micronaut y GraalVm: La combinación perfectaIván López Martín
 
Manual.curso.de.java.desde.cero
Manual.curso.de.java.desde.ceroManual.curso.de.java.desde.cero
Manual.curso.de.java.desde.ceroLalo Pérez
 

Ähnlich wie El mundo se acaba en el 2012 (20)

Grails barcamp 2013
Grails barcamp 2013Grails barcamp 2013
Grails barcamp 2013
 
Grails en Expo FISI 2011
Grails en Expo FISI 2011Grails en Expo FISI 2011
Grails en Expo FISI 2011
 
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
 
Manual de Java.pdf
Manual de  Java.pdfManual de  Java.pdf
Manual de Java.pdf
 
Manual de Java.pdf
Manual de  Java.pdfManual de  Java.pdf
Manual de Java.pdf
 
Presentación estetoscopio
Presentación estetoscopioPresentación estetoscopio
Presentación estetoscopio
 
Eleva tu capacidad con Groovy
Eleva tu capacidad con GroovyEleva tu capacidad con Groovy
Eleva tu capacidad con Groovy
 
Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013
 
Introducción a groovy
Introducción a groovyIntroducción a groovy
Introducción a groovy
 
Tutorial Java
Tutorial JavaTutorial Java
Tutorial Java
 
Presentacion barcamp
Presentacion barcampPresentacion barcamp
Presentacion barcamp
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.js
 
inicios en java
inicios en java inicios en java
inicios en java
 
Automated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTCAutomated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTC
 
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
 
Java basico 2
Java basico 2Java basico 2
Java basico 2
 
Java basico 2
Java basico 2Java basico 2
Java basico 2
 
CommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
CommitConf 2019 - Micronaut y GraalVm: La combinación perfectaCommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
CommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
 
Gwt I - entendiendo gwt
Gwt I - entendiendo gwtGwt I - entendiendo gwt
Gwt I - entendiendo gwt
 
Manual.curso.de.java.desde.cero
Manual.curso.de.java.desde.ceroManual.curso.de.java.desde.cero
Manual.curso.de.java.desde.cero
 

Kürzlich hochgeladen

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
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
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
 
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
 
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
 
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
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
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
 
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
 
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
 

Kürzlich hochgeladen (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
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
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
 
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
 
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
 
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...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
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
 
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.
 
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
 

El mundo se acaba en el 2012

  • 2. Sobre Mi Nombre: Danijel Arsenovski Experiencia: programador, desarrollador, arquitecto de software, autor, consultor y «coach» ágil etc. Últimamente arqueología Maya. Blog: http://blog.refactoringin.net Sitio: www.empoweragile.com Correo electrónico: danijel.arsenovski@empoweragile.com LinkedIn: http://cl.linkedin.com/in/danijelarsenovski Facebook: Danijel Arsenovski Twitter: @darsenovski www.empoweragile.com
  • 5. La ley de Moore “El numero de transistores en un circuito integrado se duplica cada 2 años (aprox.)” Basado en la miniaturización N° de transistores ≈ GHz o Gb Conspiración: Ley Compensatoria de Moore ¿Otra burbuja más? www.empoweragile.com
  • 6. …se esta acabando Se estancara la industria de software, video juegos, hardware etc. Crisis en India, China ¿Guerra, cataclismo? www.empoweragile.com
  • 7. Multinúcleo ¡Es posible mantener la tendencia! En lugar de hacer las cosas mas rápido, hagamos mas de una cosa a la vez Paralelismo a nivel de hilos Para poder aprovechar esta capacidad del procesador, hay que programar pensado en el paralelismo www.empoweragile.com
  • 8. Programación paralela vs. Programación multi-hilo Parecido, != Multi-hilo Asincronismo Capacidad de responder (hilo GUI y hilo en fondo) Aplicaciones en el servidor Programación paralela cualquier tarea en paralelo ej. ordenar una lista. Programación multi-hilo es compleja (“locks” -> “deadlocks”) Se necesitan: abstracciones nuevas y mas sencillas www.empoweragile.com
  • 9. Groovy y Grails Groovy Lenguaje dinámico (≈ Python, Ruby etc.) Expresivo Corre sobre JVM y bastante compatible con Java Grails Aplicaciones web Groovy sobre Hibernate y Spring “Convención por sobre configuración” Scaffolding (“andamiaje”) y inspirado por RoR Respaldados por Spring Source www.empoweragile.com
  • 10. Criticas Rendimiento www.empoweragile.com
  • 11. …Y en realidad Micro-benchmarks: “Java theory and practice: Anatomy of a flawed microbenchmark” JVM –Server Compilación dinámica Optimizaciones de compilador Aplicaciones I/O vs aplicaciones de computo Groovy++ Java www.empoweragile.com
  • 12. GPars Es la librería de programación concurrente en Groovy (parte de la distribución) Groovy permite escribir un código concurrente mas expresivo que Java GPars soporta múltiples modelos de programación concurrente: Procesamiento de colecciones concurrente Actores Dataflow Fork/Joine Etc. www.empoweragile.com
  • 13. import groovyx.gpars.ParallelEnhancer //lista con inferencia de tipos def animals = ['dog', 'ant', 'cat', 'whale'] //en Java- ¿como? ParallelEnhancer.enhanceInstance animals animals.eachParallel{ //it es variable implícita println(it) } www.empoweragile.com
  • 14. Comunidad Chile Ágil http://www.chileagil.cl/ ¡Día Ágil 2011! Blog Tutoriales: Desafío Kanban http://groups.google.com/group/chileagil Foro http://failfast.chileagil.cl/ Preguntas y respuestas parecidas a Stackoverflow.com @chileagil Twitter www.empoweragile.com
  • 15. Extreme Programming y Software Craftmanship Desarrollo dirigido por pruebas (Test Driven Development) Refactoring Integración Continua Diseño ágil y fundamentos de orientación a objetos Diseño Dirigido por el Dominio (DDD) del problema a resolver http://www.leansight.com/clinica-agil/ www.empoweragile.com