Scala (Programmiersprache)
Scala (Scalable Language) ist eine Softwareprogrammiersprache, die objektorientierte Methoden mit funktionalen Programmierfähigkeiten kombiniert, die einen präziseren Programmierstil unterstützen als andere Allzwecksprachen wie Java. Das reduziert die Menge an Code, die Entwickler schreiben müssen. Ein weiterer Vorteil des kombinierten objektfunktionalen Ansatzes besteht darin, dass Features, die in kleinen Programmen gut funktionieren, dazu neigen, bei der Ausführung in größeren Umgebungen effizient zu skalieren.
Scala wurde erstmals 2004 veröffentlicht und enthält auch einige imperative, Statement-orientierte Programmierfunktionen. Darüber hinaus unterstützt es statische Typisierung, bei der Berechnungen als Anweisungen gebildet werden, die den Programmzustand zur Kompilierzeit ändern, ein Ansatz, der eine verbesserte Laufzeiteffizienz bieten kann. Es wird typischerweise auf einer Java Virtual Machine (JVM) implementiert, was die Sprache für den gemischten Einsatz mit Java-Objekten, -Klassen und -Methoden sowie für JVM-Laufzeitoptimierungen öffnet.
Scala enthält auch einen eigenen Interpreter, mit dem Entwickler Anweisungen direkt ohne vorherige Kompilierung ausführen können. Ein weiteres wichtiges Feature in Scala ist eine Bibliothek für parallele Sammlungen, die Entwicklern helfen soll, Probleme bei der parallelen Programmierung zu lösen. Pattern Matching gehört zu den Anwendungsgebieten, in denen sich solche parallelen Fähigkeiten als besonders nützlich erwiesen haben.
Scala wurde ursprünglich von Martin Odersky, einem Professor an der Ecole Polytechnique Federale de Lausanne in der Schweiz, geschrieben. Zu seinen früheren Arbeiten gehörte die Entwicklung der Funnel-Sprache, die einige Merkmale mit Scala teilte, jedoch keine JVMs als Ausführungs-Engine verwendete. Odersky begann 2001 mit der Arbeit an Scala und spielt weiterhin eine führende Rolle bei der Entwicklung; Außerdem war er 2011 Mitbegründer des Herstellers von Scala-Entwicklungstools Typesafe Inc.
Aktualisierungen an Java haben funktionale Programmiermerkmale hinzugefügt, die denen von Scala ähnlich sind. Einige Unternehmen sind daher in den letzten Jahren zu Java umgezogen.
Apache Spark, eine Open-Source-Datenverarbeitungs-Engine für Stapelverarbeitung, maschinelles Lernen, Datenstreaming und andere Arten von Analyseanwendungen, sind wichtige Einsatzgebiete von Scala. Spark ist in Scala geschrieben und die Sprache ist von zentraler Bedeutung für die Unterstützung verteilter Datensätze, die als kollektive Softwareobjekte behandelt werden, um die Ausfallsicherheit zu erhöhen. Spark-Anwendungen können jedoch neben Scala auch in Java und Python programmiert werden.