Scala wird als skalierbare Sprache berechnet, eine Funktion, die sogar im Namen enthalten ist :
Der Name Scala ist ein Sinnbild für "Skalierbarkeit" und "Sprache", was bedeutet, dass das Unternehmen darauf ausgelegt ist, mit den Anforderungen seiner Benutzer zu wachsen.
Was bedeutet "skalierbar" im Kontext von Scala? Was macht Scala skalierbarer als beispielsweise Java?
scala
scalability
Prasonscala
quelle
quelle
Antworten:
Wenn Martin Odersky über Scala als skalierbare Sprachauswahl spricht , meint er, dass die Sprache selbst geeignet ist für:
Er bezieht sich ganz sicher nicht auf Skalierbarkeit aus der Sicht der Leistung!
Die Tatsache, dass er behaupten kann, dass Scala für die schnelle Implementierung von Skripten genauso geeignet ist wie für die Bereitstellung in großen Unternehmen, ist ungefähr wie folgt:
Scripting
Scala eignet sich hervorragend zum Schreiben von Skripten, da es aufgrund seiner Typinferenz und seines funktionalen Stils sowohl prägnant als auch zum Schneiden und Zerteilen von Sammlungen usw. ist.
Anwendungen
Scala eignet sich hervorragend zum Schreiben von Anwendungen, da es sich um eine statisch überprüfte Sprache handelt, die einige hervorragende Funktionen für das Arbeiten in funktionalen und imperativen Stilen bietet. Scala ist mit Java kompatibel, sodass Sie ein riesiges Bibliotheks-Ökosystem nutzen können.
Unternehmensbereitstellung
Scala wird zu Bytecode kompiliert und läuft auf der Java Virtual Machine, einem stabilen System mit großer Leistung im Vergleich zu (sogenannten) dynamisch typisierten (dh untypisierten) Sprachen. Auch hier bedeutet die Tatsache, dass es statisch typisiert ist, dass Refactoring auf großen Codebasen viel einfacher ist.
quelle
Was Odersky sagt, ist (Folie 11, http://www.slideshare.net/rawwell/scalaliftoff2009pdf ):
Das heißt, skalierbar ist in Bezug auf Flexibilität und Ausdruckskraft gemeint. Sie können eigene Kontrollstrukturen anlegen. ZB ist das Actors Framework eine Bibliothek, aber es sieht so aus, als würde es Sprachfunktionen verwenden.
Dies bedeutet, dass Scala entsprechend der benötigten Abstraktion skaliert wird, nicht unbedingt in Bezug auf "Beantwortung von 1.000.000 Anfragen in einer Sekunde" (aber Scala ist auch hier stark).
quelle
Was die Skalierbarkeit von Java in der Praxis einschränkt, ist nicht die JVM, sondern die Schwierigkeit, richtigen gleichzeitigen Code zu schreiben. Scala erleichtert dies durch die Unterstützung der funktionalen Programmierung und des Darstellermodells.
Java kann sehr skalierbar sein, wenn die Parallelität einfach ist, z. B. auf Webservern (jede Anforderung ist nahezu unabhängig). Wenn es jedoch darum geht, eine einzelne langfristige Aufgabe zu parallelisieren, kann es ein echter Kampf sein, die richtigen Entscheidungen zu treffen.
quelle
Scala steht für skalierbare Sprache , es hat nichts mit Leistungsmerkmalen zu tun. Eine bessere Erklärung finden Sie hier: http://www.artima.com/scalazine/articles/scalable-language.html
quelle
Dies ist nicht erforderlich, da die Sprache selbst skalierbarer als Java ist, da beide Sprachen denselben Bytecode erzeugen können.
Das Actor-Modell und der funktionale Programmierstil können jedoch die Skalierbarkeit verbessern (indem sie die korrekte Parallelprogrammierung vereinfachen und den Synchronisationsbedarf verringern).
Um einen besseren Einblick zu erhalten, werfen Sie einen Blick auf das Darstellermodell und vergleichen Sie es mit der traditionellen Java-Anwendung mit mehreren Threads:
Mit dem Akka-Framework können Sie sogar hochskalierbare Java-Anwendungen erstellen, ohne in Scala zu codieren:
quelle