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

Programación funcional con Scala