SlideShare a Scribd company logo
Scala
PasT, Present &
Future
@mircodotta
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.
Whoever wishes
to foresee the
future must
consult the past
Macchiavelli
Scala: The Past
• Scala first release in 2003
• But, what’s the story before Scala?
Scala Past, Present & Future
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
Scala Past, Present & Future
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.
Scala origins
• Goal: unify object-oriented and
functional paradigms.
• Java was too constraining, hence the
motivation to start fresh.
2003
Scala Martin’s mantra
• A language with a small core, few
constructs but high abstraction power.
• Fact: Scala has less keywords than
Java!
Scala evolution
First
release
2003
Twitter
adoption
Scala 2.0
released
2006
Akka
first release
2009
Lightbend
(formerly Typesafe)
commercial
support
Scala 2.9
released
&
Scala project
moved
to GitHub
2011
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!
Scala 2.9 to 2.11
• Releases are mainly about stability.
• Only new features:
• Value classes
• Implicit classes
• String interpolation
• macros (experimental)
Scala Past, Present & Future
Scala 2.12
• No additions to the language.
• So… ?
Scala Past, Present & Future
Scala 2.12
• Scala 2.12 requires Java8.
• trait compiled to Java8 interface.
• Binary compat & reduced bytecode!
• scalac λ bytecode mimics javac’s.
• scala.FunctionN compiles to SAM
type (Java8 λ).
• New backend & optimiser1
1. https://dl.dropboxusercontent.com/u/4881107/website/scala-user-group-2016.pdf
New trait encoding
trait PriceAlgorithm[Item] {
def apply(item: Item): Double =
???
}
Let’s compare Scala 2.11 vs 2.12 bytecode
trait PriceAlgorithm[Item] {
def apply(item: Item): Double =
???
}
Compiled with Scala 2.11
interface PriceAlgorithm<Item> {
abstract double apply(Item);
}
abstract class PriceAlgorithm$class {
static double apply(PriceAlgorithm,
java.lang.Object);
static void $init$(PriceAlgorithm);
}
Two
classfiles
trait PriceAlgorithm[Item] {
def apply(item: Item): Double =
???
}
Compiled with Scala 2.12
interface PriceAlgorithm<Item> {
public double apply(Item);
static double apply$(PriceAlgorithm,
java.lang.Object);
static void $init$(PriceAlgorithm);
}
Only one
classfile!
Java8 API from Scala
Scala λ assignable to Java 8 λ
scala> import java.util.stream.{Stream, IntStream}
scala> import java.util.{Arrays, List}
scala> val myList = Arrays.asList("a1", "a2", "b1", "c2", "c1")
myList: java.util.List[String] = [a1, a2, b1, c2, c1]
scala> myList.stream.
filter(_.startsWith("c")).
map(_.toUpperCase).
sorted.
forEach(println)
C1
C2
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.
Scala Past, Present & Future
Scala Past, Present & Future
Scala future
2016
Scala 2.12 Scala 2.13 (Aida)
Improve the
library!
Smaller core
& stabilise
Q1 2018
(Don Giovanni)
Faster compiler
Improve binary
compatibility (TASTY)
2020?
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.
The future of Scala
on a A4 paper
Credit goes to @malweene
https://twitter.com/malweene/status/743117270948274176
Questions?
@mircodotta

More Related Content

PPT
Sbt, idea and eclipse
Mike Slinn
 
KEY
Java to scala
GiltTech
 
PDF
Scala quick start
Sukjin Yun
 
ODP
Introduction to Scala JS
Knoldus Inc.
 
ODP
Scal`a`ngular - Scala and Angular
Knoldus Inc.
 
ODP
Drilling the Async Library
Knoldus Inc.
 
PPTX
Scala for C# Developers
Omer van Kloeten
 
PDF
Logging in Scala
John Nestor
 
Sbt, idea and eclipse
Mike Slinn
 
Java to scala
GiltTech
 
Scala quick start
Sukjin Yun
 
Introduction to Scala JS
Knoldus Inc.
 
Scal`a`ngular - Scala and Angular
Knoldus Inc.
 
Drilling the Async Library
Knoldus Inc.
 
Scala for C# Developers
Omer van Kloeten
 
Logging in Scala
John Nestor
 

What's hot (20)

PPTX
Scala in practice
Tomer Gabel
 
PDF
Jakarta EE Recipes
Josh Juneau
 
PDF
とりあえず使うScalaz
Shuya Tsukamoto
 
PPTX
Introduction to Akka - Atlanta Java Users Group
Roy Russo
 
PPTX
Akkurate Akka
Yurii Ostapchuk
 
PPTX
Lessons Learned: Scala and its Ecosystem
Petr Hošek
 
KEY
Introduction to Actor Model and Akka
Yung-Lin Ho
 
PPTX
What’s expected in Spring 5
Gal Marder
 
PDF
Javawug bof 57 scala why now
Skills Matter
 
KEY
Scala at Mind Candy
Mark Baker
 
PPTX
Building APIs with Kotlin and Spark
Nordic APIs
 
PPTX
Scala Introduction - Meetup Scaladores RJ
Rodrigo Lima
 
PDF
Adi Polak - Light up the Spark in Catalyst by avoiding UDFs - Codemotion Berl...
Codemotion
 
PDF
Managing Large Numbers of Non trivial ETL pipelines.
Jessica Flanagan
 
PPTX
Developing distributed applications with Akka and Akka Cluster
Konstantin Tsykulenko
 
PPTX
Adi Polak - Light up the Spark in Catalyst by avoiding UDFs - Codemotion Berl...
Codemotion
 
PDF
Actor model in .NET - Akka.NET
Konrad Dusza
 
PPTX
Akka Fundamentals
Michael Kendra
 
PPTX
"Walk in a distributed systems park with Orleans" Евгений Бобров
Fwdays
 
PPTX
Project Orleans - Actor Model framework
Neil Mackenzie
 
Scala in practice
Tomer Gabel
 
Jakarta EE Recipes
Josh Juneau
 
とりあえず使うScalaz
Shuya Tsukamoto
 
Introduction to Akka - Atlanta Java Users Group
Roy Russo
 
Akkurate Akka
Yurii Ostapchuk
 
Lessons Learned: Scala and its Ecosystem
Petr Hošek
 
Introduction to Actor Model and Akka
Yung-Lin Ho
 
What’s expected in Spring 5
Gal Marder
 
Javawug bof 57 scala why now
Skills Matter
 
Scala at Mind Candy
Mark Baker
 
Building APIs with Kotlin and Spark
Nordic APIs
 
Scala Introduction - Meetup Scaladores RJ
Rodrigo Lima
 
Adi Polak - Light up the Spark in Catalyst by avoiding UDFs - Codemotion Berl...
Codemotion
 
Managing Large Numbers of Non trivial ETL pipelines.
Jessica Flanagan
 
Developing distributed applications with Akka and Akka Cluster
Konstantin Tsykulenko
 
Adi Polak - Light up the Spark in Catalyst by avoiding UDFs - Codemotion Berl...
Codemotion
 
Actor model in .NET - Akka.NET
Konrad Dusza
 
Akka Fundamentals
Michael Kendra
 
"Walk in a distributed systems park with Orleans" Евгений Бобров
Fwdays
 
Project Orleans - Actor Model framework
Neil Mackenzie
 
Ad

Viewers also liked (20)

PDF
Six years of Scala and counting
Manuel Bernhardt
 
PDF
Getting started with MongoDB and Scala - Open Source Bridge 2012
sullis
 
PPTX
Semana12 oct31 nov2
Lorena Covarrubias
 
PDF
Web without framework
Nicolas Jorand
 
PDF
MongoDB and Play! Framework workshop
João Vazão Vasques
 
PDF
Solid scala
Knoldus Inc.
 
PDF
Managing Binary Compatibility in Scala (Scala Days 2011)
mircodotta
 
PDF
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems (Soft-Sha...
mircodotta
 
PDF
Practical Aggregate Programming in Scala
Roberto Casadei
 
PPTX
Java 8 and beyond, a scala story
ittaiz
 
PDF
Scala in Practice
Francesco Usai
 
PDF
Enterprise Development Trends 2016 - Cloud, Container and Microservices Insig...
Lightbend
 
PDF
Akka streams
mircodotta
 
PDF
Distributed Systems Done Right: Why Java Enterprises Are Embracing The Actor ...
Lightbend
 
PDF
Effective Scala (SoftShake 2013)
mircodotta
 
PDF
Lightbend Lagom: Microservices Just Right (Scala Days 2016 Berlin)
mircodotta
 
PPTX
Benefits Of The Actor Model For Cloud Computing: A Pragmatic Overview For Jav...
Lightbend
 
PDF
Akka streams scala italy2015
mircodotta
 
PDF
Microservices in Java and Scala (sfscala)
Chris Richardson
 
PPTX
Brendan O'Bra Scala By the Schuykill
Brendan O'Bra
 
Six years of Scala and counting
Manuel Bernhardt
 
Getting started with MongoDB and Scala - Open Source Bridge 2012
sullis
 
Semana12 oct31 nov2
Lorena Covarrubias
 
Web without framework
Nicolas Jorand
 
MongoDB and Play! Framework workshop
João Vazão Vasques
 
Solid scala
Knoldus Inc.
 
Managing Binary Compatibility in Scala (Scala Days 2011)
mircodotta
 
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems (Soft-Sha...
mircodotta
 
Practical Aggregate Programming in Scala
Roberto Casadei
 
Java 8 and beyond, a scala story
ittaiz
 
Scala in Practice
Francesco Usai
 
Enterprise Development Trends 2016 - Cloud, Container and Microservices Insig...
Lightbend
 
Akka streams
mircodotta
 
Distributed Systems Done Right: Why Java Enterprises Are Embracing The Actor ...
Lightbend
 
Effective Scala (SoftShake 2013)
mircodotta
 
Lightbend Lagom: Microservices Just Right (Scala Days 2016 Berlin)
mircodotta
 
Benefits Of The Actor Model For Cloud Computing: A Pragmatic Overview For Jav...
Lightbend
 
Akka streams scala italy2015
mircodotta
 
Microservices in Java and Scala (sfscala)
Chris Richardson
 
Brendan O'Bra Scala By the Schuykill
Brendan O'Bra
 
Ad

Similar to Scala Past, Present & Future (20)

ODP
A Tour Of Scala
fanf42
 
PPT
Introducing Scala to your Ruby/Java Shop : My experiences at IGN
Manish Pandit
 
PPTX
Scala adoption by enterprises
Mike Slinn
 
PPTX
Introduction to Scala
Mohammad Hossein Rimaz
 
PPTX
Introduction to Scala language
Aaqib Pervaiz
 
PDF
WTFAST Crack Latest Version FREE Downlaod 2025
channarbrothers93
 
PDF
uTorrent Pro Crack Latest Version free 2025
channarbrothers93
 
PDF
Adobe Master Collection CC Crack 2025 FREE
arslanyounus93
 
PDF
AOMEI Partition Assistant Crack 2025 FREE
yazdanwaqar
 
PPTX
Evolving Scala, Scalar conference, Warsaw, March 2025
Martin Odersky
 
PDF
K7 Total Security 16.0.1260 Crack + License Key Free
birbaahan
 
PPTX
What is scala
Piyush Katariya
 
PPT
Why scala - executive overview
Razvan Cojocaru
 
PDF
Martin Odersky - Evolution of Scala
Scala Italy
 
PPTX
The Evolution of Scala
Martin Odersky
 
PPTX
All about scala
Yardena Meymann
 
KEY
Java to Scala: Why & How
Graham Tackley
 
PDF
Scala Programming A comprehensive beginner s guide to Scala 2nd Edition Claud...
hakeshametwp
 
PPTX
From java to scala at crowd mix
Stefano Galarraga
 
PPTX
Scala for n00bs by a n00b.
brandongulla
 
A Tour Of Scala
fanf42
 
Introducing Scala to your Ruby/Java Shop : My experiences at IGN
Manish Pandit
 
Scala adoption by enterprises
Mike Slinn
 
Introduction to Scala
Mohammad Hossein Rimaz
 
Introduction to Scala language
Aaqib Pervaiz
 
WTFAST Crack Latest Version FREE Downlaod 2025
channarbrothers93
 
uTorrent Pro Crack Latest Version free 2025
channarbrothers93
 
Adobe Master Collection CC Crack 2025 FREE
arslanyounus93
 
AOMEI Partition Assistant Crack 2025 FREE
yazdanwaqar
 
Evolving Scala, Scalar conference, Warsaw, March 2025
Martin Odersky
 
K7 Total Security 16.0.1260 Crack + License Key Free
birbaahan
 
What is scala
Piyush Katariya
 
Why scala - executive overview
Razvan Cojocaru
 
Martin Odersky - Evolution of Scala
Scala Italy
 
The Evolution of Scala
Martin Odersky
 
All about scala
Yardena Meymann
 
Java to Scala: Why & How
Graham Tackley
 
Scala Programming A comprehensive beginner s guide to Scala 2nd Edition Claud...
hakeshametwp
 
From java to scala at crowd mix
Stefano Galarraga
 
Scala for n00bs by a n00b.
brandongulla
 

Recently uploaded (20)

PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PDF
Software Development Methodologies in 2025
KodekX
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
The Future of Artificial Intelligence (AI)
Mukul
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Doc9.....................................
SofiaCollazos
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
Software Development Methodologies in 2025
KodekX
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 

Scala Past, Present & Future

  • 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.
  • 3. Whoever wishes to foresee the future must consult the past Macchiavelli
  • 4. Scala: The Past • Scala first release in 2003 • But, what’s the story before Scala?
  • 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
  • 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.
  • 10. 2003
  • 11. Scala Martin’s mantra • A language with a small core, few constructs but high abstraction power. • Fact: Scala has less keywords than Java!
  • 12. Scala evolution First release 2003 Twitter adoption Scala 2.0 released 2006 Akka first release 2009 Lightbend (formerly Typesafe) commercial support Scala 2.9 released & Scala project moved to GitHub 2011
  • 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)
  • 16. Scala 2.12 • No additions to the language. • So… ?
  • 18. Scala 2.12 • Scala 2.12 requires Java8. • trait compiled to Java8 interface. • Binary compat & reduced bytecode! • scalac λ bytecode mimics javac’s. • scala.FunctionN compiles to SAM type (Java8 λ). • New backend & optimiser1 1. https://dl.dropboxusercontent.com/u/4881107/website/scala-user-group-2016.pdf
  • 19. New trait encoding trait PriceAlgorithm[Item] { def apply(item: Item): Double = ??? } Let’s compare Scala 2.11 vs 2.12 bytecode
  • 20. trait PriceAlgorithm[Item] { def apply(item: Item): Double = ??? } Compiled with Scala 2.11 interface PriceAlgorithm<Item> { abstract double apply(Item); } abstract class PriceAlgorithm$class { static double apply(PriceAlgorithm, java.lang.Object); static void $init$(PriceAlgorithm); } Two classfiles
  • 21. trait PriceAlgorithm[Item] { def apply(item: Item): Double = ??? } Compiled with Scala 2.12 interface PriceAlgorithm<Item> { public double apply(Item); static double apply$(PriceAlgorithm, java.lang.Object); static void $init$(PriceAlgorithm); } Only one classfile!
  • 22. Java8 API from Scala Scala λ assignable to Java 8 λ scala> import java.util.stream.{Stream, IntStream} scala> import java.util.{Arrays, List} scala> val myList = Arrays.asList("a1", "a2", "b1", "c2", "c1") myList: java.util.List[String] = [a1, a2, b1, c2, c1] scala> myList.stream. filter(_.startsWith("c")). map(_.toUpperCase). sorted. forEach(println) C1 C2
  • 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.
  • 26. Scala future 2016 Scala 2.12 Scala 2.13 (Aida) Improve the library! Smaller core & stabilise Q1 2018 (Don Giovanni) Faster compiler Improve binary compatibility (TASTY) 2020?
  • 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