Guida per principianti a Scala

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 e findspark poiché anche spylon-kernel installa alcuni componenti di spark.

    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 e dataCamp 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 i nomi dei metodi dai nomi 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 che ScalaTutorial è il nome dell’oggetto. Allora il file dovrebbe essere salvato come ScalaTutorial.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.

(Source)

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

IF ELSE in Scala

Operatori in Scala

Liste 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