Post on 07-Jul-2015
description
20 Lenguajes40 Minutos
Alonso Torres @alotor
Alonso Torres
@alotor @alotor
mobro.co/alotor
Programares
ARTE
Programares
ARTE ¿ ?
CREATIVA
No pintas con un
solo COLOR
JAVA C#
JAVA C#
ORIENTADOOBJETOS
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#
ORIENTADOOBJETOS
TIPOSESTÁTICOS
Tipos estáticos
El compilador comprueba los tipos
Información previa a la ejecución
JAVA C#
ORIENTADOOBJETOS
TIPOSESTÁ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#
ORIENTADOOBJETOS
TIPOSESTÁTICOS
MÁQUINA VIRTUAL SIGLO XX
Lenguajes del Siglo XX
Java fue creado en 1995
C# en el año 2000
JAVA C#
ORIENTADOOBJETOS
TIPOSESTÁTICOS
MÁQUINA VIRTUAL SIGLO XX
¿Por qué estántan extendidos?
Lenguajes
FIABLES
● Estructura● Tipos● Documentación● Comunidad● Frameworks estables
¿Quieres salir
de tu zona de confort?
Pintemos con
otros COLORES
JAVA C#
ORIENTADOOBJETOS
TIPOSESTÁTICOS
MÁQUINA VIRTUAL SIGLO XX
JAVA C#
TIPOSESTÁTICOS
MÁQUINA VIRTUAL SIGLO XX
PROGRAMACIÓNFUNCIONAL
ORIENTADOOBJETOS
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 tienenmucha importancia
Scala Transición
F# Tipos
Pureza funcional,Inmutabilidad
Scala Transición
F# Tipos
Haskell Pureza
Lenguajes orientados a concurrencia
Scala Transición
F#
Erlang
Tipos
Concurrencia
Haskell Pureza
Aunque también podemos ser flexibles
Scala Transición
F#
Erlang
Tipos
Concurrencia
Haskell Pureza
Clojure Flexibilidad
JAVA C#
TIPOSESTÁTICOS
MÁQUINA VIRTUAL SIGLO XX
JAVA C#
MÁQUINA VIRTUAL SIGLO XX
TIPOSDINÁMICOS
TIPOSESTÁTICOS
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
Ruby Flexibilidad
Python Filosofía
Nos permiten una alta velocidad de desarrollo
Groovy Transición
Ruby Flexibilidad
Python Filosofía
PHP Velocidad
Se integran bien con otros sistemas
Groovy Transición
Ruby Flexibilidad
Python Filosofía
PHP Velocidad
Javascript Integración
JAVA C#
MÁQUINA VIRTUAL SIGLO XX
JAVA C#
SIGLO XXMÁQUINA VIRTUALSISTEMA
Lenguajes de sistema
- No ponen barreras entre el programador y el sistema operativo
- Manejo de memoria a “bajo nivel”
- Gran potencia
Un gran poder conllevauna 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++
Rust
Estructura
Tipos de memoria
Go Concurrencia
JAVA C#
SIGLO XX
JAVA C#
SIGLO XXSIGLO XXI
La juventudllega pisando fuerte
Modularidad integrada
en el lenguaje
Ceylon Módulos
Lenguajes funcionalese 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