English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Scala ist die Abkürzung für Scalable Language und ist eine mehrparadigmatische Programmiersprache
Martin Odersky von der Eidgenössischen Technischen Hochschule Lausanne (EPFL) von2001im Jahr begann die Arbeit auf Basis von Funnel, um Scala zu entwerfen.
Funnel ist eine Programmiersprache, die funktionalen Programmiergedanken und Petri-Netze kombiniert.
Odersky hat zuvor an Generic Java und javac (Sun Java Compiler) gearbeitet. Die Scala für die Java-Plattform wurde im2003im Jahr/2004im Jahr, wurde auf der .NET-Plattform veröffentlicht.2004Year6Monat. Die zweite Version des Spraches, v2.0, veröffentlicht im2006Year3Monat.
Bis2009Year9Im Monat ist die neueste Version die Version2.7.6 .Scala 2.8Erwartete Eigenschaften umfassen die Neugestaltung der Scala-Bibliothek (Scala collections library), benannte Parameter und Standardparameter der Methoden, Package-Objekte (package object) und Continuation.
2009Year4Im Monat kündigte Twitter an, dass sie die meisten Backend-Programme von Ruby auf Scala migriert haben und auch die restlichen Teile planen, zu migrieren. Darüber hinaus hat Wattzon öffentlich bekannt gegeben, dass seine gesamte Plattform bereits auf Scala-Infrastruktur geschrieben ist.
Scala ist eine rein objektorientierte Sprache, bei der jeder Wert ein Objekt ist. Der Datentyp und das Verhalten des Objekts werden von Klassen und Traits beschrieben.
Die Erweiterung der Mechanismen der Klassenabstraktion gibt es in zwei Arten: Eine Möglichkeit ist die Vererbung von Unterklassen, die andere Möglichkeit ist die flexible Mixin-Mechanismus. Beide Ansätze können die Probleme der Mehrfachvererbung vermeiden.
Scala ist auch eine funktionale Sprache, deren Funktionen auch als Werte verwendet werden können. Scala bietet ein leichtes Syntax, um anonyme Funktionen zu definieren, unterstützt höhere Funktionen, ermöglicht das Einfügen mehrerer Ebenen von Funktionen und unterstützt Currying. Die case class von Scala und ihre eingebauten Modellabgleiche entsprechen den algebraischen Typen, die in funktionalen Programmiersprachen häufig verwendet werden.
Noch weiter geht der Programmierer, der Scala-Modellabgleich verwendet, um XML-Daten mit Code ähnlich wie reguläre Ausdrücke zu verarbeiten.
Scala has a type system that ensures the safety and consistency of code through compile-time checks. The type system specifically supports the following features:
Generic Classes
Covariance and Contravariance
Annotations
Upper and lower bounds constraints on type parameters
Use classes and abstract types as object members
Composite Types
Explicitly specify the type when referring to oneself
Views
Polymorphic Methods
The design of Scala is based on the fact that in practice, the development of domain-specific applications often requires language extensions specific to that domain. Scala provides many unique language mechanisms that can be easily and seamlessly added as libraries:
Any method can be used as a prefix or suffix operator
Closures can be automatically constructed based on the expected type.
Scala uses Actors as its concurrency model, where Actors are entities similar to threads that send and receive messages through mailboxes. Actors can reuse threads, so millions of Actors can be used in a program, whereas threads can only create thousands.2.10In later versions, Akka is used as the default Actor implementation.
2009Year4In the month, Twitter announced that they have already migrated most of their backend programs from Ruby to Scala, and the rest are also planning to migrate.
In addition, Wattzon has publicly declared that its entire platform is already written based on Scala infrastructure.
UBS Group uses Scala in general products.
Coursera uses Scala as a server-side language.
The following lists3The following are some of the currently popular Scala Web application frameworks: