Dopo più di 7 anni di sviluppo il team di Scala.js ha finalmente rilasciato la prima major release del progetto. Scala.js 1.0 non introduce però novità di rilievo, infatti per il rilascio di tale versione gli sviluppatori hanno focalizzati i propri interventi soprattutto sul miglioramento delle performance e sulla pulizia del codice.
Scala.js (un close compiler) "compila" il codice Scala e lo converte in Javascript. Sebbene il linguaggio Scala abbia un'origine diversa da Javascript non è raro che gli sviluppatori che hanno un'esperienza pregressa con quest'ultimo riescano a comprendere senza problemi anche il codice Scala.
Scala è un linguaggio di programmazione di tipo general-purpose multi-paradigma pensato appositamente per integrare le feature dei linguaggi orientati agli oggetti e dei linguaggi funzionali. Quando del codice Scala viene compilato si ottiene del Java bytecode che può essere eseguito tramite la JVM (Java Virtual Machine).
Scala.js è un progetto pensato per realizzare front-end web application tramite Scala, è inoltre in grado di interfacciarsi, tramite un pratico sistema di plugin, ad una vasto ventaglio di librerie e framework Javascript. Gli sviluppatori indipendenti potranno utilizzare ad esempio React o AngularJS per realizzare l'interfaccia utente del proprio applicativo.
A partire da questa release Scala.js compilerà il codice seguendo la specifica tecnica ES 2015. Il team ha selezionato tale versione di ECMAScript perché viene ormai supportata da tutti i Javascript engine presenti sul mercato. Inoltre ES 2015 consente una migliore visualizzazione delle stack trace e dei messaggi di errore all'interno dei debugger.
Scala.js 1.0 non è compatibile a livello binario con le precedenti build, dunque gli sviluppatori che vogliono sfruttare la nuova release dovranno necessariamente ricompilare il proprio codice con Scala.js 1.0. I developer del progetto hanno anche rinominato vari componenti in modo da renderli maggiormente accessibili agli sviluppatori indipendenti, ad esempio:
org.scalajs.core.ir
ora è diventatoorg.scalajs.ir
;org.scalajs.core.tools.io
è stato sostituto dajava.nio.file.Path
eorg.scalajs.linker
;org.scalajs.core.tools.linker
è stato suddiviso inorg.scalajs.linker
eorg.scalajs.linker.interface
.
Via Scala.js