Introduction à Scala
Historique
Fonctionnalités principales
Paradigmes objet et fonctionnel
Langages pour la JVM
Comparaison entre Java, C# et C++ ?
Applications utilisant le langage (Twitter, …)
Mettre en place
Installation de la distribution et du plug-in
Installation de SBT
Shell
Environnements de développement
Compilateur et interpréteur du langage
Utiliser Maven
Déployer sur un serveur
Concepts de base du langage
Syntaxe et notation infixe
Typage statique et types de base
Structures de contrôle
Packages et imports
Les classes (class et object)
Interfaces
Conversions implicites et mécanismes d’inférence
Hiérarchie d’héritage
Exceptions
Programmation fonctionnelle
Données non-mutables : variables, structures de données, objets, …
Les listes
Tuples et tables associatives (set)
Les différentes fonctions
Méthodes d’ordre supérieur
Les collections
For-expressions et for-loops
Générateurs
Filtres
Définitions
Transformation des for-expressions et des for-loops
Héritage et traits
Classes finales, scellées et abstraites
Énumérations
Redéfinition de membres
Implémenter des membres abstraits
Hiérarchie des types standards
Traits and mix-in composition
Pattern Matching
Match-expressions
Pattern types
Pattern guards
Patterns outside of match expressions
Élaboration des notions concepts avancées
Types génériques
Annotations
Les traits, les mixins
Le pattern matching (structure de contrôle case, les exceptions, la gestion des événements)
La récursivité
Les extracteurs
APIs et librairies
Collections
Manipuler XML
Utiliser des librairies de l’écosystème java
Tester avec Scala
La résolution de dépendance avec SBT
La TDD
Test avec specs2
Conclusion
Comparaison des performances
Scala vs Java 8 : enjeux et perspectives