diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2014-03-26 21:59:30 -0700 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2014-03-27 12:06:10 -0700 |
commit | 0261598fb49f4ac0509dac0c27f867861dc742a0 (patch) | |
tree | 4e196338408ce2cc7a672e941a7216071ba34a1b /spec/02-preface.md | |
parent | 71c1716ae4f16a05825695a33d480ac194c5ae09 (diff) | |
download | scala-0261598fb49f4ac0509dac0c27f867861dc742a0.tar.gz scala-0261598fb49f4ac0509dac0c27f867861dc742a0.tar.bz2 scala-0261598fb49f4ac0509dac0c27f867861dc742a0.zip |
Jekyll generated html in spec/ directory
To avoid confusion, removing artifacts for
currently unsupported targets (pdf/single-page html).
I'd like to bring those back, but in the mean time let's avoid distractions.
Add Travis build.
Diffstat (limited to 'spec/02-preface.md')
-rw-r--r-- | spec/02-preface.md | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/spec/02-preface.md b/spec/02-preface.md new file mode 100644 index 0000000000..50e25d6c00 --- /dev/null +++ b/spec/02-preface.md @@ -0,0 +1,54 @@ +--- +title: Preface +layout: default +--- + +## Preface + +Scala is a Java-like programming language which unifies +object-oriented and functional programming. It is a pure +object-oriented language in the sense that every value is an +object. Types and behavior of objects are described by +classes. Classes can be composed using mixin composition. Scala is +designed to work seamlessly with two less pure but mainstream +object-oriented languages -- Java and C#. + +Scala is a functional language in the sense that every function is a +value. Nesting of function definitions and higher-order functions are +naturally supported. Scala also supports a general notion of pattern +matching which can model the algebraic types used in many functional +languages. + +Scala has been designed to interoperate seamlessly with Java (an +alternative implementation of Scala also works for .NET). Scala +classes can call Java methods, create Java objects, inherit from Java +classes and implement Java interfaces. None of this requires interface +definitions or glue code. + +Scala has been developed from 2001 in the programming methods +laboratory at EPFL. Version 1.0 was released in November 2003. This +document describes the second version of the language, which was +released in March 2006. It acts a reference for the language +definition and some core library modules. It is not intended to teach +Scala or its concepts; for this there are other documents +[@scala-overview-tech-report; +@odersky:scala-experiment; +@odersky:sca; +@odersky-et-al:ecoop03; +@odersky-zenger:fool12] + +Scala has been a collective effort of many people. The design and the +implementation of version 1.0 was completed by Philippe Altherr, +Vincent Cremet, Gilles Dubochet, Burak Emir, Stéphane Micheloud, +Nikolay Mihaylov, Michel Schinz, Erik Stenman, Matthias Zenger, and +the author. Iulian Dragos, Gilles Dubochet, Philipp Haller, Sean +McDirmid, Lex Spoon, and Geoffrey Washburn joined in the effort to +develop the second version of the language and tools. Gilad Bracha, +Craig Chambers, Erik Ernst, Matthias Felleisen, Shriram Krishnamurti, +Gary Leavens, Sebastian Maneth, Erik Meijer, Klaus Ostermann, Didier +Rémy, Mads Torgersen, and Philip Wadler have shaped the design of +the language through lively and inspiring discussions and comments on +previous versions of this document. The contributors to the Scala +mailing list have also given very useful feedback that helped us +improve the language and its tools. + |