Avez-vous besoin de connaître Java avant d'essayer Scala

15

Je suis intéressé à apprendre Scala. J'ai beaucoup lu à ce sujet, mais beaucoup de gens l'apprécient car il a un modèle d'acteur qui est meilleur pour la concurrence, il gère le XML de bien meilleure manière, résout le problème des fonctions de première classe.

Ma question est la suivante: avez-vous besoin de connaître Java pour comprendre / apprécier la façon dont les choses fonctionnent dans Scala? Est-il préférable de commencer par essayer Java, puis d'essayer Scala ou vous pouvez démarrer Scala sans aucun backround java?

gizgok
la source
5
Avez-vous besoin d'un biface pour apprécier le fonctionnement des scies? : D
back2dos
lol, je voterais pour cette réponse.
gizgok

Réponses:

17

Scala est sa propre langue et ne requiert pas à elle seule la connaissance des langues existantes. Si vous le vouliez, vous pourriez apprendre le scala comme première langue. Sur la page Learning Scala de leur site Web , il existe des points d'entrée au didacticiel pour différents niveaux d'expérience, allant des programmeurs débutants aux chercheurs en langage de programmation aux experts en programmation fonctionnelle.

La plupart de la documentation est concentrée sur les personnes qui savent programmer, malheureusement, mais j'ai en fait travaillé à travers certains des tutoriels Scala. C'est pas si mal. On s'attend cependant à ce que vous compreniez certains concepts de base.

Thomas Owens
la source
4
Thomas a complètement raison. Je veux seulement ajouter qu'une partie de l'attrait de Scala est que vous pouvez réutiliser la grande bibliothèque standard de klaxon de Java. Cela peut ou non être important dans votre cas, mais si c'est le cas, l'expérience antérieure avec Java sera évidemment très utile, car vous ne pouvez pas vous empêcher d'avoir beaucoup appris sur la bibliothèque standard.
Kilian Foth
@Kilian, j'y ai pensé. J'apprends encore Scala et je n'ai encore rien fait de significatif avec ça, mais je ne sais pas à quel point il est important de connaître Java pour pouvoir utiliser une bibliothèque Java dans Scala. Ce n'est pas comme si vous tombiez dans la syntaxe / le style Java pour appeler un JAR précompilé à partir de Scala.
Thomas Owens
1
Pour à peu près toutes les plates-formes modernes, il faut beaucoup plus de temps pour apprendre la bibliothèque standard que pour apprendre la syntaxe du langage. Il y a donc un avantage à connaître les bibliothèques Java si vous essayez d'apprendre Scala.
Jeremy
16

Java signifie deux choses différentes:

  1. le langage Java - cela inclut le langage, avec sa syntaxe, ses règles, ses fonctionnalités et sa sémantique générale
  2. la plate-forme Java - cela inclut le runtime (JVM), la bibliothèque standard complète et un certain nombre de frameworks / bibliothèques populaires. Notez qu'il existe également d'autres "runtimes" Java tels que l'exécution en JavaScript après la compilation croisée via GWT, ou Java sur Android, qui s'exécute également dans un runtime différent

Le langage Java et Scala fonctionnent tous les deux sur la même plate-forme. AFAIK Scala peut appeler le code Java assez facilement, donc s'il y a un réel intérêt à apprendre Java à comprendre / exploiter Scala, c'est de comprendre comment cela fonctionne et comment utiliser au mieux le code Java à partir d'une application Scala. En tant que langage, Java est peu susceptible de vous enseigner quoi que ce soit que C # ne vous aurait pas enseigné à ce jour (j'ai supposé à partir de votre profil que vous avez une certaine expérience C #).

L'analogie .NET de cette question serait:

Avez-vous besoin de connaître C # / VB.NET avant d'essayer F #?

Dans les deux cas, la réponse est un "non" assez ferme .

back2dos
la source