Developpez.com

Le Club des Développeurs et IT Pro

Le langage Scala s'ouvre au Web

Scala.js permet de compiler du code Scala en JavaScript

Le 2015-03-25 17:37:10, par Siguillaume, Expert éminent sénior


Les concepteurs du langage Scala ont publié un nouveau compilateur appelé scala.js.
Avec cette nouvelle extension, il devient possible pour les développeurs de créer, totalement en langage Scala, des applications Web.

Les principales caractéristiques de Scala.js sont :
  • Support natif de tous les modules Scala existants ;
  • Très bonne interopérabilité avec du code JavaScript. Il est par exemple possible d’utiliser JQuery ou HTML5 à partir du code Scala.js ;
  • Possibilité de générer des scripts JavaScript Source Maps avec un débogage en douceur ;
  • Bonne intégration avec l’outil de Google, Closure Compiler ;
  • Génération du JavaScript optimisé ;
  • Peut être facilement utilisé avec votre EDI favori pour Scala.


Scala.js introduit certaines bibliothèques spécifiques à JavaScript comme scala-js-jquery, scala-dom et scala-js-pouchdb, ainsi que le support de plusieurs frameworks, à l’instar des frameworks de test comme Utest et MiniTest, pour faciliter le développement d’applications Web robustes.

La documentation sur scala.js est assez fournie pour une prise en main en souplesse de ce compilateur. En plus, l’équipe de développement a mis en place un groupe de discussion et un salon de chat pour vos questions et vos retours d’expérience.

Il convient aussi de remarquer qu’avec la portabilité que lui apporte son exécution dans la JVM (Java Virtual Machine), et sa simplicité dans la programmation orientée objet, Scala consolide sa position face au géant Java, jugé par certains développeurs, trop exigeant par sa verbosité. D’ailleurs, la transition de Java à Scala, est facilitée par la capacité d’évoquer du code écrit en Scala à partir de programmes écrits en Java.

D’après Graham Tackley du quotidien britannique The Guardian, « Scala permet de faire plus, avec peu de code. Il apporte une bouffée d’air frais aux développeurs. »

Supporté en environnement Microsoft .Net, Scala présente un fort potentiel d’interopérabilité qui peut aller jusqu’au développement d’applications mobiles pour les différents systèmes d’exploitation mobile : Android, Windows Phone et iOS.

Pour rappel, Scala est le produit de longues années de recherches du professeur Martin Odersky de l’École polytechnique fédérale de Lausanne. Son objectif initial était d’unifier la programmation orientée objet et la programmation fonctionnelle, avec un typage statique.

Source : Site officiel de scala.js

Et vous ?

Utilisez-vous Scala ? Que pensez-vous du langage et de son ouverture au Web ?
  Discussion forum
5 commentaires
  • sjrd
    Expert éminent sénior
    Envoyé par yahiko
    Maintenant, la clé s'il veut percer dans le Web, c'est l'interopérabilité avec les bibliothèques JavaScript déjà existantes.
    Est-ce qu'il est facile de réutiliser une bibliothèque JS dans un projet Scala ? Là est tout le défi.
    Déjà résolu. Scala.js a une excellente interop avec JavaScript. Rien à voir avec GWT, PureScript, ClosureScript, ou même Dart. Il va bien au-delà de ça.

    Quelques exemples avec DOM : http://scala-js.github.io/scala-js-dom/
    Mais ce n'est pas réservé au DOM ou à quelques bibliothèques sélectionnées. Ça marche avec n'importe quelle bibliothèque JavaScript.

    Envoyé par xurei
    Il ne reste plus qu'à avoir un compilateur vers du asm.js, et ce sera Noël toute l'année !
    asm.js est totalement non pertinent pour Scala.js. Il est prévu pour des langages à gestion de la mémoire manuelle, tels que C. Pas du tout pour des langages garbage-collectés. C'est expliqué dans la FAQ.
  • yahiko
    Rédacteur/Modérateur
    Intéressant. En effet la manière de Scala.js de faire le pont avec une bibliothèque JS est très proche de la manière utilisée par TypeScript.
    Ca me plaît beaucoup. Je vais ajouter ce langage dans mon radar dans ce cas
  • yahiko
    Rédacteur/Modérateur
    Du peu que j'en sais, je ne pense que du bien de ce langage, en tant que tel.

    Maintenant, la clé s'il veut percer dans le Web, c'est l'interopérabilité avec les bibliothèques JavaScript déjà existantes.
    Est-ce qu'il est facile de réutiliser une bibliothèque JS dans un projet Scala ? Là est tout le défi.
  • xurei
    Membre averti
    Excellente nouvelle ! Il ne reste plus qu'à avoir un compilateur vers du asm.js, et ce sera Noël toute l'année !
  • polaroid62
    Membre habitué
    Langage prometteur , là je commence un tuto avec le framework play et les changements apportés par rapport à ce que j'avais pu apercevoir vite fait par le passé sont prometteurs . Pouvoir gérer son appli directement dans le navigateur et gérer ses fichiers dans un IDE si on le souhaite je trouve ça sympa.