Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Solid Scala
Richard Dallaway
August 23, 2013
Technology
0
330
Solid Scala
Presentation to Semantico, Brighton.
Richard Dallaway
August 23, 2013
Tweet
Share
More Decks by Richard Dallaway
See All by Richard Dallaway
AI Roadmap
d6y
0
20
Voice to guide "difficult" recycling queries
d6y
0
27
Brighton Java: Day in the life...
d6y
0
75
Day in the Life of a Functional Programmer
d6y
0
400
Exoplanet Safari
d6y
1
250
Types Working For You
d6y
1
2.4k
Towards Browser and Server Utopia with Scala.js: an example using CRDTs
d6y
0
6.5k
Code Review Gems
d6y
1
1.7k
Woot for Lift
d6y
2
2.9k
Other Decks in Technology
See All in Technology
GeoLocationAnchor and MKTileOverlay
toyship
0
110
サーバレスECにおける Step Functions の使い方 〜ステートマシン全部見せます!〜
miu_crescent
0
190
Build 2022で発表されたWindowsアプリ開発のあれこれ振り返ろう
hatsunea
1
380
機械学習システムアーキテクチャ入門 #1
asei
3
1.2k
ひとりでも安定して 組織を変える活動を続けていくための ストレスマネジメント
pastelinc
0
860
Data in Google I/O - IO Extended GDG Seoul
kennethanceyer
0
150
Citizen 개발기
outsider
0
270
SlackBotで あらゆる業務を自動化。問い合わせ〜DevOpsまで #CODT2022
kogatakanori
0
870
What's Data Lake ? Azure Data Lake best practice
ryomaru0825
2
740
IoTLT88-NTKanazawa-laundry-dry
yukima0707
0
230
SwiftUI Layout
auramagi
1
110
JAWS-UG re:Habilitaion 報告 / JAWS-UG OITA rehabilitation
hiranofumio
0
130
Featured
See All Featured
What's new in Ruby 2.0
geeforr
336
30k
Six Lessons from altMBA
skipperchong
14
1.4k
Learning to Love Humans: Emotional Interface Design
aarron
261
37k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
237
19k
Unsuck your backbone
ammeep
659
55k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
37
3.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
349
27k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
351
21k
How GitHub (no longer) Works
holman
296
140k
Rails Girls Zürich Keynote
gr2m
86
12k
Fireside Chat
paigeccino
12
1.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
19
1.2k
Transcript
Richard Dallaway @d6y www.underscoreconsulting.com
Agenda 1. Benefits of Scala 2. What it looks like
3. Why we trust it 4. How to start
Benefits Productivity Maintainability Multi-core Developer Joy
Without giving up... Performance Curly Braces Java Investment Tooling (but...)
import org.joda.time.DateTime case class Subscription( owner: String, isTrial: Boolean, expiry:
DateTime) val nextMonth = new DateTime().plusMonths(1) val sub = new Subscription( "Bob", isTrial = true, nextMonth) sub.owner // “Bob” sub == new Subscription( "Bob", true, nextMonth) // true
val subs = List( Subscription("Anna", true, new DateTime()), ... )
val trials : List[Subscription] = subs.filter(s => s.isTrial) def expiring(sub: Subscription) : Boolean = daysBetween(now,sub.expiry).getDays < 2 val nagList = subs.filter(expiring) val expiringTrials = subs.filter(expiring).filter(_.isTrial)
case class Sub(name: String, cc: Option[String]) val subs = List(
Sub("Anna", None), Sub("Bob", Some("1234-5678-9123-4567")) ) def bill(cc: String) : Result = ... val results = subs.flatMap(s => s.cc).map(bill) val results = for { sub <- subs cc <- sub.cc } yield bill(cc) .par
2003 2006 2009 2008 2011 2004 2005 2010 2007 2012
2013 2014 1.0 2.0 2.3 2.8 2.7 2.9 2.10 2.11 2.6 2.5 2.4 2.9.3 2.8.2
The guy who built javac SpringSource VMware An advisor
None
Ideas for starting 1. Small project trial 2. Mixed Java/Scala
projects 3. For tests
@d6y @davegurnell @milessabin www.underscoreconsulting.com meetup.com/london-scala meetup.com/Functional-Brighton