Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Solid Scala
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Richard Dallaway
August 23, 2013
Technology
390
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Solid Scala
Presentation to Semantico, Brighton.
Richard Dallaway
August 23, 2013
More Decks by Richard Dallaway
See All by Richard Dallaway
AI Roadmap
d6y
0
67
Voice to guide "difficult" recycling queries
d6y
0
89
Brighton Java: Day in the life...
d6y
0
260
Day in the Life of a Functional Programmer
d6y
0
660
Exoplanet Safari
d6y
1
500
Types Working For You
d6y
1
2.8k
Towards Browser and Server Utopia with Scala.js: an example using CRDTs
d6y
0
7.8k
Code Review Gems
d6y
1
2k
Woot for Lift
d6y
2
3.4k
Other Decks in Technology
See All in Technology
現場をAIで動かす「フィジカル AI」の組み込み設計の考え方【SORACOM Discovery 2026】
soracom
PRO
0
150
13年運用タイトルのサーバーサイドが辿り着いた現在地 ― モンスターストライクにおける技術・組織・AI活用から得た知見
mixi_engineers
PRO
1
320
CTOキーノート:AI時代の「つなぐ」を再定義 ― 真のIoTとリアルワールドAI【SORACOM Discovery 2026】
soracom
PRO
0
320
AIエージェントがあれば技術書なんてすぐ書けるでしょ→無理でした
watany
6
1.1k
信頼できるテスティングAIをどう育てるか?
odan611
0
160
システム監視を 「システムを監視するだけ」で 終わらせないために
seiud
0
150
ソフトウェアアーキテクチャ研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
2
990
「待ち時間」の消滅と「自我消耗」の加速:生成AI時代のエンジニアを救うメンタル・リソース管理
poropinai1966
0
320
AIエージェントの知識表現と推論に なぜグラフが使われるのか - 記号的AIの復権とニューラルAIとの統合
yohei1126
1
200
AI工学特論: MLOps・継続的評価
asei
11
3k
QAタスクをスキル化したいときに考えること
aomoriringo
0
130
AI時代におけるテストの基礎の再定義 / Rethinking the Fundamentals of Testing in the AI Era
mineo_matsuya
15
6.2k
Featured
See All Featured
Writing Fast Ruby
sferik
630
63k
Music & Morning Musume
bryan
47
7.3k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
260
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
340
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
270
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
780
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
YesSQL, Process and Tooling at Scale
rocio
174
15k
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