Introduzione
Scala è stata progettata da Martin Odersky, un professore all’École Polytechnique Fédérale de Lausanne (EPFL) in Svizzera e un informatico tedesco. Martin ha iniziato a lavorare alla creazione di Scala nel 2001, e la sua prima versione è stata rilasciata nel 2004.
Scala sta per Scalable Language
, ovvero “Linguaggio Scalabile”. È un linguaggio di programmazione generico, orientato agli oggetti, che condivide alcune caratteristiche con il linguaggio di programmazione Java. Offre supporto per il programming functionale. Molte delle decisioni di progettazione di Scala sono state fatte per affrontare i limiti del linguaggio di programmazione Java.
Alcune caratteristiche che offre Scala sono:
-
Il codice sorgente di Scala può essere compilato in bytecode Java e quindi è eseguibile su una Java Virtual Machine (JVM).
-
Offre interoperabilità tra linguaggi con Java, cosicché le librerie scritte in entrambi i linguaggi possono essere citate in Scala o nel codice Java.
-
Come Java, anche Scala utilizza una sintassi con parentesi graffe.
-
Può contenere molte caratteristiche di linguaggi di programmazione funzionali come Scheme, Standard Machine Learning e Haskell, incluso il currying, l’inferenza di tipo, l’immutabilità, l’evaluazione lazy e il matching di pattern.
-
Supporto per applicazioni Web utilizzando JavaScript.
-
A differenza di Java, Scala supporta anche il sovraccarico degli operatori, parametri opzionali, parametri nominati e stringhe grezze.
Un fatto interessante su Scala è che è ampiamente utilizzato da aziende come Apple, Twitter, Walmart e Google grazie alla sua scalabilità e capacità di essere utilizzato nelle operazioni di backend.
Configurare Scala in Jupyter Notebook
Il Jupyter notebook è uno degli strumenti più utilizzati in informatica, specialmente nel dominio della scienza dei dati. Supporta anche lo sviluppo in Scala con l’aiuto di spylon-kernel
.
Nota: Per coloro che sono nuovi a jupyter notebook, sentitevi liberi di consultare questo tutorial completo.
Configurare l’ambiente Scala in jupyter notebook non è scienza missilistica. Quindi, configuriamolo rapidamente in pochi passaggi.
-
Prima, installerai il
spylon-kernel
.pip install spylon-kernel
(Python 2)pip3 install spylon-kernel
(Python 3) -
Successivamente, creerai una specifica del kernel che ti permetterà di selezionare il
scala-kernel
nel notebook Jupyter.python -m spylon_kernel install
(Python 2)python3 -m spylon_kernel install
(Python 3) -
Infine, come passaggio importante, installerai
pyspark
efindspark
poiché anchespylon-kernel
installa alcuni componenti dispark
.pip install pyspark findspark
(Python 2)pip3 install pyspark findspark
(Python 3) -
Infine, avvia il tuo blocco note di Jupyter e scegli il kernel come
spylon-kernel
e sei pronto a partire!
- Ecco un pezzetto di codice per testare se il kernel Scala è stato configurato correttamente.
val x = 2 val y = 3 x*y
x: Int = 2 y: Int = 3 res1: Int = 6
Ottimo! Come puoi osservare dall’output precedente, sei riuscito a configurare con successo l’ambiente Scala negli schedari Jupyter.
Sintassi di base
Iniziamo stampando Hello, World!
in Scala.
print("Hello, World!")
Hello, World!
Come puoi vedere, era così semplice, solo un comando print
seguito dall’input come argomento.
Ora, diamo un’occhiata a alcuni dettagli sintattici relativi a Scala:
-
Scala è case-sensitive, ciò significa che gli identificatori
DataCamp
edataCamp
avranno un significato diverso in Scala. -
In Scala, tutti i nomi di classe devono iniziare con una lettera in
Caps Lock
. Se molte parole sono combinate per formare il nome di una classe, ogni parola separata deve iniziare con Maiuscola. Per esempio,class MyScalaDataCampTutorial
. -
I nomi dei metodi in Scala funzionano in modo leggermente diverso rispetto ai
nomi delle classi
principalmente per distinguere inomi dei metodi
dainomi delle classi
. I nomi dei metodi devono iniziare con una lettera minuscola (Fonte). Se più parole sono combinate per formare il nome del metodo, la prima lettera di ogni parola interna deve essere maiuscola. Ad esempio,def firstDatacampScalaTutorial()
-
In Scala, il nome del file programma deve corrispondere esattamente al nome dell’oggetto. Quando si salva il file, è necessario salvarlo utilizzando il nome dell’oggetto e appendere
.scala
alla fine del nome. Per esempio, diciamo cheScalaTutorial
è il nome dell’oggetto. Allora il file dovrebbe essere salvato comeScalaTutorial.scala
.Nota: Se il nome del file e il nome dell’oggetto non corrispondono, allora il tuo programma non verrà compilato.
-
Infine, come per la maggior parte delle lingue di programmazione, anche il processamento del programma di Scala inizia dalla funzione
main()
, che è una parte fondamentale di ogni programma di Scala.
Il seguente diagramma mostra le parole riservate in Scala che non possono essere usate come costanti o variabili o come altri identificativi.

Tipi di Dati
I tipi di dati in Scala sono quasi identici a quelli di molti altri linguaggi di programmazione come C, C++, Java, Python, ecc., con un’impronta di memoria e precisione simili.
Infine, diamo un’occhiata ai alcuni tipi di dati presenti in Scala:
-
Int: Un valore firmato a 32 bit (può assumere sia valori positivi che negativi) ha un intervallo da $2^{-31}$ a $2^{31} – 1$
-
Byte: Un valore firmato a 8 bit ha un intervallo da $2^{-7}$ a $2^{7} – 1$
-
Short: Un valore firmato a 16 bit ha un intervallo da $2^{-15}$ a $2^{15} – 1$
-
Long: Un valore firmato a 64 bit ha un intervallo da $2^{-63}$ a $2^{63} – 1$
-
Float: Sia a 32 bit (virgola mobile a singola precisione) sia a 64 bit (virgola mobile a doppia precisione)
-
Char: Un carattere Unicode non firmato a 16 bit (può solo assumere valori positivi).
Alcuni altri tipi di dati sono Stringa, Booleano, Null.
Conclusione
Congratulazioni per aver completato questo tutorial.
È un buon punto di partenza per i principianti interessati a imparare Scala.
Per saperne di più, dai un’occhiata ai tutorial di Scala su DataCamp:
Base delle funzioni e metodi in Scala
C’è un’abbondanza di informazioni relative a Scala che rimangono da scoprire, come if/else, cicli for, vari operatori in Scala, ecc., che verranno trattati nei futuri tutorial, quindi rimani sintonizzato!
Riferimenti:
Sentiti libero di fare qualsiasi domanda relativa a questo tutorial nella sezione commenti qui sotto.
Source:
https://www.datacamp.com/tutorial/beginners-guide-to-scala