Müssen Sie Java kennen, bevor Sie Scala ausprobieren

15

Ich bin daran interessiert, Scala zu lernen. Ich habe viel darüber gelesen, aber viele Leute schätzen es, weil es ein für die Parallelität besseres Akteurmodell hat, XML viel besser behandelt und das Problem erstklassiger Funktionen löst.

Meine Frage ist, müssen Sie Java kennen, um die Funktionsweise von Scala zu verstehen / zu schätzen? Ist es besser, zuerst Java zu testen und dann Scala zu testen, oder kann Scala ohne Java-Hintergrund gestartet werden?

Gizgok
quelle
5
Benötigen Sie eine Gabelung, um die Funktionsweise von Sägen beurteilen zu können? : D
back2dos
lol, ich würde diese Antwort positiv bewerten.
Gizgok

Antworten:

17

Scala ist eine eigene Sprache und erfordert an sich keine Kenntnisse der vorhandenen Sprachen. Wenn Sie möchten, könnten Sie Scala als Ihre erste Sprache lernen. Auf der Learning Scala-Seite ihrer Website finden Sie Einstiegspunkte für das Lernprogramm für verschiedene Erfahrungsebenen, angefangen bei erstmaligen Programmierern über Programmiersprachenforscher bis hin zu Experten für funktionale Programmierung.

Der größte Teil der Dokumentation richtet sich leider an Personen, die wissen, wie man programmiert, aber ich habe tatsächlich einige der Scala-Tutorials durchgearbeitet. Ist doch nicht so schlimm. Es wird jedoch erwartet, dass Sie bestimmte grundlegende Konzepte verstehen.

Thomas Owens
quelle
4
Thomas ist völlig richtig. Ich möchte nur hinzufügen, dass der Reiz von Scala darin besteht, dass Sie die gesamte große Standardbibliothek von Java wiederverwenden können. Das mag in Ihrem Fall wichtig sein oder auch nicht, aber wenn ja, dann sind Vorkenntnisse in Java natürlich sehr hilfreich, da Sie nicht umhin müssen, viel über die Standardbibliothek gelernt zu haben.
Kilian Foth
@Kilian Ich habe darüber nachgedacht. Ich lerne immer noch Scala und habe noch nichts Sinnvolles damit gemacht, aber ich bin mir nicht sicher, wie wichtig es ist, Java zu kennen, um eine Java-Bibliothek in Scala verwenden zu können. Es ist nicht so, dass Sie sich in Java-Syntax / -Stil vertiefen, um eine vorkompilierte JAR von Scala aufzurufen.
Thomas Owens
1
Für nahezu jede moderne Plattform dauert das Erlernen der Standardbibliothek viel länger als das Erlernen der Sprachsyntax. Wenn Sie also versuchen, Scala zu lernen, ist es von Vorteil, Java-Bibliotheken zu kennen.
Jeremy
16

Java bedeutet zwei verschiedene Dinge:

  1. die Java-Sprache - dies umfasst die Sprache mit ihrer Syntax, Regeln, Funktionen und allgemeinen Semantik
  2. die Java-Plattform - dies umfasst die Laufzeit (JVM), die gesamte Standardbibliothek und eine Reihe gängiger Frameworks / Bibliotheken. Beachten Sie, dass es auch andere Java- "Laufzeiten" gibt, die beispielsweise nach der Cross-Kompilierung durch GWT als JavaScript ausgeführt werden, oder Java auf Android, das ebenfalls in einer anderen Laufzeit ausgeführt wird

Die Java-Sprache und Scala laufen auf derselben Plattform. AFAIK Scala kann ganz einfach zu Java - Code aufrufen nach unten, so , wenn es irgendein wirkliches Interesse an Lernen Java zu verstehen / Leverage Scala, dann ist es zu verstehen , wie das funktioniert und wie Sie am besten Verwendung von Java - Code aus einer Scala App. Es ist unwahrscheinlich, dass Java Ihnen etwas beibringt, was C # Ihnen bisher nicht beigebracht hätte.

Die .NET-Analogie dieser Frage wäre:

Müssen Sie C # / VB.NET kennen, bevor Sie F # ausprobieren können?

In beiden Fällen lautet die Antwort ziemlich eindeutig "Nein".

back2dos
quelle