Actualmente conocer más de un paradigma de programación es necesario, pues la problemática requiere de implementar técnicas distintas o dar una solución desde un punto de vista diferente. Scala es un lenguaje híbrido que corre sobre la JVM, pues es funcional y orientado a objetos, lo cual, lo hace la opción adecuada para obtener los conocimientos del paradigma funcional, sin descuidar el conocimiento que se tenga sobre el lenguaje Java.
Y aunque, cuenta con algunos elementos distintos en su estructura, se presta fácilmente a la implementación de los mismos, conceptos que puede adoptar un desarrollador Java. Con ello, se abren las puertas a un ecosistema de desarrollo basado en el lenguaje, y la creación de un criterio de resolución de problemas más amplio.

· A quien va dirigido:

Este entrenamiento es ampliamente recomendado para:
  • Desean cumplir la meta de aprender por lo menos un nuevo lenguaje al año
  • Desarrolladores interesados en crear aplicaciones escalables con el uso del lenguaje
  • Enriquecer el conocimiento del paradigma orientado a objetos con el conjunto de conceptos de la programación funcional.
  • Deseen aprovechar mucho más la plataforma Java
  • Desean obtener los elementos esenciales para desarrollar con frameworks como Play o Scalatra

Conocerás los elementos para implementar los conceptos de la programación funcional, con ello, podrás crear aplicaciones para la JVM que sean fácilmente escalables.

· Temario del entrenamiento:

  • Por qué Scala?
  • Que es Scala?
  • Primeros pasos
    • REPL
  • Declaración de variables
  • Estructuras de control
  • Definición de funciones
  • OO
    • Clases
    • Objects
    • Traits
    • Generics
  • Paquetes e imports
  • E/S
  • Interoperatividad
  • Pruebas
    • Uso básico de ScalaTest
  • Scaladoc
  • Programación Funcional
    • Functions Values
    • Functions and Closures
    • Colecciones
    • Pattern matching
      • Better switch
      • Case clases
      • Pockemon (Gotta catch'em all!!!)
      • Manejo de excepciones
      • Options
      • Guards
      • Extractors (Mención)
      • Matching de estructuras complejas/profundas/anidadas? (Mención)
  • Lazy values
  • Implícitos
  • Programación Web
    • Scalatra (Ejemplo sencillo)
    • Play (Ejemplo sencillo)

· Pre-requisitos:

  • Experiencia mínima de 2 años en desarrollo con Java (Stand-alone, Web).
  • Conocimiento sólido del paradigma de Orientación a Objetos.
  • Conocimientos por lo menos básicos de Programación Funcional.
  • Disposición a aprender nuevos conceptos y paradigmas.