Depuis début juin 2011, je développe un site internet en Scala, pour le compte d’une jeune entreprise. Lorsque j’en parle avec des amis, ils me demandent souvent : mais comment fais-tu pour apprendre Scala ? Et bien comme Java, il y a fort longtemps : avec des livres. A l’heure d’Internet, finalement un bon livre me permet de progresser et d’apprendre. J’ai ensuite travaillé en août avec un expert Scala, qui m’a donné beaucoup de conseils et une bonne formation. Mais revenons à cette histoire de livres. Voici mon retour sur 3 livres que j’ai acheté pour apprendre Scala.
Programming Scala de Dean Wampler et Alex Payne est publié chez O’Reilly. Livre datant de fin 2009, il couvre en 449 pages les bases du langage. Pour cela, le style impératif vous emmène petit à petit vers Scala. Il ressemble à un livre de cuisine. C’est aussi le reproche que je lui fais avec le recul : finalement, les bases ne sont pas toujours expliquées, et je l’ai trouvé trop compliqué pour débuter.
Par rapport aux 2 autres livres présentés ci-dessous, ce livre traite cependant des outils et des librairies. Les développeurs qui écrivent des librairies ou des frameworks seront comblés par exemple par un chapitre sur le système de type et particulièrement les types paramétrés (l’équivalent des Generics en Java).
« Beginning Scala » est un livre étonnant. David Pollak est le fondateur du framework web Lift. Dick Wall et David Pollack ont été interviewé par InfoQ la semaine passée, et David est assez radical sur les raisons pour lesquelles Scala pennera à s’installer durablement. Si vous êtes à cours d’arguments pour dire du mal de Scala, vous pouvez vous ressourcer en lisant en détail son interview. David est un fan de Scala, avec cependant un œil réaliste sur la situation pour l’instant.
Beginning Scala est un livre de mai 2009. Je le préfère au premier, car il a été écrit par un bon gros développeur Java, chose que je suis aussi depuis février 1996. L’approche est moins théorique, moins « universitaire » et plus pragmatique. Le livre vous donne vraiment de quoi vous lancer. Mais avec un peu de recul, je trouve parfois que les explications sont incorrectes ou un peu bancale. J’ai vraiment avancé grâce à ce livre. Le style ne se veut pas ampoulé ou pédant, mais simple. L’auteur veut vous faire partager sa passion pour Scala, sans essayer de placer des termes abscons. A découvrir, d’autant plus que le livre est assez rapide à lire.
Le troisième ouvrage est « Programming in Scala » 2ème édition, par Martin Odersky, Bill Venners et Alex Spoon. Excellent ouvrage réactualisé fin 2010 pour Scala 2.8, c’est un très gros livre de 855 pages, édité chez Artima. Odersky est l’inventeur de Scala. Professeur en Suisse à l’Ecole Polytechnique de Lausanne, c’est aussi le dirigeant de la société TypeSafe Inc.
Ce livre est le plus complet sur Scala. Il vous donnera réellement les connaissances nécessaires pour comprendre et apprendre correctement le langage. Ce que j’apprécie, c’est son accessibilité. Il suffit de travailler un chapitre chaque jour pour avoir vraiment l’impression d’avancer. Comptez 1 à 2 mois de travail, ce qui n’est rien dans la vie d’un développeur.
Cette édition couvre aussi les nouveautés de Scala 2.8, en attendant la version 2.9. L’API Collection, les implicits, la manipulation des listes, le Combinator Parsing utilisé dans Anorm par Play! Scala, les acteurs et la gestion de la concurrence : tout est traité en détail. Il se dit que le moteur des Actors actuels de Scala sera complété par le modèle Akka. Allez lire l’interview de M.Odersky que Romain Maton, indépendant depuis peu, a réalisé sur son blog.
En conclusion donc, victoire par KO de l’ouvrage de M.Odersky, puis ensuite le livre de David Pollak et enfin le livre d’O’Reilly. Attention à ne pas acheter un livre trop ancien, car le langage évolue rapidement. C’était le cas il y a quelques années avec Java. J’ai acheté plusieurs éditions de « Java in a Nutshell » pour moi et pour les développeurs que j’encadrais. Je conseille vivement d’acheter le livre d’Odersky.
Je vous laisse, j’y retourne. Je vous raconterai une prochaine fois tout le bien et tout le mal que je pense de Scala. Mais ça sera pour un prochain article.
0 no like
Je confirme ton impression pour le O’Reilly : j’ai commencé par ce livre et j’ai laissé tomber au bout de 100 pages : trop chiant pour débuter, il ne donne pas envie de faire du scala. Je referai une tentative avec un autre livre…
+1 pour le bouquin O’Reilly, dur pour débuter
Sinon pour ceux qui veulent débuter vraiment doucement et rapidement sans trop approfondir et sans lire un gros bouquin tout de suite:
Scala school de twitter: http://twitter.github.com/scala_school/
et « Scala for the impatient » de typesafe: http://typesafe.com/resources/scala-for-the-impatient
+1 « Programming in Scala » est à mon avis le plus intéressant pour les débutants en programmation fonctionnelle.
+1 « Programming in Scala », j’ai adoré ce bouquin. Il est très bien construit et très didactique : la progression est à la fois rapide sans noyer le lecteur et mes exemples sont très bien choisis … Un must read pour qui veut se lancer dans le développement Scala !
Je suis bien d’accord avec ton analyse et arrive au meme constat. J’ai cependant lu dans le sens inverse ces 3 livres et je rajouterais que le livre de David Pollak est un peu lourd a partir de la moitié car il tourne au listing sans fin avec des explications, ce qui est un peu fatiguant et je ne suis pas convaincu que cela aide.
Un petit ebook gratuit:
A Scala Tutorial for Java programmers
http://www.scala-lang.org/docu/files/ScalaTutorial.pdf
Le livre en cours de rédaction par Bruce Eckel « Scala, as a first programming language » semble très intéressant comme introduction à Scala. Pour tous ceux qui n’ont pas pu venir à l’AlpesJUG, voici les slides :
http://tinyurl.com/scalafirst
Ca ne pique ni les yeux ni la tête et donc on entre en Scala assez facilement sans avoir à se prendre tout d’un coup.
et pour ce qui ne sont pas encore sur de vouloir acheter un livre d’un langage qu’il ne connaisse que de nom… la première édition est disponible gratuitement sur le site .
On sera en lisant cette edition si on adhère à scala 🙂 ou pas 🙁