Bitrock logo

Scala Italy 2018

Scala Italy 2018

Dopo aver sponsorizzato gli Scala Days 2018 di Berlino e gli Scala Days 2018 di New York, il nostro impegno a sostegno del linguaggio Scala continua. Anche quest’anno Bitrock sarà sponsor di Scala Italy 2018, la conferenza italiana su Scala, che si terrà a Firenze il 14-15 settembre.

./scala-italy.jpg

Scala combina la programmazione funzionale e object-oriented in un linguaggio conciso e di alto livello. I tipi statici di Scala aiutano a evitare i bug nelle applicazioni complesse, mentre i runtime JVM e JavaScript consentono di costruire sistemi ad alte prestazioni con un facile accesso a enormi ecosistemi di librerie.

Scala è un linguaggio object-oriented puro, nel senso che ogni valore è un oggetto. I tipi e il comportamento degli oggetti sono descritti da  classes e traits. Le classi sono estese tramite sottoclassi e un meccanismo flessibile di composizione basato su mixin, che sostituisce in modo pulito l’ereditarietà multipla.

Scala è anche un linguaggio funzionale, nel senso che ogni funzione è un valore. Scala fornisce una sintassi leggera per la definizione di funzioni anonime, supporta le funzioni di ordine superiore, permette di annidare le funzioni e supporta il currying. Le classi di casi di Scala e il supporto incorporato per la corrispondenza dei pattern modellano i tipi algebrici utilizzati in molti linguaggi di programmazione funzionale. Gli oggetti singleton forniscono un modo conveniente per raggruppare le funzioni che non sono membri di una classe.

Inoltre, la nozione di pattern matching di Scala si estende naturalmente all’elaborazione di dati XML con l’aiuto di pattern di sequenze con segno di destra, attraverso un’estensione generale tramite oggetti estrattori. In questo contesto, le comprehensions sono utili per la formulazione di query. Queste caratteristiche rendono Scala ideale per lo sviluppo di applicazioni come i servizi web.

Scala è dotato di un sistema di tipi espressivo che impone staticamente che le astrazioni siano utilizzate in modo sicuro e coerente. In particolare, il sistema di tipi supporta:

L’inferenza dei tipi evita all’utente di annotare il codice con informazioni ridondanti sui tipi. In combinazione, queste caratteristiche forniscono una base potente per il riutilizzo sicuro delle astrazioni di programmazione e per l’estensione sicura del software.

In pratica, lo sviluppo di applicazioni specifiche per il dominio richiede spesso estensioni del linguaggio specifiche per il dominio. Scala offre una combinazione unica di meccanismi linguistici che rendono semplice l’aggiunta di nuovi costrutti linguistici sotto forma di librerie.

In molti casi, ciò può essere fatto senza utilizzare strutture di metaprogrammazione come le macro. Ad esempio,

Scala è progettato per interagire bene con il popolare Java Runtime Environment (JRE). In particolare, l’interazione con il linguaggio di programmazione Java orientato agli oggetti è il più agevole possibile. Le caratteristiche più recenti di Java, come SAM, lambdas, annotations, e generics hanno analoghi diretti in Scala.

Le caratteristiche di Scala che non hanno analoghi in Java, come defaultnamed parameters, si compilano il più vicino possibile a Java. Scala ha lo stesso modello di compilazione (compilazione separata, caricamento dinamico delle classi) di Java e permette di accedere a migliaia di librerie esistenti di alta qualità.

Vuoi saperne di più sui nostri servizi? Compila il modulo e fissa un incontro con il nostro team!

Skip to content