11
votes

Quelles sont les meilleures fonctionnalités de Scala?

Je peux dire que j'adore vraiment Scala, mais je voudrais maintenant connaître les fonctionnalités que vous ne pouvez pas vivre sans quand travailler avec Scala? Qu'en est-il de Scala 2.8?


1 commentaires

Désolé pour ça. J'ai changé cela pour être la communauté wiki!


4 Réponses :


13
votes

Si je devais revenir à Java, voici ce que je manquerais le plus: fermetures, fonctions d'ordre supérieur, assortiment de modèles, classes de cas et l'accent mis sur l'immuabilité.

J'ai été sur 2,8 pendant un moment. Si je devais revenir à 2,7, la principale chose qui me manquerait est la consistance, la propreté et la richesse de l'API de 2,8 collections. C'est waaaaaay mieux les 2,7 choses. Mais je manquerais vraiment des arguments nommés et des arguments par défaut.


2 commentaires

+1. J'avais revu Java Collections juste l'autre jour et j'ai été surmonté avec le sentiment qu'il était intentionnellement conçu pour être la pire API de tous les temps.


Daniel, je pense que vous devez jeter un coup d'œil aux classes de collection de MFC;). Je pense que les collections de Java ne sont pas si mauvaises considérant qu'il n'y a pas de fonctions anonymes en Java.



11
votes

Le type Inference enregistre tellement de frappe inutile. mappe et foreach et similaire sur les collections sont super, en particulier en combinaison avec des itérateurs paresseux par défaut et une syntaxe de fonction vraiment facile.

Mais, en tant que quelqu'un qui fait beaucoup de calcul scientifique, ce que le plus oublié est de pouvoir écrire un code hautes performances, enveloppez-le dans des classes efficaces, puis utilisez des cartes et des opérateurs mathématiques (+, * , peu importe) manipuler ces constructions de haut niveau la façon dont je pense réellement à eux.

Tant que 2,8 vs 2.7 - L'amélioration est assez incrémentielle de mon point de vue. C'est un peu mieux dans de nombreux domaines; Il y a peu à pointer pour dire et dire: "Oh wow, ça!". Je m'attends à ce que la nouvelle annotation spécialisée m'aidera beaucoup, mais je ne l'ai pas encore vue en action dans la bibliothèque, alors je n'ai pas à la source de jugement.


0 commentaires

8
votes

Je pense que ce n'est pas une fonctionnalité, mais la concision que Scala atteint est ce que j'aime le plus.

Ceci n'est évidemment possible que possible en raison de l'inférence, des fermetures, un excellent système de type, etc. Je ne pense pas simplement que vous pouvez le casser à une ou deux caractéristiques. Ils travaillent ensemble et le résultat, code concis, c'est ce que j'appellerais la fonctionnalité de tueur.


0 commentaires

10
votes

J'aime écrire à Scala. C'est la caractéristique n ° 1 dans mon livre :)

Je peux juste continuer avec ce que je veux au lieu de danser à travers les cerceaux de Java:

  • VAL / VAR signifie que je n'ai pas à écrire le type deux fois
  • fermetures signifie que je n'ai pas besoin d'écrire beaucoup d'interfaces anonymes et de réutiliser beaucoup plus de code
  • Les paramètres nommés signifient que je n'ai pas à retenir la position de chaque argument - idéal pour la lecture et l'écriture
  • Les classes de cas signifient que je reçois une totring et un égal gratuitement ... fait du débogage beaucoup plus facile!
  • Une API décente pour les collections (par exemple la carte, pliose) signifie que je peux dire ce que je veux faire au lieu de danser la danse d'itération

    Quant à 2,8 VS 2.7 ... Je n'ai jamais vraiment passé de temps de qualité avec 2,8; -)


0 commentaires