SlideShare una empresa de Scribd logo
1 de 35
Programación
funcional con
Scala
“El cambio es el resultado del
verdadero aprendizaje”
Leo Buscaglia
Hola!
Soy Carlos Salazar
Ingeniero de Software y Desarrollador Java
https://codesolt.com/
Agenda
› Programación funcional
› Qué es Scala / Ventajas
› Ejemplos
› Herramientas
› Casos de éxito
› Integración con Java
› Big Data?
Programación
funcional
Paradigma de Programación
basado en el cálculo Lamda.
Evita cambiar el estado de las
variables (datos inmutable).
Permite funciones lamda y
funciones de primera clase.
Calculo Lamda
Es un sistema matemático que busca definir la
noción de función.
Permite expresar la computación basada en la
abstracción de funciones y sustitución de
variables.
¿Qué es Scala?
Creado en 2003 en un ambiente academico.
Actualmente es un proyecto Open Source.
Multiparadigma
Corre en la JVM
Actualmente usado para sistemas
distribuidos
Soluciones de Scala
EscalabilidadMultiparadigma Performance
Ventajas de usar Scala
JVM
Corre en la misma
máquina virtual de
Java.
Inferencia de Tipos
Tipado estático seguro
que se siente dinámico.
Concurrencia
Ejecución paralela y
asincrona.
Traits
Interfaces al estilo de
Java e implementación
de multi herencia.
Coincidencia de
Patrones
Permite representar
clases que elijan la
rama dependiendo el
tipo de entrada.
Funciones de 1°
nivel
Funciones de orden
superior y funciones
lambda.
Performance
Performance
Hola mundo! 
println(“Hola mundo”)
IDEs
NetBeans
Soporte mediante
plugin.
Eclipse
IDE oficial, soporte
mediante plugin,
worksheet.
IntelliJ
Soporte mediante
Plugin, arquetipos de
Maven integrados.
Terminal
Terminal interactiva,
compilación desde
terminal.
Terminal
Worksheet
IntelliJ
Los hechos
Zero Turn Around
9 000 000 JVM Devs
Pongamonos serios
Ordenamiento en Scala
Scala con Spring
Casos de éxito
LinkedIn
› 65 M de usuarios
› 250 M de request
› 15 M de querys
› Norbert Framework
Twitter
› 70 M de tweets
› 15 M de querys
› Krestel
› Mejor Mensajería
Más casos de éxito
› EDFT
› Xerox
› Sony
› Siemens
› FourSquare
› Novell
› The Guardian
› AppJet
› Xebia
› GridGain
Scala en ANDROID
Scala para DESKTOP?
Scala en el Navegador
Release candidate
Big Data Salario Diversión
¿Por qué debería aprender Scala?
Spark
Proyecto Open Source de Apache
Gracias!
Hay preguntas?
Twitter: @chuuck_sc

Más contenido relacionado

Similar a Programación funcional con Scala

Carasteristicas de compiladores sheshar
Carasteristicas de compiladores shesharCarasteristicas de compiladores sheshar
Carasteristicas de compiladores shesharudalrico
 
Trabajo java
Trabajo javaTrabajo java
Trabajo javaamec0612
 
Programación funcional, una nueva forma de resolver problemas.
Programación funcional, una nueva forma de resolver problemas.Programación funcional, una nueva forma de resolver problemas.
Programación funcional, una nueva forma de resolver problemas.Jose Manuel Ortega Candel
 
From java to scala sin morir en el intento 2
From java to scala sin morir en el intento 2From java to scala sin morir en el intento 2
From java to scala sin morir en el intento 2Alvaro Fidalgo Moran
 
Herramientas BigData.pptx
Herramientas BigData.pptxHerramientas BigData.pptx
Herramientas BigData.pptxMauricio Bedoya
 
Tutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtimeTutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtimeSocialmetrix
 
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?Micael Gallego
 
Manual de java
Manual de javaManual de java
Manual de javaarecerv
 

Similar a Programación funcional con Scala (20)

Carasteristicas de compiladores sheshar
Carasteristicas de compiladores shesharCarasteristicas de compiladores sheshar
Carasteristicas de compiladores sheshar
 
Introducción a scala
Introducción a scalaIntroducción a scala
Introducción a scala
 
Programacion java
Programacion javaProgramacion java
Programacion java
 
Trabajo java
Trabajo javaTrabajo java
Trabajo java
 
Scala desde c# y JavaScript
Scala desde c# y JavaScriptScala desde c# y JavaScript
Scala desde c# y JavaScript
 
Javaqert
JavaqertJavaqert
Javaqert
 
Javaqert
JavaqertJavaqert
Javaqert
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
 
Tema 1[1][1]
Tema 1[1][1]Tema 1[1][1]
Tema 1[1][1]
 
Java basico
Java basicoJava basico
Java basico
 
Presentacion
Presentacion Presentacion
Presentacion
 
Programación funcional, una nueva forma de resolver problemas.
Programación funcional, una nueva forma de resolver problemas.Programación funcional, una nueva forma de resolver problemas.
Programación funcional, una nueva forma de resolver problemas.
 
From java to scala sin morir en el intento 2
From java to scala sin morir en el intento 2From java to scala sin morir en el intento 2
From java to scala sin morir en el intento 2
 
clase01_IntroduccionaJava.pdf
clase01_IntroduccionaJava.pdfclase01_IntroduccionaJava.pdf
clase01_IntroduccionaJava.pdf
 
Herramientas BigData.pptx
Herramientas BigData.pptxHerramientas BigData.pptx
Herramientas BigData.pptx
 
Lenguaje de Alto Nivel (I Bimestre)
Lenguaje de Alto Nivel (I Bimestre)Lenguaje de Alto Nivel (I Bimestre)
Lenguaje de Alto Nivel (I Bimestre)
 
Tutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtimeTutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtime
 
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
 
Manual de java
Manual de javaManual de java
Manual de java
 

Más de Carlos E. Salazar

Spring Boot apps in Kubernetes
Spring Boot apps in KubernetesSpring Boot apps in Kubernetes
Spring Boot apps in KubernetesCarlos E. Salazar
 
Running Spring Boot in Kubernetes and Intro to Helm
Running Spring Boot in Kubernetes and Intro to HelmRunning Spring Boot in Kubernetes and Intro to Helm
Running Spring Boot in Kubernetes and Intro to HelmCarlos E. Salazar
 
Docker, Docker Compose and Docker Swarm
Docker, Docker Compose and Docker SwarmDocker, Docker Compose and Docker Swarm
Docker, Docker Compose and Docker SwarmCarlos E. Salazar
 
Intro to Helm for Kubernetes
Intro to Helm for KubernetesIntro to Helm for Kubernetes
Intro to Helm for KubernetesCarlos E. Salazar
 
Introducción a SCRUM (Agile)
Introducción a SCRUM (Agile)Introducción a SCRUM (Agile)
Introducción a SCRUM (Agile)Carlos E. Salazar
 
Construyendo aplicaciónes Spring Boot con Gradle
Construyendo aplicaciónes Spring Boot con GradleConstruyendo aplicaciónes Spring Boot con Gradle
Construyendo aplicaciónes Spring Boot con GradleCarlos E. Salazar
 
Potenciar tu carrera profesional en la era digital
Potenciar tu carrera profesional en la era digitalPotenciar tu carrera profesional en la era digital
Potenciar tu carrera profesional en la era digitalCarlos E. Salazar
 
Aplicaciones Web con Spring Boot
Aplicaciones Web con Spring BootAplicaciones Web con Spring Boot
Aplicaciones Web con Spring BootCarlos E. Salazar
 
Microservicios con Spring Boot (tono liviano)
Microservicios con Spring Boot (tono liviano)Microservicios con Spring Boot (tono liviano)
Microservicios con Spring Boot (tono liviano)Carlos E. Salazar
 
Microservicios con Spring Boot
Microservicios con Spring BootMicroservicios con Spring Boot
Microservicios con Spring BootCarlos E. Salazar
 
Historias de burocracia en ambientes corporativos
Historias de burocracia en ambientes corporativosHistorias de burocracia en ambientes corporativos
Historias de burocracia en ambientes corporativosCarlos E. Salazar
 
Cómo impulsar tu carrera profesional con Java
Cómo impulsar tu carrera profesional con JavaCómo impulsar tu carrera profesional con Java
Cómo impulsar tu carrera profesional con JavaCarlos E. Salazar
 

Más de Carlos E. Salazar (16)

Spring Boot apps in Kubernetes
Spring Boot apps in KubernetesSpring Boot apps in Kubernetes
Spring Boot apps in Kubernetes
 
Spring Webflux
Spring WebfluxSpring Webflux
Spring Webflux
 
Running Spring Boot in Kubernetes and Intro to Helm
Running Spring Boot in Kubernetes and Intro to HelmRunning Spring Boot in Kubernetes and Intro to Helm
Running Spring Boot in Kubernetes and Intro to Helm
 
Docker, Docker Compose and Docker Swarm
Docker, Docker Compose and Docker SwarmDocker, Docker Compose and Docker Swarm
Docker, Docker Compose and Docker Swarm
 
Intro to Helm for Kubernetes
Intro to Helm for KubernetesIntro to Helm for Kubernetes
Intro to Helm for Kubernetes
 
Spring webflux
Spring webfluxSpring webflux
Spring webflux
 
Introducción a SCRUM (Agile)
Introducción a SCRUM (Agile)Introducción a SCRUM (Agile)
Introducción a SCRUM (Agile)
 
Construyendo aplicaciónes Spring Boot con Gradle
Construyendo aplicaciónes Spring Boot con GradleConstruyendo aplicaciónes Spring Boot con Gradle
Construyendo aplicaciónes Spring Boot con Gradle
 
Potenciar tu carrera profesional en la era digital
Potenciar tu carrera profesional en la era digitalPotenciar tu carrera profesional en la era digital
Potenciar tu carrera profesional en la era digital
 
Aplicaciones Web con Spring Boot
Aplicaciones Web con Spring BootAplicaciones Web con Spring Boot
Aplicaciones Web con Spring Boot
 
Microservicios con Spring Boot (tono liviano)
Microservicios con Spring Boot (tono liviano)Microservicios con Spring Boot (tono liviano)
Microservicios con Spring Boot (tono liviano)
 
Microservicios con Spring Boot
Microservicios con Spring BootMicroservicios con Spring Boot
Microservicios con Spring Boot
 
Servicios REST con Jersey
Servicios REST con JerseyServicios REST con Jersey
Servicios REST con Jersey
 
Historias de burocracia en ambientes corporativos
Historias de burocracia en ambientes corporativosHistorias de burocracia en ambientes corporativos
Historias de burocracia en ambientes corporativos
 
Cómo impulsar tu carrera profesional con Java
Cómo impulsar tu carrera profesional con JavaCómo impulsar tu carrera profesional con Java
Cómo impulsar tu carrera profesional con Java
 
Lombok Project presentation
Lombok Project presentationLombok Project presentation
Lombok Project presentation
 

Programación funcional con Scala