Què és Scala?
Scala és un llenguatge de programació de propòsit general que combina característiques de la programació orientada a objectes i la programació funcional. Va ser creat per Martin Odersky i es va llançar per primera vegada el 2003. Scala és conegut per la seva capacitat de ser concís, expressiu i per la seva interoperabilitat amb Java.
Característiques Clau de Scala
- Interoperabilitat amb Java: Scala es compila a bytecode de Java, el que permet que el codi Scala s'executi en la màquina virtual de Java (JVM). Això significa que pots utilitzar biblioteques Java dins de Scala i viceversa.
- Programació Orientada a Objectes: Tot en Scala és un objecte, incloent-hi els tipus i les funcions.
- Programació Funcional: Scala suporta funcions com a ciutadans de primera classe, permetent la creació de funcions anònimes, funcions d'ordre superior, i més.
- Tipus Estàtic: Scala té un sistema de tipus estàtic fort que ajuda a detectar errors en temps de compilació.
- Concís i Expressiu: Scala permet escriure codi més concís i expressiu en comparació amb altres llenguatges com Java.
Per què Aprendre Scala?
- Productivitat: La sintaxi concisa i les característiques avançades de Scala poden augmentar la productivitat del desenvolupador.
- Interoperabilitat amb Java: Si ja coneixes Java, Scala et permetrà aprofitar el teu coneixement existent i les biblioteques de Java.
- Popularitat en Big Data: Scala és el llenguatge principal per a Apache Spark, una de les eines més populars per al processament de Big Data.
- Comunitat i Suport: Scala té una comunitat activa i una gran quantitat de recursos d'aprenentatge disponibles.
Història de Scala
Scala va ser desenvolupat per Martin Odersky i el seu equip a l'École Polytechnique Fédérale de Lausanne (EPFL) a Suïssa. La primera versió de Scala es va llançar el 2003, i des de llavors ha evolucionat significativament. Algunes fites importants en la història de Scala inclouen:
- 2003: Llançament de la primera versió de Scala.
- 2006: Llançament de Scala 2.0, que va introduir moltes millores i noves característiques.
- 2011: Scala es converteix en el llenguatge principal per a Apache Spark.
- 2016: Llançament de Scala 2.12, amb millores en la interoperabilitat amb Java 8.
- 2020: Llançament de Scala 3.0, una revisió important del llenguatge amb moltes noves característiques i millores.
Exemples de Codi en Scala
A continuació es mostren alguns exemples bàsics de codi en Scala per donar-te una idea de la seva sintaxi i característiques.
Hola, Món!
Definició d'una Classe
class Persona(val nom: String, val edat: Int) { def saluda(): Unit = { println(s"Hola, el meu nom és $nom i tinc $edat anys.") } } val persona = new Persona("Joan", 30) persona.saluda()
Funció Anònima
Funció d'Ordre Superior
def aplicaFuncio(f: Int => Int, x: Int): Int = f(x) val doble = (x: Int) => x * 2 println(aplicaFuncio(doble, 4)) // Sortida: 8
Exercici Pràctic
Exercici 1: Crear una Classe Simple
Crea una classe Cotxe
amb els següents atributs: marca
(String), model
(String) i any
(Int). Afegeix un mètode descripcio
que imprimeixi una descripció del cotxe.
Solució
class Cotxe(val marca: String, val model: String, val any: Int) { def descripcio(): Unit = { println(s"Aquest és un $marca $model de l'any $any.") } } val cotxe = new Cotxe("Toyota", "Corolla", 2020) cotxe.descripcio() // Sortida: Aquest és un Toyota Corolla de l'any 2020.
Conclusió
En aquesta introducció a Scala, hem explorat les característiques clau del llenguatge, la seva història i alguns exemples bàsics de codi. Scala és un llenguatge potent i versàtil que combina els millors aspectes de la programació orientada a objectes i la programació funcional. En els següents mòduls, aprofundirem en la configuració de l'entorn de desenvolupament i els conceptes bàsics de Scala.
Curs de Programació en Scala
Mòdul 1: Introducció a Scala
- Introducció a Scala
- Configuració de l'Entorn de Desenvolupament
- Conceptes Bàsics de Scala: Sintaxi i Estructura
- Variables i Tipus de Dades
- Operacions Bàsiques i Expressions
Mòdul 2: Estructures de Control i Funcions
- Declaracions Condicionals
- Bucles i Iteracions
- Funcions i Mètodes
- Funcions d'Ordre Superior
- Funcions Anònimes
Mòdul 3: Col·leccions i Estructures de Dades
- Introducció a les Col·leccions
- Llistes i Arrays
- Conjunts i Mapes
- Tuples i Options
- Coincidència de Patrons
Mòdul 4: Programació Orientada a Objectes en Scala
- Classes i Objectes
- Herència i Traits
- Classes Abstractes i Classes Case
- Objectes Companys
- Objectes Singleton
Mòdul 5: Programació Funcional en Scala
- Immutabilitat i Funcions Pures
- Estructures de Dades Funcionals
- Monads i Functors
- For-Comprehensions
- Gestió d'Errors en la Programació Funcional
Mòdul 6: Conceptes Avançats de Scala
- Conversions i Paràmetres Implícits
- Classes de Tipus i Polimorfisme
- Macros i Reflexió
- Concurrència en Scala
- Introducció a Akka