Presentaciones
Introducción
- Scala es un lenguaje multi-paradigma(orientado a objetos, funcional)
- Fue diseñado por Martin Odersky en el año 2003.
- El nombre de Scala surge de la unión de dos palabras: scalable y language.
-
Su implementación actual corre en la máquina virtual de Java
y es compatible con las aplicaciones Java existentes.

Instalación
Podemos trabajar en dos entornos: por consola y en un ide como eclipse, para más información mira una guía paso a paso:
Características
- Scala es orientado a objetos:
- Los tipos y comportamientos de objetos son descritos por clases y traits.
- Las clases pueden ser extendidas a través de subclases.
- Posee un mecanismo de composición mezclada que provee remplazo para la herencia múltiple.
- Scala es funcional:
- Toda función es un valor.
- Scala provee una sintaxis para definir funciones anónimas.
- Soporta funciones de primer orden.
- Permite que las funciones sean anidadas
- Soporta currying.
- Estáticamente tipado:
- Soporta clases genéricas.
- Anotaciones variables.
- Límites de tipado superiores e inferiores.
- Clases internas y tipos abstractos como miembros de objetos.
- Tipos compuestos.
- Auto-referencias explicitamente tipadas.
- Métodos polimórficos.
- Scala es extensible:
- Cualquier método puede ser usado como un operador de infijo o postfijo.
- Closures son construidos automáticamente dependiendo del tipo esperado (tipos objetivo).
- Diseñado para interoperar bien con el popular Entorno de ejecución de Java (JRE).
- Está disponible el soporte para el Framework .NET (CLR).
Tipos de datos

Los tipos de datos de scala se corresponden con los tipos de datos de java, el Unit equivale al Void, Nothing es el subtipo de cualquier otro tipo; incluye no valores, Any es el supertipo de cualquier tipo; cualquier objeto es de tipo Any.
Operadores

Coleciones

Comparación entre la programación en java y la programación en scala con
ejemplos:
--> Scala vs Java <--