Commits

Anonymous committed 7d34328

Type system terminology.

Comments (0)

Files changed (1)

 <dt>Un sistema di tipi sofisticato
 <dd><p>Scala estende il sistema di tipi di Java con generici più flessibili e un numero di costrutti di tipo più avanzati. Il sistema di tipi può incutere timore all&#8217;inizio, ma per la maggior parte del tempo non avrete bisogno di preoccuparvi dei costrutti avanzati. L&#8217;inferenza di tipo aiuta a ricavare automaticamente i tipi nelle firme dei metodi e delle funzioni, in modo che l&#8217;utente non debba fornire manualmente informazioni di tipo banali. Quando ne avete bisogno, comunque, le caratteristiche di tipo avanzate vi forniscono una maggiore flessibilità per risolvere problemi di progettazione in modo type-safe.
 <dt>Scalabilità &ndash; architetture
-<dd><p>Scala è progettato per scalare da piccoli programmi interpretati a grandi applicazioni distribuite. Scala fornisce quattro meccanismi linguistici che promuovono la composizione scalabile dei sistemi: 1) tipi espliciti per la classe corrente (chiamati <em>selftype</em>); 2) generici e membri di tipo astratto; 3) classi annidate; e 4) composizione di <em>mixin</em> tramite <em>tratti</em>.
+<dd><p>Scala è progettato per scalare da piccoli programmi interpretati a grandi applicazioni distribuite. Scala fornisce quattro meccanismi linguistici che promuovono la composizione scalabile dei sistemi: 1) tipi espliciti per la classe corrente (chiamati <em>self-type</em>); 2) generici e membri tipo astratti; 3) classi annidate; e 4) composizione di <em>mixin</em> tramite <em>tratti</em>.
 <p>Nessun altro linguaggio fornisce tutti questi meccanismi, che insieme consentono di costruire applicazioni in maniera concisa e type-safe attraverso &#8220;componenti&#8221; riusabili. Come vedremo, molti modelli di progettazione e tecniche architetturali come l&#8217;iniezione di dipendenza (<em>dependency injection</em>) sono facili da implementare in Scala, evitando quel codice ridondante o quei lunghi file <abbr>XML</abbr> di configurazione che rendono fastidioso lo sviluppo in Java.
 <dt>Scalabilità &ndash; prestazioni
 <dd><p>Dato che il codice Scala può essere eseguito sulla <abbr>JVM</abbr> e sul <abbr>CLR</abbr>, i programmi traggono beneficio da tutte le ottimizzazioni di prestazione presenti in quelle macchine virtuali e da tutti gli strumenti di terze parti che sono di ausilio a efficienza e scalabilità, come analizzatori di codice, librerie di cache distribuita, meccanismi di clustering, <span class=baa>&amp;</span>c. Se fate affidamento sulle prestazioni di Java e C#, potete fare affidamento sulle prestazioni di Scala. Naturalmente, alcuni costrutti particolari del linguaggio e alcune parti della libreria potrebbero funzionare significativamente meglio o peggio delle opzioni alternative in altri linguaggi. Come sempre, dovreste analizzare il vostro codice e ottimizzarlo quando è necessario.