Can you believe that the Scala programming language is already 13 years old? Scala was an experiment back in 2003, but there are no questions today about its success and its great influence on other languages, especially on Java. In this session we will travel time, going back to the age when Java was the hacker’s drink, while Pizza was the hacker’s food. We will glance through some of the memorable moments, and land in the present days to introduce all the goodnesses available in the upcoming Scala 2.12 release. Finally, we will take a brief but intense look at what we can expect from the future. Prepare your time traveling equipment, and be ready to rewind the clock to more than 20 years ago!
2. Who am I?
• Felt in love with Scala in 2005
• Open Source contributor: Scala
compiler & IDE, Lagom, Play, etc.
• Recently co-founded a Scala tooling
company!
• Available for trainings (Akka/Play/
Scala/Spark) and consulting.
4. Scala: The Past
• Scala first release in 2003
• But, what’s the story before Scala?
5.
6. Pizza
• 1995-19981
• Superset of Java with generics, first-
class functions, case classes and
patter matching.
• Why the name?
• Java was hacker’s drink
• Hacker’s food was needed ;-)
1. www.slideshare.net/Odersky/scala-evolution/3-Pre_History1980s_Modula2_Oberon199095_Functional
7.
8. Java 1.5
• Pizza led to Martin Odersky working
on the Java compiler (javac).
• Martin co-designed the first version
of generics in Java, and has written
the recent javac.
9. Scala origins
• Goal: unify object-oriented and
functional paradigms.
• Java was too constraining, hence the
motivation to start fresh.
13. Scala evolution
2012
Scala 2.10
released
Scala Actor
deprecated
and replaced
by Akka
2013
Scala.JS
released
2014
Scala 2.11
released
2016
Scala 2.12
(currently RC2)
Scala Centre
Foundation
created!
14. Scala 2.9 to 2.11
• Releases are mainly about stability.
• Only new features:
• Value classes
• Implicit classes
• String interpolation
• macros (experimental)
23. Why an optimiser?
• Some well-known patterns are not
optimised by HotSpot (Oracle JIT).
• Transform the code to please HotSpot.
• Inlining vs binary resilience.
• Optimiser is not a magic wand, but
rather a tool for experts.
• Compile with the -optimise flag.
27. Dotty?
• Dotty is the new Scala compiler Martin
is working on with his group at EPFL.
• It’s research work, but a first release
should be available soon.
• https://github.com/lampepfl/dotty
• Goal is to simplify the language.
28. The future of Scala
on a A4 paper
Credit goes to @malweene
https://twitter.com/malweene/status/743117270948274176