Mumbles and crumbles of Scala D. Renault February 2014, v. 1.0

Mumbles and crumbles of Scala
D. Renault
The Tuesday’s Geekeries
ENSEIRB-MATMECA
February 2014, v. 1.0
D. Renault (ENSEIRB) Mumbles and crumbles of Scala February 2014, v. 1.0 1 / 42
1996 - James Gosling invents Java.Java is a relatively verbose, garbage
collected, class based, statically typed, single dispatch, object oriented
language with single implementation inheritance and multiple interface
inheritance. Sun loudly heralds Java’s novelty.
2001 - Anders Hejlsberg invents C#.C#is a relatively verbose, garbage
collected, class based, statically typed, single dispatch, object oriented
language with single implementation inheritance and multiple interface
inheritance. Microsoft loudly heralds C#’s novelty.
2003 - A drunken Martin Odersky (...) has an idea. He creates Scala, a
language that unifies constructs from both object oriented and functional
languages. This pisses off both groups and each promptly declares jihad.
J.Iry, “A Brief, Incomplete, and Mostly Wrong
History of Programming Languages”
D. Renault (ENSEIRB) Mumbles and crumbles of Scala February 2014, v. 1.0 2 / 42
A brief history of Scala
Scala C#Java
First-class functions
Scala Java C#
Generics
J#1.0
J++ 1.0 C#5.0C#2.0C#1.0
Java 7Java 5Java 1.4 Java 6JDK 1.0 Java 8 ?
Generic Java
Scala 2.9Scala 1.0 Scala 2.0
Pizza
Funnel
Scala 2.9
Java 7
Scala 1.0
Generic Java
J++ 1.0
Funnel
Scala C#Java
Java 5Java 1.4
Scala 2.0
Java 6
J#1.0
Scala Java C#
C#5.0
JDK 1.0
C#2.0C#1.0
Java 8 ?
Pizza
1995
2000
2005
2010
2015
D. Renault (ENSEIRB) Mumbles and crumbles of Scala February 2014, v. 1.0 3 / 42
A brief history of Scala
Statically typed, pure object-oriented language :
every value is an object, every operation is a method call.
Blended with functional programming features :
first class functions, pattern matching, case classes . . .
Claims that the combination of the styles grants it scalability :
Scala is adapted for writing small scripts as well as large programs.
Compatibility with the JVM, but modifies/improves on Java’s
capabilities and many aspects of the type system (class hierarchy,
generics . . . ) and is not hindered by ascendant compatibility.
Must stand the comparison with the upcoming Java 8 new features.
D. Renault (ENSEIRB) Mumbles and crumbles of Scala February 2014, v. 1.0 4 / 42
1Quick introduction
2Traits and Code inheritance
3Scala collections and generics
4Implicits
D. Renault (ENSEIRB) Mumbles and crumbles of Scala February 2014, v. 1.0 5 / 42
1 / 44 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !