Scala 2.11.0 è l'ultima versione del noto linguaggio concepito per associare le caratteristiche del paradigma Object Oriented a quelle della programmazione funzionale; l'ennesima stabile arriva dopo il rilascio di ben 4 Release Candidate e non dovrebbe contenere alcuna modifica a livello di codice rispetto alla RC più recente della quale migliorerebbe soltanto la documentazione disponibile.
La serie 2.11.x ha come target Java 6 a cui si aggiunge un supporto in fase di sperimentazione per Java 8, in quest'ultimo caso però, sia la lettura del bytecode che il parsing dei sorgenti presenterebbero ancora dei limiti che dovrebbero essere superati grazie alle implementazioni successive; è comunque da segnalare che Scala 2.11.0 non è compatibile a livello binario con la serie 2.10, motivo per il quale eventuali migrazioni potrebbero non rivelarsi indolori, soprattutto nel caso in cui si adottino API sperimentali.
Per quanto riguarda le nuove features, gli sviluppatori hanno effettuato un'importante opera di bugfixing e di miglioramento delle novità introdotte con la serie 2.10, in particolare al fine di ridurre il consumo di memoria e di migliorare le prestazioni, da questo punto di vista si inquadra un'ulteriore implementazione a carico delle Collection con filtri più avanzati per HashMaps
e HashSet
o il miglioramento negli arrotondamenti di BigDecimal
che consente ora di evitare inutili conversioni in BigInt
.
La libreria standard del core di Scala avrebbe perduto circa un quinto del proprio bytecode, per cui alcuni moduli come per esempio quelli per Swing e per l'XML saranno disponibili separatamente; a questa novità si aggiunge una maggiore modularizzazione del compilatore studiata appositamente per rendere indipendenti tra loro lo Scala Presentation Compiler, ScalaDoc e Read-Eval-Print-Loop; con la futura serie 2.12 si dovrebbe avere anche un abbandono del packaging di questi moduli in scala-compiler.jar
.
Da segnalare anche una nuova modalità (sperimentale) per la compilazione delle closures, il progetto Sala.js per fornire un back-end JavaScript per Scala 2.11.x, l'ottimizzazione delle performances del compilatore batch, la compatibilità con Java 7 del comando :javap
per la decompilazione del bytecode e la rimozione dal compilatore backend .NET in fase sperimentale.
Via Scala Lang