Kann jemand mir helfen zu verstehen, warum Leute Scala über Java für Funken benutzen? Ich habe recherchiert, konnte aber keine solide Antwort finden. Ich weiß, dass beide gut funktionieren, da beide auf JVM laufen und ich weiß, dass wir funktional und OOP-Sprache sind.
Danke
Spark wurde in Scala geschrieben. Spark kam auch heraus, bevor Java 8 verfügbar war, was die funktionale Programmierung mühsamer machte. Außerdem ist Scala näher an Python, während es noch in einer JVM läuft. Data Scientists waren die ursprünglichen Zielbenutzer von Spark. Data Scientists hätten traditionell mehr Hintergrundwissen in Python, so dass Scala sinnvoller wäre, wenn sie es verwenden würden, dann gehe direkt zu Java
Hier ist ein direktes Zitat von einem der Jungs, die ursprünglich geschrieben haben, dass sie Funken von einem Reddit AMA geschrieben haben. Die Frage war:
F:
Wie wichtig war es, Spark in Scala zu erstellen? Wäre es machbar / realistisch gewesen, es in Java zu schreiben oder war Scala für Spark grundlegend?
A von Matei Zahara:
Zu der Zeit, als wir anfingen, wollte ich wirklich ein PL, das eine sprachintegrierte Schnittstelle unterstützt (wo Leute Funktionen inline schreiben usw.), weil ich dachte, dass dies die Art wäre, wie die Leute diese Anwendungen programmieren würden, nachdem sie Forschungssysteme gesehen hatten hatte es (speziell Microsofts DryadLINQ). Ich wollte aber auch auf der JVM sein, um einfach mit dem Hadoop Dateisystem und den Datenformaten interagieren zu können. Scala war die einzige etwas populäre JVM-Sprache, die diese Art von funktionaler Syntax bot und auch statisch getippt wurde (wodurch wir etwas Kontrolle über die Performance hatten), also haben wir das gewählt. Heute könnte es ein Argument geben, die erste Version der API in Java mit Java 8 zu erstellen, aber wir haben auch von anderen Aspekten von Scala in Spark profitiert, wie Typ-Inferenz, Mustervergleich, Akteur-Bibliotheken, usw.
Bearbeiten
Heres der Link incase Leute waren mehr daran interessiert, was Matei zu sagen hatte: Ссылка
Tags und Links scala java apache-spark