This blog is no longer updated. Please check my new blog here.

Julien Sobczak

Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition

Martin Odersky, Lex Spoon, Bill Venners

Un livre bien écrit et très complet. Programming in Scala est le livre idéal pour apprendre le langage. La connaissance d'autres langages est préférable car le livre, tout comme le langage, n'est pas des plus faciles prendre en main.

General

Paperback 0981531644 852 pages

Review

Martin Odersky, créateur de Scala, et co-auteur de cet ouvrage nous enseigne un langage fourmillant de bonnes idées mais dont la courbe d’apprentissage est plutôt raide.

Venkat Subramaniam, auteur de nombreux livres chez The Pragmatic Bookshelf, résume merveilleusement bien la situation “Scala is like the dragon in Avatar. It will try to kill you, but if you master it, you can fly great distances with it and have wonderful time.”

Scala propose une syntaxe riche qui permet d’écrire un code concis et souvent plus expressif. Le parfait mélange entre programmation objet et programmation fonctionnelle rend le langage étonnant et très attractif. Je regrette toutefois que le livre ne mette pas davantage l’accent sur la partie programmation fonctionnelle, plus méconnue de la plupart des lecteurs, issus, selon moi, du monde Java. D’ailleurs, contrairement à Java, Scala se prête merveilleusement bien au sujet des DSLs internes. Le modèle de programmation concurrente basé sur les acteurs, qui n’est pas nouveau puisque déjà présent dans le langage Erlang en 1985, est très intéressant aussi. Les javaistes, habitués à un modèle basé sur les Threads avec mémoire partagée, seront septiques d’autant plus que le livre ne développe pas suffisamment le sujet (d’autres livres sont entièrement consacrés).

Le livre s’achève sur un exercice de style vraiment remarquable. En moins de 200 lignes, les auteurs parviennent à créer un tableur à la Excel en Swing avec interpréteur de formules basique. Bluffant Cet exemple finira de convaincre les personnes doutant de l’utilité d’un tel langage sur la JVM.