English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Scala est l'abréviation de Scalable Language, c'est un langage de programmation multivariante
Martin Odersky de l'École polytechnique fédérale de Lausanne (EPFL) en2001année, le travail basé sur Funnel a commencé à concevoir Scala.
Funnel est un langage de programmation qui combine les idées de programmation fonctionnelle et les réseaux de Petri.
Les travaux précédents d'Odersky étaient Generic Java et javac (compilateur Java de Sun). Scala pour la plate-forme Java a été publiée en2003fin d'année/2004décembre2004Année6octobre. La deuxième version du langage, v2.0, publiée en2006Année3octobre.
à2009Année9octobre2.7.6 Octobre, la dernière version est la version 2.8Les fonctionnalités prévues incluent la réécriture de la bibliothèque Scala (Scala collections library), les paramètres nommés et les paramètres par défaut des méthodes, les objets de paquet (package object), et Continuation.
2009Année4En octobre, Twitter a annoncé qu'ils avaient déplacé la plupart de leurs programmes backend de Ruby vers Scala, et le reste est également prévu pour être déplacé. De plus, Wattzon a déclaré publiquement que son entire plateforme est écrite sur l'infrastructure Scala.
Scala est un langage orienté objet pur, où chaque valeur est un objet. Le type de données et le comportement des objets sont décrits par les classes et les traits.
Il y a deux voies pour étendre le mécanisme d'abstraction de classe : l'une est l'héritage de sous-classe, et l'autre est le mécanisme de mixin flexible. Ces deux voies peuvent éviter les problèmes de multiples héritages.
Scala est également un langage fonctionnel, et ses fonctions peuvent être utilisées comme des valeurs. Scala fournit une syntaxe légère pour définir des fonctions anonymes, prend en charge les fonctions de haut niveau, permet de嵌套 des fonctions à plusieurs niveaux, et prend en charge la currying. Les case classes Scala et leur matching intégré sont équivalents aux types algébriques couramment utilisés dans les langages de programmation fonctionnels.
De plus, les programmeurs peuvent utiliser le matching de modèle Scala pour écrire des codes similaires aux expressions régulières pour traiter les données XML.
Scala possède un système de types, qui garantit la sécurité et la cohérence du code par des vérifications à la compilation. Le système de types prend en charge les caractéristiques suivantes :
Classes génériques
Covariance et contravariance
Annotations
Contraintes des limites des paramètres de type
Utilisez les catégories et les types abstraits comme membres d'objets
Types composés
Spécifiez explicitement le type lorsque vous vous référez à vous-même
Vues
Méthodes polymorphes
La conception de Scala repose sur un fait, à savoir que dans la pratique, le développement d'applications spécifiques à un domaine nécessite souvent des extensions de langage spécifiques à ce domaine. Scala fournit de nombreux mécanismes de langage uniques qui peuvent être ajoutés facilement et sans effort sous forme de bibliothèques :
Toute méthode peut être utilisée comme opérateur préfixe ou suffixe
Les closures peuvent être construites automatiquement en fonction du type attendu.
Scala utilise les Acteurs comme modèle de concurrence, les Acteurs sont des entités similaires aux threads, qui envoient et reçoivent des messages par courrier électronique. Les Acteurs peuvent réutiliser les threads, donc on peut utiliser des millions d'Acteurs dans un programme, tandis que les threads ne peuvent créer que des milliers. En2.10Dans les versions suivantes, Akka sera utilisé comme implémentation par défaut pour les Acteurs.
2009Année4En juillet, Twitter a annoncé qu'il avait déplacé la plupart de ses programmes backend de Ruby vers Scala, et les autres parties sont également prévues pour être déplacées.
De plus, Wattzon a ouvertement déclaré que toute sa plateforme est écrite sur une infrastructure Scala.
Le groupe UBS utilise Scala pour des produits généraux.
Coursera utilise Scala comme langage serveur.
Voici quelques exemples :3Voici quelques-unes des frameworks Web Scala les plus populaires à l'heure actuelle :