Image ventilateur qui tourne fond du ventilateur Circuit imprimé (image de titrage diode verte diode rouge
Administration

Scala

INFORMATIQUE > LANGAGES INFORMATIQUES

Scala est un langage informatique.


Date de création : 2003.

Auteur : Martin Odersky pour l'EPFL.

Paradigme(s) : langage impératif, orienté objet et fonctionnel.

Type d'exécution : compilé en bytecode Java (exécutable sur la JVM).

Typage : statique.

Système d'exploitation : JVM, CLR.

Licence : BSD.

Histoire

Scala a été conçu à l'École polytechnique fédérale de Lausanne (EPFL) pour permettre l'utilisation auusi bien de la programmation orientée objet que de la programmation fonctionnelle avec typage statique. Il s'agit donc d'une tentative pour concilier deux paradigmes à priori opposés.

Scala est un langage objet pur (classes, constructeurs, héritage,...) mais supporte aussi la programmation fonctionnelle. Les fonctions sont des objets et peuvent donc être passées en arguments à d'autres méthodes.

Caractéristiques

Ses principales caractéristiques sont les suivantes :
  • Scala compile vers du bytecode exécutable sur une machine virtuelle Java, ce qui permet l'utilisation conjointe de Java et Scala.
  • Scala possède l'inférence de types.
  • Scala permet la programmation asynchrone (programmation multi-thread comme en Erlang).
  • Scala permet la programmation à la Java mais avec toute la puissance de la programmation objet (héritage multiple).
  • Scala implémente le filtrage de motifs (Pattern Matchnin), sorte de switch case de haut niveau basé sur les types.
  • Les fonctions de Scala sont des objets de première classe ce qui accroit la sécurité.
  • Scala supporte nativement XML dont les balises sont des objets Scala.
  • Scala implémente l'évaluation paresseuse.

Généalogie

Scala a été influencé par Eiffel, Java, Haskell, Erlang, OCaml et Smalltalk.

Pour en savoir plus

Site officiel

Spécifications de Scala

Le site de la société fondée par Martin Odersky

Lift : framework écrit en Scala pour le développement des sites web

Scalatra micro-framework inspiré de Sinatra (Ruby)

Tutoriel sur OpenClassrooms

Tutoriel sur Developpez.com

Scala par l'exemple (PDF par Martin Odersky)

Bibliographie
CHIUSANO P., BJARNASON R. Functional Programming in Scala. Pap/Psc. Shelter Island, NY : Manning Publications, 2014. 320 p.ISBN : 978-1-61729-065-7.
HORSTMANN C. S. Scala for the Impatient. 2e éd. Boston : Addison Wesley, 2016. 384 p.ISBN : 978-0-13-454056-6.
HUNT J. Scala design patterns :  patterns for practical reuse and design. Cham : Springer, 2013. ISBN : 978-3-319-02192-8.
HUNT J. A beginner’s guide to scala, object orientation and functional programming. Cham, Switzerland : Springer, 2014. ISBN : 978-3-319-06776-6.
LAYKA V. Beginning Scala. 2. ed. New York, NY : Apress, 2015. (Books for professionals by professionals;  The expert’s voice in Java). ISBN : 978-1-4842-0232-6.
LEWIS M. C., LACHER L. L. Object-orientation, abstraction, and data structures using Scala. 2nd ed. Boca Raton : CRC press Taylor & Francis Group, 2017. 631 p.(Chapman & Hall/CRC textbooks in computing). ISBN : 978-1-4987-3216-1.
MÉNIER G. Scala pas à pas. Paris : Ellipses, 2014. 384 p.(Références sciences). ISBN : 978-2-340-00009-4.
« Programming in Scala: A Comprehensive Step-by-Step Guide, Third Edition (English Edition) eBook: Martin Odersky, Lex Spoon, Bill Venners: Amazon.fr: Boutique Kindle ». [s.l.] : [s.n.], [s.d.]. Disponible sur : < https://www.amazon.fr/Programming-Scala-Comprehensive-Step-Step-ebook/dp/B01EX49FOU/ref=sr_1_fkmr0_4?ie=UTF8&qid=1525024635&sr=8-4-fkmr0&keywords=lanagae+scala > (consulté le 29 avril 2018)