Bon, je n'ai pas encore fait de Scala mais j'en ai un peu lu ces derniers temps et ça ne m'a pas donné envie du tout. OK, c'est beaucoup plus concis que Java (pas difficile), mais c'est un peu poussé à l'extrême je trouve. Il y a plein de raccourcis d'écriture qui permettent de gratter quelques caractères mais qui je trouve ont deux gros défauts :
- Ils rendent la lecture plus difficile
- À cause d'eux, il y a très souvent deux, trois ou davantage de façons d'écrire la même chose en Scala
Par exemple le caractère "_" qui sert tantôt de nom court pour les tuples (t._1, t._2, etc), tantôt d'opérateur magique pour transformer une méthode en fonction (

cette différence d'ailleurs), ou encore de nom de paramètre par défaut histoire de gagner 4 caractères quand on écrit une lambda. De même, je trouve que le mécanisme de paramètres implicites qu'a déjà expliqué Flanker est une catastrophe, quand on lit du code en-dehors d'une IDE capable de comprendre le Scala (et le langage est tellement ambigu qu'il n'y a pas beaucoup d'IDE qui s'en sortent) c'est un enfer, impossible de savoir ce que fait un appel de fonction auquel il manque un paramètre (à supposer qu'on se rende compte qu'il manque un paramètre) : il peut venir de n'importe où, y compris d'un autre fichier. Pour faire des revues de code c'est un vrai bonheur.
Je n'ai encore expérience dans ce langage mais j'ai l'impression qu'ils ont tellement essayé d'y coller toutes les features d'autres langages, aussi bien fonctionnels que procéduraux, que ça en fait un mélange beaucoup trop complexe à maitriser et dans lequel il y a toujours 50 solutions à un même problème. Pas convaincu.