BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Scala 2.11 : La Dernière Version Majeure de Scala

Scala 2.11 : La Dernière Version Majeure de Scala

Typesafe a récemment annoncé la version 2.11 de Scala sous la licence standard BSD à 3 clauses. Il s'agit d'une version majeure qui comprend des améliorations de scalac, du REPL, de la modularisation/du packaging, des macros, de l'API de Collections et diverses corrections de bogues. Scala 2.11 cible Java 6, avec un support limité et expérimental de Java 8. Scala 2.11 n'est pas compatible au niveau binaire avec les séries 2.10, mais le code qui compile en 2.10 sans avertissement de dépréciation devrait compiler en 2.11.

Voici quelques-unes des nouvelles fonctionnalités de la version 2.11.

Collections. map, flatMap et collect de List ont vu leur performance améliorée. Les HashMap et HashSet immutables sont plus rapides, et leur empreinte mémoire plus faible. Les LongMap mutables et les AnyRefMap ont été ajoutées pour des performances accrues quand les clés sont de type Long ou AnyRef.

Compiler. Les compilations incrémentales et par lots ont été améliorées. Le backend .Net expérimental a été supprimé. -Xlint a été mis à jour avec l'ajout des termes inutilisés, des types et des avertissements d'import. GenBCode a été introduit. Il s'agit d'un back-end expérimental et optimisé pour scalac. Avec l'utilisation de -Ydelambdafy:method (expérimental), les fonctions anonymes sont compilées plus vite avec un bytecode plus petit. Il existe également l'élimination de branche par analyse constante.

REPL. L'interpréteur est maintenant un moteur de script conforme à la JSR 223. La commande de désassemblage :javap fonctionne maintenant avec Java 7. La nouvelle commande :kind aide à différencier les types de base des constructeurs de type.

Modularisation. Les Quasiquotes ont été introduites. Il s'agit d'une notation facile d'utilisation pour la manipulation d'arbres de syntaxe Scala. De nombreuses modifications significatives sur la réflection et les macros, dont les métaprogrammeurs Scala doivent prendre connaissance, ont également été apportées. La page Macros : changements dans Scala 2.11 fournit plus d'informations à ce propos.

Comme Scala 2.11 n'est pas compatible au niveau binaire avec la 2.10, il est nécessaire de mettre à jour son mécanisme de compilation pour utiliser les dépendances 2.11. Vous pouvez consulter la liste des projets Scala qui ont déjà été mis à jour avec la 2.11, dans la section Projets disponibles des notes de version de Scala 2.11. Il y a aussi un certain nombres de dépréciations, dont vous pouvez prendre connaissance dans la section Dépréciations. Par exemple, scala.actors, scala.concurrent.future et scala.concurrent.promise sont maintenant dépréciés.

Pour démarrer, vous pouvez utiliser le modèle Hello de l'Activateur de Type de Scala 2.11. L'AGL Scala pour Eclipse est disponible sur le site de mise à jour de Scala 2.11 pour Eclipse 4.2/4.3 (Juno/Kepler). Il est recommandé d'adresser tous les avertissements de dépréciation avant la mise à jour si elle s'effectue depuis la version 2.10. Si vous utilisez les modules XML, d'analyse ou Swing, vous devrez ajouter ces dépendances de manière explicite. Pour ceux qui ne sont pas encore prêts à passer à la version 2.11, la série 2.10 passe maintenant en mode maintenance et terminera vraisemblablement fin 2014 avec la version 2.10.5, deux ans après la publication initiale de la version 2.10.0.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT