Scala (programming language)

Scala (programming language)

Scala (/ˈskɑːlə/ SKAH-lah) is a strong statically typed general-purpose programming language which supports both object-oriented programming and functional programming. Designed to be concise, many of Scala's design decisions are aimed to address criticisms of Java. The name Scala is a portmanteau of scalable and language, signifying that it is designed to grow with the demands of its users.

Comment
enScala (/ˈskɑːlə/ SKAH-lah) is a strong statically typed general-purpose programming language which supports both object-oriented programming and functional programming. Designed to be concise, many of Scala's design decisions are aimed to address criticisms of Java. The name Scala is a portmanteau of scalable and language, signifying that it is designed to grow with the demands of its users.
Date
enJuly 2022
Depiction
Scala-full-color.svg
Designer
Martin Odersky
Designer
Martin Odersky
Developer
enProgramming Methods Laboratory of École Polytechnique Fédérale de Lausanne
Developer
École Polytechnique Fédérale de Lausanne
FileExt
en.scala, .sc
Has abstract
enScala (/ˈskɑːlə/ SKAH-lah) is a strong statically typed general-purpose programming language which supports both object-oriented programming and functional programming. Designed to be concise, many of Scala's design decisions are aimed to address criticisms of Java. Scala source code can be compiled to Java bytecode and run on a Java virtual machine (JVM). Scala can also be compiled to JavaScript to run in a browser, or directly to a native executable. On the JVM Scala provides language interoperability with Java so that libraries written in either language may be referenced directly in Scala or Java code. Like Java, Scala is object-oriented, and uses a syntax termed curly-brace which is similar to the language C. Since Scala 3, there is also an option to use the off-side rule (indenting) to structure blocks, and its use is advised. Martin Odersky has said that this turned out to be the most productive change introduced in Scala 3. Unlike Java, Scala has many features of functional programming languages (like Scheme, Standard ML, and Haskell), including currying, immutability, lazy evaluation, and pattern matching. It also has an advanced type system supporting algebraic data types, covariance and contravariance, higher-order types (but not higher-rank types), anonymous types, operator overloading, optional parameters, named parameters, raw strings, and an experimental exception-only version of that can be seen as a more powerful version of Java's checked exceptions. The name Scala is a portmanteau of scalable and language, signifying that it is designed to grow with the demands of its users.
Hypernym
Language
Influenced
Ceylon (programming language)
Influenced
Ceylon (programming language)
Influenced
Chisel (programming language)
Influenced
Chisel (programming language)
Influenced
C Sharp (programming language)
Influenced
C Sharp (programming language)
Influenced
Fantom (programming language)
Influenced
Fantom (programming language)
Influenced
Flix (programming language)
Influenced
Flix (programming language)
Influenced
F Sharp (programming language)
Influenced
F Sharp (programming language)
Influenced
Kotlin (programming language)
Influenced
Kotlin (programming language)
Influenced
Lasso (programming language)
Influenced
Lasso (programming language)
Influenced
Red (programming language)
Influenced
Red (programming language)
InfluencedBy
Common Lisp
Eiffel (programming language)
Erlang (programming language)
F Sharp (programming language)
Haskell (programming language)
Java (programming language)
OCaml
Oz (programming language)
Pizza (programming language)
Scheme (programming language)
Smalltalk
Standard ML
Influenced by
Common Lisp
Eiffel (programming language)
Erlang (programming language)
F Sharp (programming language)
Haskell (programming language)
Java (programming language)
OCaml
Oz (programming language)
Pizza (programming language)
Scheme (programming language)
Smalltalk
Standard ML
Is primary topic of
Scala (programming language)
Label
enScala (programming language)
License
enApache 2.0
License
Apache License
Link from a Wikipage to an external page
www.informit.com/title/9780134540566
oreilly.com/catalog/9781491949856/
www.scala-js.org/
github.com/leithaus/XTrace/blob/monadic/src/main/book/content/monadic.pdf
archive.org/details/scaladepth00suer_381/page/n245
www.artima.com/pins1ed
www.artima.com/shop/programming_in_scala_4ed
github.com/scala/scala%22)
archive.org/details/scaladepth00suer_381
scala-js.org
scala-native.org
Link from a Wikipage to another Wikipage
.NET Framework
Abstract type
Actor model
Addison-Wesley Professional
Airbnb
Akka (toolkit)
Algebraic data type
Algebraic data types
Algebraic effect
Alphabet Inc.
Android (operating system)
Annotation
Anonymous function
Anonymous type
Apache Ant
Apache Kafka
Apache license
Apache License
Apache Spark
Apple Inc.
Artima Inc
Block (programming)
Boehm garbage collector
Bottom type
Boxing (programming)
C (programming language)
Category:2003 software
Category:Articles with example Scala code
Category:Concurrent programming languages
Category:Cross-platform free software
Category:Free compilers and interpreters
Category:Free software programmed in Scala
Category:Functional languages
Category:Java programming language family
Category:JVM programming languages
Category:Object-oriented programming languages
Category:Pattern matching programming languages
Category:Programming languages
Category:Programming languages created in 2003
Category:Scala (programming language)
Category:Scripting languages
Category:Software using the Apache license
Category:Source-to-source compilers
Category:Statically typed programming languages
Ceylon (programming language)
Checked exception
Chisel (programming language)
Class (computer programming)
Class (computer science)
Classes (computer science)
Clojure
Closure (computer science)
Collection (abstract data type)
Collection (computer science)
Common Language Runtime
Common Lisp
Communicating sequential processes
Compiler
Concurrent programming
Constant (programming)
Corner cases
Coursera
Covariance and contravariance (computer science)
Criticism of Java
C Sharp (programming language)
Currying
Dalvik (software)
Databricks
Data parallelism
Data type
Decompiler
Decorator pattern
Default argument
Default constructor
Delimited continuation
Distributed computing
Divide and conquer algorithm
Domain-specific language
Duolingo
Dynamically typed
École Polytechnique Fédérale de Lausanne
Eiffel (programming language)
Erlang (programming language)
European Research Council
Exception handling
Expression (computer science)
Extension method
Fantom (programming language)
Firebase
Flix (programming language)
Foreach loop
Foursquare (service)
Free variables and bound variables
F Sharp (programming language)
Functional interface
Functional programming
Futures and promises
General-purpose programming language
Generic Java
Generic programming
Gilt Groupe
GitHub
Go (programming language)
Google
Greylock Partners
Groovy (programming language)
Guardian.co.uk
Haskell (programming language)
Hello World program
Higher-order function
Higher-order type operator
Hindley-Milner
HMRC
Huffington Post
Immutability
Immutable
Immutable object
Imperative programming
Implicit conversion
Infix
Inheritance (object-oriented programming)
Java (programming language)
Java (software platform)
Java bytecode
Javac
Java Classloader
JavaScript
Java virtual machine
JCSP
JUnit
Just-in-time compilation
Kevin Scott (computer scientist)
Kotlin (programming language)
Language interoperability
Lasso (programming language)
Lausanne
Lazy evaluation
Learning curve
Let expression
Lift (web framework)
Lightbend Inc.
LinkedIn
Lisp (programming language)
List comprehension
List of programming languages by type
LLVM
M1 Finance
Manning Publications
Martin Odersky
Meetup (website)
Mergesort
Message queue
Microframework
Microsoft TypeScript
Mixin
ML (programming language)
Morgan Stanley
Multi-paradigm programming language
Multiple inheritance
Mutable
Name binding
Named parameter
Node.js
O'Reilly Media
Object (computer science)
Objective-C
Object-oriented language
Object-oriented programming
OCaml
Off-side rule
Operator overloading
Oz (programming language)
Parametric polymorphism
Partial function
Pascal (programming language)
Pattern matching
Perl
Persistent data structure
Petri net
Pimp My Ride
Pizza (programming language)
Play Framework
Polymorphism (computer science)
PowerShell
Protocol (object-oriented programming)
Publish–subscribe pattern
Python (programming language)
Python syntax and semantics
QuickCheck
Quicksort
R (programming language)
Raffi Krikorian
Raw string
Recursion (computer science)
Red (programming language)
Remember the Milk
REPL
Ruby (programming language)
SBT (software)
ScalaCheck
ScalaMock
ScalaTest
Scalatra
Scheme (programming language)
Side effect (computer science)
Singleton (mathematics)
Singleton pattern
Smalltalk
Software transactional memory
SoundCloud
Soundness
Specs2
Stack overflow
Stack Overflow
Standard ML
Statically typed
Static typing
Strong and weak typing
Structural type system
Subclass (computer science)
Swift (programming language)
Switch statement
Switzerland
Syntax (programming languages)
Tail call
Talk:Scala (programming language)
Ternary operator
TestNG
The Guardian
The New York Times
ThoughtWorks
Thunk (functional programming)
TIOBE index
Trait (computer science)
Trampoline (computing)
Tuple (computer science)
Twitter
Type inference
UBS
Variance (computer science)
Verizon
Walmart Canada
Yammer
Zalando
Logo
enScala-full-color.svg
Name
enScala
Name
enScala
Paradigm
Concurrent programming
Functional programming
Imperative programming
Multi-paradigm programming language
Object-oriented programming
Platform
enLLVM
JavaScript
Java virtual machine
ProgrammingLanguage
enScala
SameAs
4G1Xd
7658965-1
Linguaxe de programación Scala
m.091hdj
Q460584
Scala
Scala
Scala
Scala
Scala
Scala
Scala
Scala (bahasa pemrograman)
Scala (język programowania)
Scala (langage)
Scala (lenguaje de programación)
Scala (limbaj de programare)
Scala (linguagem de programação)
Scala (linguaggio di programmazione)
Scala (llenguatge de programació)
Scala (ngôn ngữ lập trình)
Scala (ohjelmointikieli)
Scala (programlama dili)
Scala (programlingvo)
Scala (programmeerimiskeel)
Scala (programmeertaal)
Scala (programmeringsspråk)
Scala (programmeringssprog)
Scala (Programmiersprache)
Scala (programming language)
Scala (programming language)
Scala (programovací jazyk)
Scala (programski jezik)
Scala (programspråk)
Scala (proqramlaşdırma dili)
Scala (програмски језик)
Scala (язык программирования)
Scala (ծրագրավորման լեզու)
סקאלה (שפת תכנות)
اسکالا
سكالا (لغة برمجة)
స్కాలా
സ്കാല (പ്രോഗ്രാമിങ് ഭാഷ)
스칼라 (프로그래밍 언어)
Subject
Category:2003 software
Category:Articles with example Scala code
Category:Concurrent programming languages
Category:Cross-platform free software
Category:Free compilers and interpreters
Category:Free software programmed in Scala
Category:Functional languages
Category:Java programming language family
Category:JVM programming languages
Category:Object-oriented programming languages
Category:Pattern matching programming languages
Category:Programming languages
Category:Programming languages created in 2003
Category:Scala (programming language)
Category:Scripting languages
Category:Software using the Apache license
Category:Source-to-source compilers
Category:Statically typed programming languages
Thumbnail
Scala-full-color.svg?width=300
Typing
Static typing
Strong and weak typing
Structural type system
Type inference
WasDerivedFrom
Scala (programming language)?oldid=1115097625&ns=0
Wikibooks
enScala
WikiPageLength
101623
Wikipage page ID
3254510
Wikipage revision ID
1115097625
WikiPageUsesTemplate
Template:)
Template:As of
Template:Authority control
Template:Category see also
Template:Citation needed
Template:Cite book
Template:Clarify
Template:Clear
Template:Code
Template:Common Language Infrastructure
Template:For
Template:Infobox programming language
Template:IPAc-en
Template:Java (Sun)
Template:Mono
Template:Portal
Template:Programming languages
Template:Refbegin
Template:Refend
Template:Reflist
Template:Respell
Template:Sdash
Template:Short description
Template:Start date and age
Template:Unreferenced section
Template:URL
Template:Wikibooks
Template:Wikidata
Wordnet_type
synset-programming language-noun-1
Year
20 January 2004