SlideShare una empresa de Scribd logo
1 de 97
Descargar para leer sin conexión
20 Lenguajes 
40 Minutos 
Alonso Torres @alotor
Alonso Torres 
@alotor @alotor 
mobro.co/alotor
Programar 
es 
ARTE
Programar 
es 
ARTE ¿ ?
CREATIVA
No pintas con un 
solo COLOR
JAVA C#
JAVA C# 
ORIENTADO 
OBJETOS
Orientado a Objetos 
Todo es un objeto 
El programa se construye a base de la 
interacción entre los objetos 
Favorece comprender la estructura
JAVA C# 
ORIENTADO 
OBJETOS 
TIPOS 
ESTÁTICOS
Tipos estáticos 
El compilador comprueba los tipos 
Información previa a la ejecución
JAVA C# 
ORIENTADO 
OBJETOS 
TIPOS 
ESTÁTICOS 
MÁQUINA 
VIRTUAL
Máquina virtual 
Compilación a un lenguaje intermedio 
Gestión de memoria automática 
Abstrae de los detalles de la plataforma
JAVA C# 
ORIENTADO 
OBJETOS 
TIPOS 
ESTÁTICOS 
MÁQUINA 
VIRTUAL SIGLO XX
Lenguajes del Siglo XX 
Java fue creado en 1995 
C# en el año 2000
JAVA C# 
ORIENTADO 
OBJETOS 
TIPOS 
ESTÁTICOS 
MÁQUINA 
VIRTUAL SIGLO XX
¿Por qué están 
tan extendidos?
Lenguajes 
FIABLES
● Estructura 
● Tipos 
● Documentación 
● Comunidad 
● Frameworks estables
¿Quieres 
salir 
de tu 
zona de 
confort?
Pintemos con 
otros COLORES
JAVA C# 
ORIENTADO 
OBJETOS 
TIPOS 
ESTÁTICOS 
MÁQUINA 
VIRTUAL SIGLO XX
ORIENTADO 
OBJETOS 
PROGRAMACIÓN 
FUNCIONAL 
JAVA C# 
TIPOS 
ESTÁTICOS 
MÁQUINA 
VIRTUAL SIGLO XX
Objetos 
Interacción entre objetos 
Funcional 
Interacción entre funciones 
Modificamos objetos Intercambiar datos nuevos 
Datos dentro objetos Guardamos datos o 
funciones
¿Funcional? 
¿Objetos? 
¿Qué elegir?
Ambos 
es una opción
Scala Transición
Los tipos tienen 
mucha importancia
Scala Transición 
F# Tipos
Pureza funcional, 
Inmutabilidad
Scala Transición 
F# Tipos 
Haskell Pureza
Lenguajes orientados a 
concurrencia
Scala Transición 
F# 
Haskell Pureza 
Erlang 
Tipos 
Concurrencia
Aunque también 
podemos ser flexibles
Scala Transición 
F# 
Haskell Pureza 
Erlang 
Tipos 
Concurrencia 
Clojure Flexibilidad
JAVA C# 
TIPOS 
ESTÁTICOS 
MÁQUINA 
VIRTUAL SIGLO XX
JAVA C# 
TIPOS 
ESTÁTICOS 
TIPOS 
DINÁMICOS 
MÁQUINA 
VIRTUAL SIGLO XX
Estático 
Tipos en compilación 
Dinámico 
Tipos en ejecución 
Seguridad Flexibilidad 
Código intermedio Interpretado
¿Cómo empezar a dar el 
salto dinámico?
Soporte los dos estilos
Groovy Transición
¿Cuál es mejor para 
aprender?
Groovy Transición 
Python Filosofía
Explícito > implícito
¿Y si prefiero 
implícito?
Groovy Transición 
Python Filosofía 
Ruby Flexibilidad
Nos permiten una alta 
velocidad de desarrollo
Groovy Transición 
Python Filosofía 
Ruby Flexibilidad 
PHP Velocidad
Se integran bien con 
otros sistemas
Groovy Transición 
Python Filosofía 
Ruby Flexibilidad 
PHP Velocidad 
Javascript Integración
JAVA C# 
MÁQUINA 
VIRTUAL SIGLO XX
JAVA C# 
MÁQUINA SIGLO XX 
VIRTUAL 
SISTEMA
Lenguajes de sistema 
- No ponen barreras entre el programador y 
el sistema operativo 
- Manejo de memoria a “bajo nivel” 
- Gran potencia
Un gran poder conlleva 
una gran 
responsabilidad
C Potencia
Añadiendo estructura
C 
C++ 
Potencia 
Estructura
Concurrencia
C 
C++ 
Go 
Potencia 
Estructura 
Concurrencia
Gestión de 
memoria por tipos
C Potencia 
C++ 
Go Concurrencia 
Rust 
Estructura 
Tipos de memoria
JAVA C# 
SIGLO XX
JAVA C# 
SIGLO XX 
SIGLO XXI
La juventud 
llega pisando fuerte
Modularidad 
integrada 
en el lenguaje
Ceylon Módulos
Lenguajes funcionales 
e interactivos
Ceylon 
Elm 
Módulos 
Interacción
Cálculo 
científico y macros
Ceylon Módulos 
Elm Interacción 
Julia Macros
JAVA C#
19 / 20
Lenguaje 
aprenderás 
mañana
Ok, un último
PIET
Gracias!
www.github.com/Alotor/20-languages-demos 
http://goo.gl/aJXm5F 
@alotor @alotor 
mobro.co/alotor

Más contenido relacionado

Destacado

Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVA
Helmilpa
 
Lenguaje de programación JAVA
Lenguaje de programación JAVALenguaje de programación JAVA
Lenguaje de programación JAVA
josehpxxx
 

Destacado (9)

Understanding GORM (Greach 2014)
Understanding GORM (Greach 2014)Understanding GORM (Greach 2014)
Understanding GORM (Greach 2014)
 
(Greach 2015) Dsl'ing your Groovy
(Greach 2015) Dsl'ing your Groovy(Greach 2015) Dsl'ing your Groovy
(Greach 2015) Dsl'ing your Groovy
 
[Greach 2016] Down The RabbitMQ Hole
[Greach 2016] Down The RabbitMQ Hole[Greach 2016] Down The RabbitMQ Hole
[Greach 2016] Down The RabbitMQ Hole
 
(Codemotion 2014) JVM GC: WTF?!
(Codemotion 2014) JVM GC: WTF?!(Codemotion 2014) JVM GC: WTF?!
(Codemotion 2014) JVM GC: WTF?!
 
(Greach 2015) Decathlon Sport Meeting
(Greach 2015) Decathlon Sport Meeting(Greach 2015) Decathlon Sport Meeting
(Greach 2015) Decathlon Sport Meeting
 
[Jbcn 2016] Garbage Collectors WTF!?
[Jbcn 2016] Garbage Collectors WTF!?[Jbcn 2016] Garbage Collectors WTF!?
[Jbcn 2016] Garbage Collectors WTF!?
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVA
 
Lenguaje de programación JAVA
Lenguaje de programación JAVALenguaje de programación JAVA
Lenguaje de programación JAVA
 
[Greach 17] make concurrency groovy again
[Greach 17] make concurrency groovy again[Greach 17] make concurrency groovy again
[Greach 17] make concurrency groovy again
 

Similar a (Codemotion 2014) 20 lenguajes en 40 minutos

My programming language 04 05-2014
My programming language 04 05-2014My programming language 04 05-2014
My programming language 04 05-2014
Neptuno Networks
 
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Antonio Ognio
 
Universidad nacional de chimborazo
Universidad nacional de chimborazoUniversidad nacional de chimborazo
Universidad nacional de chimborazo
Jesica Pérez
 
Tarea #4 mi lenguaje de programación de preferencia
Tarea #4  mi lenguaje de programación de preferenciaTarea #4  mi lenguaje de programación de preferencia
Tarea #4 mi lenguaje de programación de preferencia
tonycyber
 
Lenguajes de programación para la web
Lenguajes de programación para la webLenguajes de programación para la web
Lenguajes de programación para la web
Oscar Luis Cdrc
 
Tecnologia microsoft .net
Tecnologia microsoft .netTecnologia microsoft .net
Tecnologia microsoft .net
lilymejia1979
 
Tecnologia Microsoft
Tecnologia  MicrosoftTecnologia  Microsoft
Tecnologia Microsoft
brobelo
 
Tecnologia microsoft .net
Tecnologia microsoft .netTecnologia microsoft .net
Tecnologia microsoft .net
lilymejia1979
 

Similar a (Codemotion 2014) 20 lenguajes en 40 minutos (20)

Unidad 3 java
Unidad 3 javaUnidad 3 java
Unidad 3 java
 
My programming language 04 05-2014
My programming language 04 05-2014My programming language 04 05-2014
My programming language 04 05-2014
 
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
 
PROGRAMA INFORMATICO
PROGRAMA INFORMATICO PROGRAMA INFORMATICO
PROGRAMA INFORMATICO
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
Universidad nacional de chimborazo
Universidad nacional de chimborazoUniversidad nacional de chimborazo
Universidad nacional de chimborazo
 
Laboratorio de programación II
Laboratorio de programación IILaboratorio de programación II
Laboratorio de programación II
 
Tarea #4 mi lenguaje de programación de preferencia
Tarea #4  mi lenguaje de programación de preferenciaTarea #4  mi lenguaje de programación de preferencia
Tarea #4 mi lenguaje de programación de preferencia
 
Los Lenguajes de Programación.pptx
Los Lenguajes de Programación.pptxLos Lenguajes de Programación.pptx
Los Lenguajes de Programación.pptx
 
Lenguajes de programación para la web
Lenguajes de programación para la webLenguajes de programación para la web
Lenguajes de programación para la web
 
Desarrollo de aplicaciones
Desarrollo de aplicacionesDesarrollo de aplicaciones
Desarrollo de aplicaciones
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Lenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo webLenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo web
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
Tecnologia microsoft .net
Tecnologia microsoft .netTecnologia microsoft .net
Tecnologia microsoft .net
 
Tecnologia Microsoft
Tecnologia  MicrosoftTecnologia  Microsoft
Tecnologia Microsoft
 
Tecnologia microsoft .net
Tecnologia microsoft .netTecnologia microsoft .net
Tecnologia microsoft .net
 
Tecnologia web
Tecnologia webTecnologia web
Tecnologia web
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (11)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
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
 
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
 
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.
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
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
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
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
 

(Codemotion 2014) 20 lenguajes en 40 minutos