SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Scala: una visión
    general
                 Miguel Angel Pastor Olivar
             miguelinlas3 at gmail dot com
          http://miguelinlas3.blogspot.com
             http://twitter.com/miguelinlas3
Contenidos

●   Scala: una visión global
●   Fundamentos del lenguaje
●   Concurrencia: un enfoque diferente
●   Conclusiones y futuras líneas
Scala: una visión global
Visión general

●   ¿Qué es Scala? ¿Por qué utilizar Scala?
●   Multiparadigma: funcional y orientado a
    objetos
●   Lenguaje extensible y escalable
●   Ejecución sobre la Java Virtual Machine
●   Crisis:
        –   Ley de Moore
        –   Tendencia múltiples núcleos
Fundamentos del
   lenguaje
Fundamentos: clases y objetos

●   Definición de clases
●   Vals y vars
●   Métodos
●   Argumentos no
    modificables
●   Inferencia de puntos
    y coma
Fundamentos: singleton objects

●   Ausencia métodos
    estáticos
●   Companion class y
    companion object
●   No instanciables
●   Implementados
    mediante synthetic
    class
●   Semántica static
Fundamentos: objetos
             funcionales
●   Parámetros de clase
●   Sobrescritura
●   Precondiciones
●   Atributos y métodos
●   Métodos privados
●   Operadores
Fundamentos: closures y
              funciones
●   Funciones de primer
    nivel
●   Funciones literales y
    valor
●   Closures: free
    variables
●   Visibilidad de
    cambios
Fundamentos: tail recursion

●   Tipología
    determinada
●   Limitaciones a nivel
    de bytecode (JVM)
●   No funciona con
    recursión indirecta
Fundamentos: Currying

●   Técnica proveniente
    del paradigma
    funcional
●   Múltiples listas de
    argumentos
●   Invocación sucesiva
    de la función
Fundamentos: Traits (I)

●   Métodos y atributos
●   Mixin con múltiples clases
●   Palabras reservadas: extend o with
●   Definen tipos
●   Más avanzados que los interfaces
       –   No tienen parámetros de clase
       –   Llamadas a super enlazadas dinámicamente
Fundamentos: Traits (II)

●   Enriquecimiento de
    interfaces
●   Stackable
    modifications
       –   Modificar métodos
            de una clase
       –   Apilación de
            modificaciones
●   Abstract override
Fundamentos: Traits (III)

●   ¿Traits? ¿Si o no?
       –   No reutilización → clase
       –   Reutilización en múltiples clases no
            relacionadas → trait
       –   Heredar desde Java → clase abstracta
       –   Eficiencia → clase
       –   ¿Dudas? → Comenzemos por traits
Fundamentos: Patrones y clases
          case (I)
●   Selección de alternativas
       –   selector match { alternatives }
●   Clases case
       –   Incorporación de factory-method
       –   Lista de parámetros: val implícito
       –   ToString, equals y hashCode:
            implementaciones “instintivas”
       –   Posibilita su utilización en patrones
Fundamentos: Patrones y clases
          case (II)
●   Tipos de patrones
       –   Wildcard
       –   Constantes
       –   Variables
       –   Constructores
       –   Secuencia
       –   Tipados
Concurrencia
Actores: Problema actual

●   Complejidad desarrollo programas multihilo
●   Threads no son deterministas
●   Dificultad de testeo y depuración
●   Segmentos de memoria compartida
●   Deadlocks, condiciones de carrera, . . .
Actores: Modelo

●   Modelo de no compartición
●   Buzones
●   Paso de mensajes (inmutables)
●   Primera implementación popular llevada a cabo
    por el lenguaje Erlang
Actores: Buenas prácticas

●   Buenas prácticas
       –   Ausencia de bloqueos
       –   Comunicación exclusiva mediante mensajes
       –   Mensajes inmutables
       –   Mensajes autocontenidos
               ●   Referencia a la petición
               ●   Utilización de una clase para cada mensaje
Conclusiones y futuras
        líneas
Conclusiones

●   Lenguaje de propósito general
●   Mejora de la productividad
●   Diversidad ámbitos de uso
       –   Parte servidor
       –   Web
       –   Escalabilidad y concurrencia
       –   Lenguajes de dominio específico
Trabajo futuro

●   Análisis plataforma Akka
●   Web funcional: Play, Lift, Akka
●   Interoperabilidad: Scala y Java
●   Scala sobre .NET
●   Colecciones paralelas
●   GUI en Scala
●   Monads
Trabajo futuro

●   Arquitectura del compilador
●   Desarrollo de lenguajes de dominio específicos
¡Esto es todo!
  ¡Gracias!

Mais conteúdo relacionado

Mais procurados

Fundamentos de programación Java
Fundamentos de programación JavaFundamentos de programación Java
Fundamentos de programación Javaquesada_diego
 
cuestionario de Programación
cuestionario de Programación cuestionario de Programación
cuestionario de Programación dulcevelazquez109
 
CUESTIONARIO JAVA
CUESTIONARIO JAVACUESTIONARIO JAVA
CUESTIONARIO JAVAjesanchez5
 
iNTRODUCCION AL LENGUAJE JAVA
iNTRODUCCION AL LENGUAJE  JAVAiNTRODUCCION AL LENGUAJE  JAVA
iNTRODUCCION AL LENGUAJE JAVAJesus Alex Haro
 
2.1 caracteristicas de lenguajes de programación
2.1 caracteristicas de lenguajes de programación2.1 caracteristicas de lenguajes de programación
2.1 caracteristicas de lenguajes de programaciónoviedospablo
 
Programacion orientada a objetos 2
Programacion orientada a objetos 2Programacion orientada a objetos 2
Programacion orientada a objetos 2mellcv
 
Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)PiXeL16
 
Curso Java Inicial 2 - Introducción y Sintaxis
Curso Java Inicial  2 - Introducción y SintaxisCurso Java Inicial  2 - Introducción y Sintaxis
Curso Java Inicial 2 - Introducción y SintaxisEmilio Aviles Avila
 
Vista aérea de los lenguajes de programación
Vista aérea de los lenguajes de programaciónVista aérea de los lenguajes de programación
Vista aérea de los lenguajes de programaciónEduard Tomàs
 
Estructura basica de un programa
Estructura basica de un programaEstructura basica de un programa
Estructura basica de un programaRay-kun Olivera
 

Mais procurados (20)

Fundamentos de programación Java
Fundamentos de programación JavaFundamentos de programación Java
Fundamentos de programación Java
 
Lenguaje de Programación Ruby
Lenguaje de Programación RubyLenguaje de Programación Ruby
Lenguaje de Programación Ruby
 
Intro Java
Intro JavaIntro Java
Intro Java
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Scala
ScalaScala
Scala
 
cuestionario de Programación
cuestionario de Programación cuestionario de Programación
cuestionario de Programación
 
Test
TestTest
Test
 
CUESTIONARIO JAVA
CUESTIONARIO JAVACUESTIONARIO JAVA
CUESTIONARIO JAVA
 
Programación con java en Eclipse
Programación con java en EclipseProgramación con java en Eclipse
Programación con java en Eclipse
 
iNTRODUCCION AL LENGUAJE JAVA
iNTRODUCCION AL LENGUAJE  JAVAiNTRODUCCION AL LENGUAJE  JAVA
iNTRODUCCION AL LENGUAJE JAVA
 
2.1 caracteristicas de lenguajes de programación
2.1 caracteristicas de lenguajes de programación2.1 caracteristicas de lenguajes de programación
2.1 caracteristicas de lenguajes de programación
 
Programacion orientada a objetos 2
Programacion orientada a objetos 2Programacion orientada a objetos 2
Programacion orientada a objetos 2
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)
 
Curso Java Inicial 2 - Introducción y Sintaxis
Curso Java Inicial  2 - Introducción y SintaxisCurso Java Inicial  2 - Introducción y Sintaxis
Curso Java Inicial 2 - Introducción y Sintaxis
 
Software Clips
Software ClipsSoftware Clips
Software Clips
 
Programacion java basica
Programacion java basicaProgramacion java basica
Programacion java basica
 
Vista aérea de los lenguajes de programación
Vista aérea de los lenguajes de programaciónVista aérea de los lenguajes de programación
Vista aérea de los lenguajes de programación
 
Sintaxis Java
Sintaxis JavaSintaxis Java
Sintaxis Java
 
Estructura basica de un programa
Estructura basica de un programaEstructura basica de un programa
Estructura basica de un programa
 

Destaque

Aplicaciones Del Lenguaje Scala
Aplicaciones Del Lenguaje ScalaAplicaciones Del Lenguaje Scala
Aplicaciones Del Lenguaje Scalaguestbc5e8
 
Use Promise, Future and some functional programing stuff without being a math...
Use Promise, Future and some functional programing stuff without being a math...Use Promise, Future and some functional programing stuff without being a math...
Use Promise, Future and some functional programing stuff without being a math...Quentin Adam
 
How Scala promotes TDD
How Scala promotes TDDHow Scala promotes TDD
How Scala promotes TDDShai Yallin
 
A Tour Of Scala
A Tour Of ScalaA Tour Of Scala
A Tour Of Scalafanf42
 
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)TIS Inc.
 
Introducción a Apache Spark a través de un caso de uso cotidiano
Introducción a Apache Spark a través de un caso de uso cotidianoIntroducción a Apache Spark a través de un caso de uso cotidiano
Introducción a Apache Spark a través de un caso de uso cotidianoSocialmetrix
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónKarol
 
Loop Like a Functional Programing Native
Loop Like a Functional Programing NativeLoop Like a Functional Programing Native
Loop Like a Functional Programing NativeJiaming Zhang
 

Destaque (12)

Aplicaciones Del Lenguaje Scala
Aplicaciones Del Lenguaje ScalaAplicaciones Del Lenguaje Scala
Aplicaciones Del Lenguaje Scala
 
Use Promise, Future and some functional programing stuff without being a math...
Use Promise, Future and some functional programing stuff without being a math...Use Promise, Future and some functional programing stuff without being a math...
Use Promise, Future and some functional programing stuff without being a math...
 
How Scala promotes TDD
How Scala promotes TDDHow Scala promotes TDD
How Scala promotes TDD
 
A Tour Of Scala
A Tour Of ScalaA Tour Of Scala
A Tour Of Scala
 
Scala desde c# y JavaScript
Scala desde c# y JavaScriptScala desde c# y JavaScript
Scala desde c# y JavaScript
 
Neo4j - A Graph Database
Neo4j - A Graph DatabaseNeo4j - A Graph Database
Neo4j - A Graph Database
 
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
 
Baño
BañoBaño
Baño
 
Introducción a Apache Spark a través de un caso de uso cotidiano
Introducción a Apache Spark a través de un caso de uso cotidianoIntroducción a Apache Spark a través de un caso de uso cotidiano
Introducción a Apache Spark a través de un caso de uso cotidiano
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Fun[ctional] spark with scala
Fun[ctional] spark with scalaFun[ctional] spark with scala
Fun[ctional] spark with scala
 
Loop Like a Functional Programing Native
Loop Like a Functional Programing NativeLoop Like a Functional Programing Native
Loop Like a Functional Programing Native
 

Semelhante a Scala: un vistazo general

Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoAlvaro Enrique Ruano
 
Curso javabasico
Curso javabasicoCurso javabasico
Curso javabasicosergioap40
 
Introducción a Scala
Introducción a ScalaIntroducción a Scala
Introducción a Scalajose diaz
 
18448198 programacion-orientada-a-objetos
18448198 programacion-orientada-a-objetos18448198 programacion-orientada-a-objetos
18448198 programacion-orientada-a-objetosDavid Henrry Rosas Cruz
 
El lenguaje Ceylon y sus ventajas sobre Java
El lenguaje Ceylon y sus ventajas sobre JavaEl lenguaje Ceylon y sus ventajas sobre Java
El lenguaje Ceylon y sus ventajas sobre JavaSoftware Guru
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
 
Introduccion a la Programacion Orientada a Objetos
Introduccion a la Programacion Orientada a ObjetosIntroduccion a la Programacion Orientada a Objetos
Introduccion a la Programacion Orientada a ObjetosAlexys González
 
Grails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasGrails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasCarlos Camacho
 
Object Oriented Programming vs Functional Programming - Valencia.rb
Object Oriented Programming vs Functional Programming - Valencia.rbObject Oriented Programming vs Functional Programming - Valencia.rb
Object Oriented Programming vs Functional Programming - Valencia.rbDaniel Pecos Martínez
 
Consideraciones pragmatica
Consideraciones pragmaticaConsideraciones pragmatica
Consideraciones pragmaticaJose Gallardo
 

Semelhante a Scala: un vistazo general (20)

Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
Curso javabasico
Curso javabasicoCurso javabasico
Curso javabasico
 
Java12
Java12Java12
Java12
 
Introducción a Scala
Introducción a ScalaIntroducción a Scala
Introducción a Scala
 
18448198 programacion-orientada-a-objetos
18448198 programacion-orientada-a-objetos18448198 programacion-orientada-a-objetos
18448198 programacion-orientada-a-objetos
 
El lenguaje Ceylon y sus ventajas sobre Java
El lenguaje Ceylon y sus ventajas sobre JavaEl lenguaje Ceylon y sus ventajas sobre Java
El lenguaje Ceylon y sus ventajas sobre Java
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
 
Java basico
Java basicoJava basico
Java basico
 
Principios de diseño
Principios de diseñoPrincipios de diseño
Principios de diseño
 
Tema 1[1][1]
Tema 1[1][1]Tema 1[1][1]
Tema 1[1][1]
 
Programacion java
Programacion javaProgramacion java
Programacion java
 
Javaqert
JavaqertJavaqert
Javaqert
 
Javaqert
JavaqertJavaqert
Javaqert
 
Introduccion a la Programacion Orientada a Objetos
Introduccion a la Programacion Orientada a ObjetosIntroduccion a la Programacion Orientada a Objetos
Introduccion a la Programacion Orientada a Objetos
 
Grails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasGrails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - Sistemas
 
Object Oriented Programming vs Functional Programming - Valencia.rb
Object Oriented Programming vs Functional Programming - Valencia.rbObject Oriented Programming vs Functional Programming - Valencia.rb
Object Oriented Programming vs Functional Programming - Valencia.rb
 
Consideraciones pragmatica
Consideraciones pragmaticaConsideraciones pragmatica
Consideraciones pragmatica
 
Grails barcamp 2013
Grails barcamp 2013Grails barcamp 2013
Grails barcamp 2013
 
S01.s1 - Lenguaje Java-1.pdf
S01.s1 - Lenguaje Java-1.pdfS01.s1 - Lenguaje Java-1.pdf
S01.s1 - Lenguaje Java-1.pdf
 

Mais de Miguel Pastor

Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Miguel Pastor
 
Microservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMicroservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMiguel Pastor
 
Liferay and Big Data
Liferay and Big DataLiferay and Big Data
Liferay and Big DataMiguel Pastor
 
Reactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala MeetupReactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala MeetupMiguel Pastor
 
Reactive applications using Akka
Reactive applications using AkkaReactive applications using Akka
Reactive applications using AkkaMiguel Pastor
 
Liferay Devcon 2013: Our way towards modularity
Liferay Devcon 2013: Our way towards modularityLiferay Devcon 2013: Our way towards modularity
Liferay Devcon 2013: Our way towards modularityMiguel Pastor
 
Liferay Module Framework
Liferay Module FrameworkLiferay Module Framework
Liferay Module FrameworkMiguel Pastor
 
Hadoop, Cloud y Spring
Hadoop, Cloud y Spring Hadoop, Cloud y Spring
Hadoop, Cloud y Spring Miguel Pastor
 
Platform as a Service overview
Platform as a Service overviewPlatform as a Service overview
Platform as a Service overviewMiguel Pastor
 
Aspect Oriented Programming introduction
Aspect Oriented Programming introductionAspect Oriented Programming introduction
Aspect Oriented Programming introductionMiguel Pastor
 
Software measure-slides
Software measure-slidesSoftware measure-slides
Software measure-slidesMiguel Pastor
 
Groovy and Grails intro
Groovy and Grails introGroovy and Grails intro
Groovy and Grails introMiguel Pastor
 

Mais de Miguel Pastor (17)

Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014
 
Microservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMicroservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservices
 
Liferay and Big Data
Liferay and Big DataLiferay and Big Data
Liferay and Big Data
 
Reactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala MeetupReactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala Meetup
 
Reactive applications using Akka
Reactive applications using AkkaReactive applications using Akka
Reactive applications using Akka
 
Liferay Devcon 2013: Our way towards modularity
Liferay Devcon 2013: Our way towards modularityLiferay Devcon 2013: Our way towards modularity
Liferay Devcon 2013: Our way towards modularity
 
Liferay Module Framework
Liferay Module FrameworkLiferay Module Framework
Liferay Module Framework
 
Liferay and Cloud
Liferay and CloudLiferay and Cloud
Liferay and Cloud
 
Jvm fundamentals
Jvm fundamentalsJvm fundamentals
Jvm fundamentals
 
Hadoop, Cloud y Spring
Hadoop, Cloud y Spring Hadoop, Cloud y Spring
Hadoop, Cloud y Spring
 
Platform as a Service overview
Platform as a Service overviewPlatform as a Service overview
Platform as a Service overview
 
HadoopDB
HadoopDBHadoopDB
HadoopDB
 
Aspect Oriented Programming introduction
Aspect Oriented Programming introductionAspect Oriented Programming introduction
Aspect Oriented Programming introduction
 
Software measure-slides
Software measure-slidesSoftware measure-slides
Software measure-slides
 
Arquitecturas MMOG
Arquitecturas MMOGArquitecturas MMOG
Arquitecturas MMOG
 
Software Failures
Software FailuresSoftware Failures
Software Failures
 
Groovy and Grails intro
Groovy and Grails introGroovy and Grails intro
Groovy and Grails intro
 

Scala: un vistazo general

  • 1. Scala: una visión general Miguel Angel Pastor Olivar miguelinlas3 at gmail dot com http://miguelinlas3.blogspot.com http://twitter.com/miguelinlas3
  • 2. Contenidos ● Scala: una visión global ● Fundamentos del lenguaje ● Concurrencia: un enfoque diferente ● Conclusiones y futuras líneas
  • 4. Visión general ● ¿Qué es Scala? ¿Por qué utilizar Scala? ● Multiparadigma: funcional y orientado a objetos ● Lenguaje extensible y escalable ● Ejecución sobre la Java Virtual Machine ● Crisis: – Ley de Moore – Tendencia múltiples núcleos
  • 5. Fundamentos del lenguaje
  • 6. Fundamentos: clases y objetos ● Definición de clases ● Vals y vars ● Métodos ● Argumentos no modificables ● Inferencia de puntos y coma
  • 7. Fundamentos: singleton objects ● Ausencia métodos estáticos ● Companion class y companion object ● No instanciables ● Implementados mediante synthetic class ● Semántica static
  • 8. Fundamentos: objetos funcionales ● Parámetros de clase ● Sobrescritura ● Precondiciones ● Atributos y métodos ● Métodos privados ● Operadores
  • 9. Fundamentos: closures y funciones ● Funciones de primer nivel ● Funciones literales y valor ● Closures: free variables ● Visibilidad de cambios
  • 10. Fundamentos: tail recursion ● Tipología determinada ● Limitaciones a nivel de bytecode (JVM) ● No funciona con recursión indirecta
  • 11. Fundamentos: Currying ● Técnica proveniente del paradigma funcional ● Múltiples listas de argumentos ● Invocación sucesiva de la función
  • 12. Fundamentos: Traits (I) ● Métodos y atributos ● Mixin con múltiples clases ● Palabras reservadas: extend o with ● Definen tipos ● Más avanzados que los interfaces – No tienen parámetros de clase – Llamadas a super enlazadas dinámicamente
  • 13. Fundamentos: Traits (II) ● Enriquecimiento de interfaces ● Stackable modifications – Modificar métodos de una clase – Apilación de modificaciones ● Abstract override
  • 14. Fundamentos: Traits (III) ● ¿Traits? ¿Si o no? – No reutilización → clase – Reutilización en múltiples clases no relacionadas → trait – Heredar desde Java → clase abstracta – Eficiencia → clase – ¿Dudas? → Comenzemos por traits
  • 15. Fundamentos: Patrones y clases case (I) ● Selección de alternativas – selector match { alternatives } ● Clases case – Incorporación de factory-method – Lista de parámetros: val implícito – ToString, equals y hashCode: implementaciones “instintivas” – Posibilita su utilización en patrones
  • 16. Fundamentos: Patrones y clases case (II) ● Tipos de patrones – Wildcard – Constantes – Variables – Constructores – Secuencia – Tipados
  • 18. Actores: Problema actual ● Complejidad desarrollo programas multihilo ● Threads no son deterministas ● Dificultad de testeo y depuración ● Segmentos de memoria compartida ● Deadlocks, condiciones de carrera, . . .
  • 19. Actores: Modelo ● Modelo de no compartición ● Buzones ● Paso de mensajes (inmutables) ● Primera implementación popular llevada a cabo por el lenguaje Erlang
  • 20. Actores: Buenas prácticas ● Buenas prácticas – Ausencia de bloqueos – Comunicación exclusiva mediante mensajes – Mensajes inmutables – Mensajes autocontenidos ● Referencia a la petición ● Utilización de una clase para cada mensaje
  • 22. Conclusiones ● Lenguaje de propósito general ● Mejora de la productividad ● Diversidad ámbitos de uso – Parte servidor – Web – Escalabilidad y concurrencia – Lenguajes de dominio específico
  • 23. Trabajo futuro ● Análisis plataforma Akka ● Web funcional: Play, Lift, Akka ● Interoperabilidad: Scala y Java ● Scala sobre .NET ● Colecciones paralelas ● GUI en Scala ● Monads
  • 24. Trabajo futuro ● Arquitectura del compilador ● Desarrollo de lenguajes de dominio específicos
  • 25. ¡Esto es todo! ¡Gracias!