SlideShare a Scribd company logo
Scala LiftOff Recap and Refactoring to DSLs by David Orme Eclipse, Rich web, and Scala consulting [email_address] Presented to  Chicago Area Scala Enthusiasts CASE
Meeting Agenda Agenda: Scala LiftOff Recap
Refactoring to DSLs Techniques for migrating to Scala
Meeting Agenda Agenda: Scala LiftOff Recap
Refactoring to DSLs Techniques for migrating to Scala
Scala LiftOff Unconference format Began with Martin Odersky prepared keynote
(Some) Attendees came prepared to speak Created the schedule
People made suggestions/improvements
Sessions were voluntarily merged
...then we did it With so many really smart people present, it worked very well
Scala LiftOff Overall themes: Scala 2.8 improvements
Enterprise adoption: Status and opportunities
Killer applications / uses
Thinking in functions
Scala LiftOff Overall themes: Scala 2.8 improvements
Enterprise adoption: Status and opportunities
Killer applications / uses
Thinking in functions
Scala LiftOff Scala 2.8 – Selected Improvements New collections Consistency between mutable/immutable implementations with a single abstract parent defining the API for both
Paid off technical debt – eliminated implementation duplication throughout the library
Consistent implcit conversions to and from Java collections and Scala collections
Scala LiftOff Scala 2.8 – Selected Improvements Named parameters
def resize(width: Int, height: Int) = { ... }
resize(width = 120, height = 42) resize(height = 42, width = 120)
Scala LiftOff Scala 2.8 – Selected Improvements Default parameter values
def f(elems: List[Int],    x: Int = 0,    cond: Boolean = true)
f(List(1))
f(Nil, cond = false)
Scala LiftOff Scala 2.8 – Selected Improvements break  is now implemented … as a library function!
import scala.util.control.Breaks._
breakable  {
for (x <- elems) {
println(x*2)
if (x > 0)  break
}
}
Scala LiftOff Scala 2.8 – Selected Improvements New and improved  tool support New tooling supported directly in  scala compiler
Brand new, much more stable Eclipse plugin.
Tight Java tooling integration
No more ”Project/Clean” or closing/reopening projects to reboot the compiler!
Same tool support also ported to NetBeans
Martin definitely ”gets it” about the importance of having high quality Scala tool support
Scala LiftOff Scala 2.8 – Selected Improvements Dave's verdict: Important changes at all levels of the Scala stack
2.8 could be what causes Scala to cross the chasm into the mainstream
Scala LiftOff Overall themes: Scala 2.8 improvements
Enterprise adoption: Status and opportunities
Killer applications / uses
Thinking in functions
Scala LiftOff Enterprises that have adopted Scala Web 2.0 startups Twitter
Facebook
RTM
... Financial industry, particularly in trading EDF Trading
Clarify
Ad

More Related Content

What's hot (20)

From Ruby to Scala
From Ruby to ScalaFrom Ruby to Scala
From Ruby to Scala
tod esking
 
Quick introduction to scala
Quick introduction to scalaQuick introduction to scala
Quick introduction to scala
Mohammad Hossein Rimaz
 
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
scalaconfjp
 
The Dark Side Of Lambda Expressions in Java 8
The Dark Side Of Lambda Expressions in Java 8The Dark Side Of Lambda Expressions in Java 8
The Dark Side Of Lambda Expressions in Java 8
Takipi
 
Java 8 features
Java 8 featuresJava 8 features
Java 8 features
Oleg Tsal-Tsalko
 
Scala basic
Scala basicScala basic
Scala basic
Nguyen Tuan
 
An Introduction to Scala
An Introduction to ScalaAn Introduction to Scala
An Introduction to Scala
Brent Lemons
 
Martin Odersky - Evolution of Scala
Martin Odersky - Evolution of ScalaMartin Odersky - Evolution of Scala
Martin Odersky - Evolution of Scala
Scala Italy
 
Solid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaSolid And Sustainable Development in Scala
Solid And Sustainable Development in Scala
Kazuhiro Sera
 
A Scala tutorial
A Scala tutorialA Scala tutorial
A Scala tutorial
Dima Statz
 
Scala - The Simple Parts, SFScala presentation
Scala - The Simple Parts, SFScala presentationScala - The Simple Parts, SFScala presentation
Scala - The Simple Parts, SFScala presentation
Martin Odersky
 
Scalax
ScalaxScalax
Scalax
Martin Odersky
 
What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!
What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!
What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!
scalaconfjp
 
camel-scala.pdf
camel-scala.pdfcamel-scala.pdf
camel-scala.pdf
Hiroshi Ono
 
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
scalaconfjp
 
A Brief Intro to Scala
A Brief Intro to ScalaA Brief Intro to Scala
A Brief Intro to Scala
Tim Underwood
 
Scala Reflection & Runtime MetaProgramming
Scala Reflection & Runtime MetaProgrammingScala Reflection & Runtime MetaProgramming
Scala Reflection & Runtime MetaProgramming
Meir Maor
 
Introduction to Functional Programming with Scala
Introduction to Functional Programming with ScalaIntroduction to Functional Programming with Scala
Introduction to Functional Programming with Scala
pramode_ce
 
Scala Intro
Scala IntroScala Intro
Scala Intro
Alexey (Mr_Mig) Migutsky
 
Scala in practice
Scala in practiceScala in practice
Scala in practice
Tomer Gabel
 
From Ruby to Scala
From Ruby to ScalaFrom Ruby to Scala
From Ruby to Scala
tod esking
 
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
scalaconfjp
 
The Dark Side Of Lambda Expressions in Java 8
The Dark Side Of Lambda Expressions in Java 8The Dark Side Of Lambda Expressions in Java 8
The Dark Side Of Lambda Expressions in Java 8
Takipi
 
An Introduction to Scala
An Introduction to ScalaAn Introduction to Scala
An Introduction to Scala
Brent Lemons
 
Martin Odersky - Evolution of Scala
Martin Odersky - Evolution of ScalaMartin Odersky - Evolution of Scala
Martin Odersky - Evolution of Scala
Scala Italy
 
Solid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaSolid And Sustainable Development in Scala
Solid And Sustainable Development in Scala
Kazuhiro Sera
 
A Scala tutorial
A Scala tutorialA Scala tutorial
A Scala tutorial
Dima Statz
 
Scala - The Simple Parts, SFScala presentation
Scala - The Simple Parts, SFScala presentationScala - The Simple Parts, SFScala presentation
Scala - The Simple Parts, SFScala presentation
Martin Odersky
 
What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!
What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!
What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!
scalaconfjp
 
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
scalaconfjp
 
A Brief Intro to Scala
A Brief Intro to ScalaA Brief Intro to Scala
A Brief Intro to Scala
Tim Underwood
 
Scala Reflection & Runtime MetaProgramming
Scala Reflection & Runtime MetaProgrammingScala Reflection & Runtime MetaProgramming
Scala Reflection & Runtime MetaProgramming
Meir Maor
 
Introduction to Functional Programming with Scala
Introduction to Functional Programming with ScalaIntroduction to Functional Programming with Scala
Introduction to Functional Programming with Scala
pramode_ce
 
Scala in practice
Scala in practiceScala in practice
Scala in practice
Tomer Gabel
 

Similar to Refactoring to Scala DSLs and LiftOff 2009 Recap (20)

Devoxx
DevoxxDevoxx
Devoxx
Martin Odersky
 
Lessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its EcosystemLessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its Ecosystem
Petr Hošek
 
Scala a case4
Scala a case4Scala a case4
Scala a case4
lee.gilbert
 
Martin Odersky: What's next for Scala
Martin Odersky: What's next for ScalaMartin Odersky: What's next for Scala
Martin Odersky: What's next for Scala
Marakana Inc.
 
Scala - from "Hello, World" to "Heroku Scale"
Scala - from "Hello, World" to "Heroku Scale"Scala - from "Hello, World" to "Heroku Scale"
Scala - from "Hello, World" to "Heroku Scale"
Salesforce Developers
 
Scala final ppt vinay
Scala final ppt vinayScala final ppt vinay
Scala final ppt vinay
Viplav Jain
 
Scala Days San Francisco
Scala Days San FranciscoScala Days San Francisco
Scala Days San Francisco
Martin Odersky
 
Why scala - executive overview
Why scala - executive overviewWhy scala - executive overview
Why scala - executive overview
Razvan Cojocaru
 
Scala, Akka, and Play: An Introduction on Heroku
Scala, Akka, and Play: An Introduction on HerokuScala, Akka, and Play: An Introduction on Heroku
Scala, Akka, and Play: An Introduction on Heroku
Havoc Pennington
 
Catalyst - refactor large apps with it and have fun!
Catalyst - refactor large apps with it and have fun!Catalyst - refactor large apps with it and have fun!
Catalyst - refactor large apps with it and have fun!
mold
 
Sparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With SparkSparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With Spark
Ian Pointer
 
ASPgems - kappa architecture
ASPgems - kappa architectureASPgems - kappa architecture
ASPgems - kappa architecture
Juantomás García Molina
 
Scala days 2016 overview
Scala days 2016 overviewScala days 2016 overview
Scala days 2016 overview
Mayank Patel
 
A Tour Of Scala
A Tour Of ScalaA Tour Of Scala
A Tour Of Scala
fanf42
 
Introduction to Scala language
Introduction to Scala languageIntroduction to Scala language
Introduction to Scala language
Aaqib Pervaiz
 
SQL Server 2008 Integration Services
SQL Server 2008 Integration ServicesSQL Server 2008 Integration Services
SQL Server 2008 Integration Services
Eduardo Castro
 
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Codemotion
 
Write your Helm charts as a professional. Design templates and inheritance. B...
Write your Helm charts as a professional. Design templates and inheritance. B...Write your Helm charts as a professional. Design templates and inheritance. B...
Write your Helm charts as a professional. Design templates and inheritance. B...
Volodymyr Shynkar
 
Angular JS in 2017
Angular JS in 2017Angular JS in 2017
Angular JS in 2017
Ayush Sharma
 
Java 8 Overview
Java 8 OverviewJava 8 Overview
Java 8 Overview
Nicola Pedot
 
Lessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its EcosystemLessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its Ecosystem
Petr Hošek
 
Martin Odersky: What's next for Scala
Martin Odersky: What's next for ScalaMartin Odersky: What's next for Scala
Martin Odersky: What's next for Scala
Marakana Inc.
 
Scala - from "Hello, World" to "Heroku Scale"
Scala - from "Hello, World" to "Heroku Scale"Scala - from "Hello, World" to "Heroku Scale"
Scala - from "Hello, World" to "Heroku Scale"
Salesforce Developers
 
Scala final ppt vinay
Scala final ppt vinayScala final ppt vinay
Scala final ppt vinay
Viplav Jain
 
Scala Days San Francisco
Scala Days San FranciscoScala Days San Francisco
Scala Days San Francisco
Martin Odersky
 
Why scala - executive overview
Why scala - executive overviewWhy scala - executive overview
Why scala - executive overview
Razvan Cojocaru
 
Scala, Akka, and Play: An Introduction on Heroku
Scala, Akka, and Play: An Introduction on HerokuScala, Akka, and Play: An Introduction on Heroku
Scala, Akka, and Play: An Introduction on Heroku
Havoc Pennington
 
Catalyst - refactor large apps with it and have fun!
Catalyst - refactor large apps with it and have fun!Catalyst - refactor large apps with it and have fun!
Catalyst - refactor large apps with it and have fun!
mold
 
Sparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With SparkSparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With Spark
Ian Pointer
 
Scala days 2016 overview
Scala days 2016 overviewScala days 2016 overview
Scala days 2016 overview
Mayank Patel
 
A Tour Of Scala
A Tour Of ScalaA Tour Of Scala
A Tour Of Scala
fanf42
 
Introduction to Scala language
Introduction to Scala languageIntroduction to Scala language
Introduction to Scala language
Aaqib Pervaiz
 
SQL Server 2008 Integration Services
SQL Server 2008 Integration ServicesSQL Server 2008 Integration Services
SQL Server 2008 Integration Services
Eduardo Castro
 
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Codemotion
 
Write your Helm charts as a professional. Design templates and inheritance. B...
Write your Helm charts as a professional. Design templates and inheritance. B...Write your Helm charts as a professional. Design templates and inheritance. B...
Write your Helm charts as a professional. Design templates and inheritance. B...
Volodymyr Shynkar
 
Angular JS in 2017
Angular JS in 2017Angular JS in 2017
Angular JS in 2017
Ayush Sharma
 
Ad

Recently uploaded (13)

Cognitive development revised - Copy.ppt
Cognitive development revised - Copy.pptCognitive development revised - Copy.ppt
Cognitive development revised - Copy.ppt
MasahiroNagasawa1
 
Unlocking the Secrets of Love: The Science Behind Heartfelt Connections
Unlocking the Secrets of Love: The Science Behind Heartfelt ConnectionsUnlocking the Secrets of Love: The Science Behind Heartfelt Connections
Unlocking the Secrets of Love: The Science Behind Heartfelt Connections
Vikash Gautam
 
CUTS Report by JOHN MEYNARD BARRUGA BAUTISTA, SHENE MERRYLAND BAUTISTA, AND A...
CUTS Report by JOHN MEYNARD BARRUGA BAUTISTA, SHENE MERRYLAND BAUTISTA, AND A...CUTS Report by JOHN MEYNARD BARRUGA BAUTISTA, SHENE MERRYLAND BAUTISTA, AND A...
CUTS Report by JOHN MEYNARD BARRUGA BAUTISTA, SHENE MERRYLAND BAUTISTA, AND A...
johnmeynardbautista9
 
How to Prepare for and Survive a Power Outage
How to Prepare for and Survive a Power OutageHow to Prepare for and Survive a Power Outage
How to Prepare for and Survive a Power Outage
Bob Mayer
 
crucial-conversations-training-powerpoint.pptx
crucial-conversations-training-powerpoint.pptxcrucial-conversations-training-powerpoint.pptx
crucial-conversations-training-powerpoint.pptx
vikramdas40
 
Erikson’s theory , 8-stages of life , their importance
Erikson’s theory , 8-stages of life , their importanceErikson’s theory , 8-stages of life , their importance
Erikson’s theory , 8-stages of life , their importance
uf415127
 
Emotions and emotional intelligence skills
Emotions and emotional intelligence skillsEmotions and emotional intelligence skills
Emotions and emotional intelligence skills
DRKAMINIBHASIN
 
Spain is a country in southwestern Europe, located on the Iberian Peninsula. ...
Spain is a country in southwestern Europe, located on the Iberian Peninsula. ...Spain is a country in southwestern Europe, located on the Iberian Peninsula. ...
Spain is a country in southwestern Europe, located on the Iberian Peninsula. ...
leonardoquispeyapu6
 
Sentence-Errors.pptxssssssssssssssssssss
Sentence-Errors.pptxssssssssssssssssssssSentence-Errors.pptxssssssssssssssssssss
Sentence-Errors.pptxssssssssssssssssssss
rexjosiahzosa
 
Pengenalan Berpikir Kritis Critical_Thinking_Intro.pptx
Pengenalan Berpikir Kritis Critical_Thinking_Intro.pptxPengenalan Berpikir Kritis Critical_Thinking_Intro.pptx
Pengenalan Berpikir Kritis Critical_Thinking_Intro.pptx
JabbarAPanggabean
 
Embracing Adaptability (setback) - Istvan Patzay
Embracing Adaptability (setback) - Istvan PatzayEmbracing Adaptability (setback) - Istvan Patzay
Embracing Adaptability (setback) - Istvan Patzay
isti84
 
Violence against women , finding from the 2008 national demografic
Violence against women , finding from the 2008 national demograficViolence against women , finding from the 2008 national demografic
Violence against women , finding from the 2008 national demografic
oppateamo1234
 
ee case study and evaluation of biodiesel
ee case study and evaluation of biodieselee case study and evaluation of biodiesel
ee case study and evaluation of biodiesel
SwaroopDalvi
 
Cognitive development revised - Copy.ppt
Cognitive development revised - Copy.pptCognitive development revised - Copy.ppt
Cognitive development revised - Copy.ppt
MasahiroNagasawa1
 
Unlocking the Secrets of Love: The Science Behind Heartfelt Connections
Unlocking the Secrets of Love: The Science Behind Heartfelt ConnectionsUnlocking the Secrets of Love: The Science Behind Heartfelt Connections
Unlocking the Secrets of Love: The Science Behind Heartfelt Connections
Vikash Gautam
 
CUTS Report by JOHN MEYNARD BARRUGA BAUTISTA, SHENE MERRYLAND BAUTISTA, AND A...
CUTS Report by JOHN MEYNARD BARRUGA BAUTISTA, SHENE MERRYLAND BAUTISTA, AND A...CUTS Report by JOHN MEYNARD BARRUGA BAUTISTA, SHENE MERRYLAND BAUTISTA, AND A...
CUTS Report by JOHN MEYNARD BARRUGA BAUTISTA, SHENE MERRYLAND BAUTISTA, AND A...
johnmeynardbautista9
 
How to Prepare for and Survive a Power Outage
How to Prepare for and Survive a Power OutageHow to Prepare for and Survive a Power Outage
How to Prepare for and Survive a Power Outage
Bob Mayer
 
crucial-conversations-training-powerpoint.pptx
crucial-conversations-training-powerpoint.pptxcrucial-conversations-training-powerpoint.pptx
crucial-conversations-training-powerpoint.pptx
vikramdas40
 
Erikson’s theory , 8-stages of life , their importance
Erikson’s theory , 8-stages of life , their importanceErikson’s theory , 8-stages of life , their importance
Erikson’s theory , 8-stages of life , their importance
uf415127
 
Emotions and emotional intelligence skills
Emotions and emotional intelligence skillsEmotions and emotional intelligence skills
Emotions and emotional intelligence skills
DRKAMINIBHASIN
 
Spain is a country in southwestern Europe, located on the Iberian Peninsula. ...
Spain is a country in southwestern Europe, located on the Iberian Peninsula. ...Spain is a country in southwestern Europe, located on the Iberian Peninsula. ...
Spain is a country in southwestern Europe, located on the Iberian Peninsula. ...
leonardoquispeyapu6
 
Sentence-Errors.pptxssssssssssssssssssss
Sentence-Errors.pptxssssssssssssssssssssSentence-Errors.pptxssssssssssssssssssss
Sentence-Errors.pptxssssssssssssssssssss
rexjosiahzosa
 
Pengenalan Berpikir Kritis Critical_Thinking_Intro.pptx
Pengenalan Berpikir Kritis Critical_Thinking_Intro.pptxPengenalan Berpikir Kritis Critical_Thinking_Intro.pptx
Pengenalan Berpikir Kritis Critical_Thinking_Intro.pptx
JabbarAPanggabean
 
Embracing Adaptability (setback) - Istvan Patzay
Embracing Adaptability (setback) - Istvan PatzayEmbracing Adaptability (setback) - Istvan Patzay
Embracing Adaptability (setback) - Istvan Patzay
isti84
 
Violence against women , finding from the 2008 national demografic
Violence against women , finding from the 2008 national demograficViolence against women , finding from the 2008 national demografic
Violence against women , finding from the 2008 national demografic
oppateamo1234
 
ee case study and evaluation of biodiesel
ee case study and evaluation of biodieselee case study and evaluation of biodiesel
ee case study and evaluation of biodiesel
SwaroopDalvi
 
Ad

Refactoring to Scala DSLs and LiftOff 2009 Recap