KEMBAR78
Refactoring to Scala DSLs and LiftOff 2009 Recap | ODP
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

Refactoring to Scala DSLs and LiftOff 2009 Recap